YASEP news

To content | To menu | To search

Updates and news

Entries feed

Thursday 5 November 2015

The Discrete YASEP

A parallel project has recently emerged : a YASEP implementation with SSI/MSI parts (74HC parts). The day-to-day progress is described on hackaday.io and the first prototype will also be the first working implementation of the new instruction set format.

Tuesday 3 February 2015


A new year has begun, another milestone is created.

2014 saw the creation of the new, definitive instruction set format, as well as the start of new websites ( http://ygwm.org and http://httap.org ) and the early design of the miniYASEP. It is also possible to Flash the contents of a SPI memory on the WizYasep (Ethernet+FPGA) boards !

On the hardware side, several WizYasep boards are now deployed in Belgium. They are undergoing a harsh fire&ice treatment... More pictures can be seen on the public YGDES facebook page.

2015 will see that work continue on many fronts. The code base is currently pretty fragmented and unstable, the development version is barely usable and the previous version is not useful. To prevent this, all the files must become more independent, more modular, so work on one part does not break any other. For example, the main web site should be split into layers of increasing specificity ("base", "add-ons", "specific" modules...). Other CPU architectures should be easily supported in the near future !

At the same time, the website should move to a different server, which is an increasingly complex task. Modularity should help, for example by storing the base files on the ygwm server (some files are already in a different directory).

That's a lot of un-sexy work but the result should be worth the efforts !

Monday 6 October 2014

Latest tutorial

At last ! It was planned for two years at least but now it's done. The tutorial that explains the basics of using the YASEP simulator is written :-) I hope it will help the newcomers !

You can read it at http://ygdes.com/~whygee/yasep2014/#!tuto/tuto_sim

Thursday 2 October 2014

The latest tool : direct programming of SPI Flash from the source code editor

After a whole summer of work, I can now reach a new level of comfort.

I can type my code and test it on the target within seconds by clicking on a single button in my browser.

This is going to speedup development a lot ;-)

Tuesday 6 August 2013

Project split

A new website is now dedicated to the YGWM toolkit : http://ygwm.org/

It's empty now but it will host the project-independent files created for the YASEP's website, making them reusable by other projects. This also splits the development into manageable parts and reduces the size of the YASEP archives (that can get rid of YGWM-specific tutorials etc.)

I had the intention to "reboot" the whole yasep.org site (like i did in 2009 when i started including ygwm) and this is a great opportunity to do that again, reviewing all the existing code and solving the problems that had accumulated all those years ;-)

Finally, looking beyond the reboot, this is also a great way to start other projects, like other CPU families in the far future...

Friday 26 July 2013

There is always crazier than you.

Today, I received an email from Jean-Christophe who asked me to copy-paste some source code he attached, open a framebuffer and simulator, and let it run a few hours...

This is what his code displayed :

Yes, this is really a Mandelbrot set, computed in integer mode with 8-bit multiplies...

Of course it's slow but it's extremely interesting and gives ideas about how to speed up the simulator. It runs at about 2500 instructions / second on a Core i3 @2.3GHz on Firefox and so far it's behaving well... I think about :

 * adding a 16x16 bits multiply for YASEP32

 * adding register parking in the simulator

 * creating a data memory area for the simulator (so one does not have to use the framebuffer to store variables)

 * buffering access to the DOM so the browser is refreshed less often, and spends less time managing graphic elements that are not even seen or displayed...

Thanks Jean-Christophe, and keep blowing my mind !


JCH sent me a slightly faster version of the code :-) 518 million cycles instead of 820 millions...

Wednesday 2 January 2013

The YASEP2013 season is open !

Happy new year everybody !

EHSM2012 just finished and it was a great opportunity to meet likeminded hackers, and the MP3, video and slides are available in the archives.

The YASEP2011 period is now closed and archived in its glory and gory, YASEP2013 will try to keep the high level that it inherited :-)

And to start this new year, a new contribution will be integrated : the "firstrun" is translated to german, the 4th language that the interface now supports !

It will take a few weeks to update the site but a lot of small incremental enhancements are expected soon.

Enjoy this new year !

Thursday 29 November 2012

YASEP2011 is almost finished

JMLL2012 was great !

  •  The conference had no "demo effect" !
  •  MP3 + transcription with the slides will be available (one day...)
  •  microYASEP is coded both in 16-bits and 32-bits
  •  microYASEP simulates in JavaScript and VHDL
  •  the framebuffer (graphic output) works in JavaScript and VHDL too (but VHDL only on 32-bits linux)
  •  the JavaScript simulator runs (almost well) under the webkit-based Midori browser, hence on the Raspberry Pi !
  •  The project turned 10 !


A lot needs to be done :
  •  solve one GUI bug
  •  add new tutorials and translate the others
  •  transcribe and translate the conference
  •  translate all the website to Spanish
  •  adapt it for webkit
  •  finish the last 2 instruction set manual pages
  •  more (virtual and real) interfaces for the CPU : servo-motor, alphanumeric LCD, LEDs&Keys...
  •  create the enhanced serial interface for programming & debug
  •  prepare the Berlin presentation and demos
  •  transition to YASEP2013 
Any help is welcome !

Monday 10 September 2012

el YASEP en español

The YASEP site is already available 3/4 in french (some less than important stuffs are not translated) and the language picker and all the machinery behind it are working well so... we started to translate a first page in Spanish ! Thanks Kris !

Other languages are welcome and desired : if you want to help, a page explains how translations work.

Wednesday 20 June 2012

The old new YASEP site

After a long wait and even longer prototyping phase, I finally decided that there was no point in going further with 2 more and more unrelated websites. The http://yasep.org site, on one side, was the "official" yet completely out of touch and outdated reference. For a year now, development was progressing on another place in my personal account.

This separation was doing more harm than good but I didn't want to put an unfinished work at the forefront. I wanted to translate ALL the pages in the new format and in french. But lately, the prototype has been "good enough" and is fresh, quite accurate and useful.
The "old" site is still available at http://archives.yasep.org/yasep2009/ if you want to compare and enjoy the leap.

We're already in mid-2012 and the current version is still labeled 2011, I'll simply jump to YASEP2013 in early 2013 :-) A lot of work is needed before I reach this new milestone...

Sunday 25 September 2011

The YASEP and Defora

Today I think that one big issue with the YASEP project has been solved.

I met Pierre this week, and I start to discover the awesomeness of his Defora project. "Debian For All" turned into creating a whole new, compact, totally GPLv3 system. With almost no dependency from existing systems, yet compatible with them... Perfect for embedded computing too !

We just started to work on a C version of the existing JS assembler and we consider writing a C99-compliant compiler.

YES, you have read it : the YASEP will have binaries generated from C code ! And good code, at that, since it does not go through GCC !

Many roadblocks are now removed. When the code generation tools are in place, we can then simulate/emulate the core and start to write a microkernel...

What this means for me is that I can finally stop worrying about the operating system and application layer. The YASEP will not use Linux and I won't be forced to use the huge GCC armada. I will also have more time to focus on the hardware architecture and implementation. And Pierre is a security specialist...

Oh, by the way : YGWM won the 2nd rank (ex aequo with Pierre's Defora) at the Open World Forum Code Contest this week. A new, shiny, professional laptop was given away by HP and will become my main workstation. Going from an Atom to a Core i5 makes me feel spoiled :-)

Wednesday 7 September 2011


Development is still happening, at a slow pace (due to work duties) but nothing is forsaken.

I'm still working toward a cheap Actel board that can be easily replicated and cheaply fabricated, and the professional projects might bring some interesting results.

On another front, I resumed work on YGWM and extended the functionalities. You can even test the results at http://ygdes.com/~whygee/yasep2011/ and the whole website will be reimplemented with this new paradigm. No more tabs ! Everything in one browser window with a huge virtual desk !

Saturday 8 May 2010


The main YASEP site has not been updated for a while...
Worse : the f-cpu.seul.org miror is down since january !

Is the project dead ?

No :-)

In fact a lot of things are being prepared, mostly in the commercial, infrastructure and very-low-level hardware (like : where are those 0402 capacitors ?) fronts. It's really exciting but it takes a lot of time and money ! Fortunately I'm not completely alone.

A string of good news will probably come in 2011, they will help the bootstrap of the whole YASEP project with different kinds of support, with broad public exposure. It will be possible to have a YASEP implementation in hand, I work both on the hardware and software sides :-) BTW, a recent Wikipedia article has appeared with a short summary of the YASEP's architecture.

Another critical part of the project (the VHDL source code and its infrastructure) is in active development : GHDL is now the officially supported simulator. I have interviewed the main developer (Tristan Gingold) for GNU/Linux Magazine France n°127. With Laura, we started a series of articles about VHDL development under Linux and I am proposing increasingly advanced ... hacks :-) The first YASEP implementations will be designed with "design for test" in mind.

In parallel, another subproject is the design of a Libre, affordable, compact and Ethernet-enabled JTAG programming probe. More on this subject in the future, but it's critical for the rest of the whole project : my JTAG probes are either USB (and constrained to Actel parts, and don't work under Linux) or parallel-port (no new consumer-grade computer today has this port anymore).

Finally, after the seul.org debacle (due to main server being compromised because of its participation in the tor network), I have opened a new miror at TuxFamily.

So I'm still polishing the tools and gathering the parts. It's not a visible activity but it's probably the most important. What does an architecture mean if there is no infrastructure behind ? With no physical implementation that one can buy and hack oneself ?

Sunday 23 August 2009

Back from vacations...

The lack of Internet access during 2 weeks of vacations was a very good thing for the YASEP, the development was stimulated and efficient !

I should mention that the environment helped being in a great mood, if you don't count all the insects. Have a look at this picture or this video if you wonder what it's like to develop in VHDL in the country, under a wonderful tree and sitting next to the tent. BTW, thanks Toshiba for the extra-life-battery pack for the Portégé 3490, I could work about 5 hours in a row but it recharges very slowly.

I did a lot of cleanup, completed some pages, integrated the first extended instructions and re-enabled the disassembler. I also examined the multiply instructions and created an algorithm that initialises the multiply lookup-tables ! I also added an algorithm that generates random opcode examples, instead of the fixed strings of before. It's more efficient at finding bugs !

Before I upload the new site, I still have to change some fields and remove the _X forms (as they are useless now, because the "always" condition has the same effect).

I'm also working in parallel on the VHDL source code. I'm adding a CRC32 unit mapped in the SRs so communications and files will have better and faster checks. Unfortunately, I lost a few days of work in a defunct hard disk...

Stay tuned !

edit :

The site is updated, enjoy !

I also recovered the few days of work locked in one of the computers, the disk is not completely dead (it's just dead slow so a Slackware LiveCD is necessary)

The next steps are : website minification, VHDL code development,  further development of listed, pointer update, short jump/call instructions...

I'm also looking at compression/decompression algorithms such as deflate and range coding.

Friday 24 July 2009

YASEP en français

Grâce au concours de Laura, une partie des pages web du site YASEP est en cours de traduction en français. Pour l'instant, ont été intégrées les pages suivantes : l'index, les registres, les instructions, la carte interactive des opcodes et YASEP16/32. D'autres pages devraient suivre, j'attends que Laura soumette d'autres pages.

Au début du projet, j'avais décidé de tout faire uniquement en anglais. Mon expérience m'a montré que le support de plusieurs formats ou langues différentes augmente la charge de travail, donc réduit le temps passé à créer des choses utiles. De plus, il y a toujours une version qui est à la traine et cela rend le projet incohérent, vu de l'extérieur. On a alors tendance à ne plus se référer qu'à la version "principale" (en anglais) et la version traduite sombre dans l'inutilité.

Ce coup-ci, il est bien clair que la version "officielle" du projet est en anglais. La traduction française sera probablement en retard sur un nombre inconnu de points, à mesure que le temps passe. Mais la démarche de traduction apporte plusieurs avantages :

* D'abord, j'ai tendance à écrire en anglais de manière absconse et à la fin je suis le seul à comprendre ce que j'ai écrit. La traduction me confronte à mes mauvaises manies et m'oblige à reformuler mes phrases, pour les rendre plus claires. C'est en accord avec mon exigence d'accessibilité, d'autant plus que la traductrice, Laura, est moins bonne en anglais et en technique que moi, et je voudrais être compris par des personnes encore plus débutantes.

* Ensuite, Laura est plus proche et plus exigente que les collaborateurs précédents. J'en attends une meilleure qualité et un meilleur suivi.

* Aussi, avoir deux versions d'une même page web force à séparer la présentation, le contenu et les scripts : c'est la nécessité de modularité et de non-redondance qui deviennent importants.

En plus, cela me permet de revoir et donc améliorer les pages originales, d'y faire du tri...

Comme d'habitude, je suis intéressé par toute remarque constructive pour améliorer le site.

Monday 29 June 2009


On June 26th, I have presented a joint project with Laura, called "GPL" (Gaming Platform Libre), at the HackerSpace Festival (HSF2009) near Paris. See http://www.hackerspace.net/gaming-platform-libre

This is a french talk, and the slides are here.

I present the latest thoughts about how cryptographic protection of contents could be compatible with the gamer's and the game editor's freedom and cooperation. Some slides also present the latest updates in the YASEP instruction set.

Thursday 19 March 2009

what about YASEP2009 ?

Development of and around YASEP is going on in a weird way, but it still continues...

Why so much caution ? Because the changes to the architecture are quite deep. The instructions forms are increasingly complex and I've pushed the design beyond what I intended in the beginning.

If you don't remember, YASEP had only two ways to address data previously :

short form :

 Reg1 OP Reg2 => Reg1  (16 bits)

long form :

  Reg1 OP Imm16 => Reg2 (32 bits)

Now a few bits are freed and this gives much more "flexibility", so I added :

Short Immediate :

  Reg1 OP Imm4 => Reg1 (16 bits)

Long Register :

  Reg1 OP Reg2 => Reg3 (32 bits)

And because there was still some room, this last form has more elaborate versions :

Long conditional :

  Reg1 OP Reg2 IF{NOT} Reg4{LSB/MSB/Zero/ready} => Reg3 (32 bits)

And other versions come up when the Reg2 field is interpreted as Imm4 :

Long conditional short Imm: (excuse the name)

  Reg1 OP Imm4 IF{NOT} Reg4{LSB/MSB/Zero/ready} => Reg3 (32 bits)

Or without condition :

  Reg1 OP Imm4 => Reg3 (32 bits)

This applies to the computation instructions, the control instructions are still too undefined yet.

Code density should increase, which is worth the efforts. I don't know if it will reach the level of ARM or x86 but it is certainly a major advance. However, this breaks a lot of the assembler's mechanisms, so I prefer to rewrite it. This takes a while because the rest must be adapted too : the Instruction Set, the manual pages, the validators...

If you can't stand the wait, have a look at a precent, broken version at http://yasep.org/~whygee/yasep2009/, at least it is more recent than the main site.

Friday 23 January 2009

YASEP2009 : "It's gonna be big"... when it comes

The YASEP architecture has changed so much that a big rewrite is necessary.

My local copy is so... broken here and there that I prefer to not update yasep.org. The modifications are so deep that it's not possible to just patch a few things.

The organisation of the website should evolve a lot and I'm thinking about new techniques.

The documentation must be partially rewritten, not simply updated here and there.

Today's site structure dates back to 2006, maybe the big rewrite is a good thing in fact.

However, this is so much work, and my concentration is so volatile, that I wonder when the website will be updated with something stable enough to be almost publishable. In fact, I'd rather not wonder, the answer would scare me. Anyway, I see that many efforts I have done in the past years have been fruitful and helped build the project as it is now. So I keep faith and continue.

Thursday 18 December 2008

Site update, architecture modifications, and new FPGA boards

I recently got 3 colibri boards ! When you think about Italy, you think Ferrari and other excellent things, now I'll also think prototyping boards ;-)

Thanks to ACME systems, I bought 2* A3P250 and one A3P1000 boards for a friendly price. These are pre-series units and may slightly differ from later versions, but they are really as cool as the pictures let you think.

3 prototype Colibri boards from ACME Systems

The website is also updated : the JavaScript engine is now mostly functional for YASEP16 and YASEP32 versions. The documentation is not updated and many dark corners remain in the architecture definition. I have chosen to publish the latest versions, since I don't know when I'll do this next time.

Monday 1 December 2008

YASEP2009 in preparation

A new big update of the YASEP website package is under development. Several improvements are already done but not uploaded yet :

- I corrected a small "bug" with Opera with the floating window (thanks to Laura for the help !)

- I added several pages, about Special Registers, the AGPL licence, the differences between YASEP16 and YASEP32... And a new VHDL directory appeared.

- The opcodes are undergoing major changes, too many to explain here

- The architecture abandons the CQ register but the documentation is not yet updated...

I hope that the package will reach stability in early January. There's a lot of work to be done...

- page 1 of 2