<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://news.yasep.org/feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
  <title>YASEP news</title>
  <link>http://news.yasep.org/</link>
  <atom:link href="http://news.yasep.org/feed/rss2" rel="self" type="application/rss+xml"/>
  <description>Ongoing efforts in the YASEP project : VHDL, JavaScript, Instruction Set Architecture design, embedded computers... and freedom to design !</description>
  <language>en</language>
  <pubDate>Fri, 03 Sep 2010 04:26:14 +0200</pubDate>
  <copyright></copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>YASEP2010</title>
    <link>http://news.yasep.org/post/2010/05/08/YASEP2010</link>
    <guid isPermaLink="false">urn:md5:ab1555d6ec444bbc206b612027d191a1</guid>
    <pubDate>Sat, 08 May 2010 06:50:00 +0200</pubDate>
    <dc:creator>whygee</dc:creator>
        <category>Updates and news</category>
            
    <description>    &lt;br /&gt;
The main YASEP site has not been updated for a while...&lt;br /&gt;
Worse : the f-cpu.seul.org miror is down since january !&lt;br /&gt;
&lt;br /&gt;
Is the project dead ?&lt;br /&gt;
&lt;br /&gt;
No :-)&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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 &lt;a hreflang=&quot;en&quot; href=&quot;http://en.wikipedia.org/wiki/YASEP_%28architecture%29&quot;&gt;short summary&lt;/a&gt; of
the YASEP's architecture.&lt;br /&gt;
&lt;br /&gt;
Another critical part of the project (the VHDL source code and its
infrastructure) is in active development : &lt;a hreflang=&quot;en&quot; href=&quot;http://ghdl.free.fr/&quot;&gt;GHDL&lt;/a&gt; is now the officially supported simulator. I
have interviewed the main developer (Tristan Gingold) for &lt;a hreflang=&quot;fr&quot; href=&quot;http://www.ed-diamond.com/feuille_lmag127/index.html&quot;&gt;GNU/Linux Magazine
France n°127&lt;/a&gt;. With &lt;a hreflang=&quot;fr&quot; href=&quot;http://ygllo.com/&quot;&gt;Laura&lt;/a&gt;, 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 &amp;quot;design for test&amp;quot; in mind.&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
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
&lt;a hreflang=&quot;en&quot; href=&quot;http://yasep.tuxfamily.org/&quot;&gt;TuxFamily&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
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 ?&lt;br /&gt;</description>
    
    
    
          <comments>http://news.yasep.org/post/2010/05/08/YASEP2010#comment-form</comments>
      <wfw:comment>http://news.yasep.org/post/2010/05/08/YASEP2010#comment-form</wfw:comment>
      <wfw:commentRss>http://news.yasep.org/feed/atom/comments/515046</wfw:commentRss>
      </item>
    
  <item>
    <title>Support of Alphanumeric LCD with YASEP</title>
    <link>http://news.yasep.org/post/2009/11/13/Alphanumeric-LCD-YASEP</link>
    <guid isPermaLink="false">urn:md5:bc6408f51bfe07852f5167fec39376b9</guid>
    <pubDate>Fri, 13 Nov 2009 21:54:00 +0100</pubDate>
    <dc:creator>whygee</dc:creator>
        <category>Project</category>
        <category>HD44780</category><category>JavaScript</category><category>protocol</category><category>RFC</category><category>simulator</category><category>Special Register</category>    
    <description>    &lt;p&gt;I have been very busy since august, unfortunately not with YASEP but I keep
an eye on this project. Even though I can't dedicate days and weeks to this, I
try to gather things here and there when they appear, like electronic parts,
ideas, and ways to implement them.&lt;/p&gt;
&lt;p&gt;For example I've been thinking about how to display informations with a
simple FPGA kit.  I already have a nice collection of alphanumeric LCD
modules that is expanding, so they are a good and cheap output peripheral.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://news.yasep.org/public/HD44780modules.jpg&quot;&gt;&lt;img title=&quot;small collection of alphanumeric LCD modules, nov. 2009&quot; style=&quot;margin: 0 auto; display: block;&quot; alt=&quot;&quot; src=&quot;http://news.yasep.org/public/.HD44780modules_m.jpg&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;From there, at least three things follow :&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The modules I own have different resolutions : from 1x8char to 4x20 but
there is no electronic means to distinguish them from the others. So I recently
imagined a method, discussed a bit about it on USENET and decided that it was
worth implementing it. I am writing a &lt;a hreflang=&quot;en&quot; href=&quot;http://yasep.org/%7Ewhygee/RFCpulldownLCD.html&quot;&gt;RFC&lt;/a&gt; about this now.&lt;/li&gt;
&lt;li&gt;I'm going to add a set of &lt;a hreflang=&quot;en&quot; href=&quot;http://yasep.org/docs/SR.html&quot;&gt;Special Registers&lt;/a&gt; that support the parallel
interface to a LCD module in nibble mode. This is going to provide automatic
strobes, and ease application software development. This unit will also support
readback of LCD resolution, supporting the protocol defined in 1. Contrast
voltage is controlled by a simple PWM/PD circuit instead of a trimpot.&lt;/li&gt;
&lt;li&gt;While looking around for more informations about the HD44780-compatible
modules, &lt;a hreflang=&quot;en&quot; href=&quot;http://en.wikipedia.org/wiki/HD44780_Character_LCD&quot;&gt;wikipedia&lt;/a&gt; sent me to a
&lt;a hreflang=&quot;en&quot; href=&quot;http://www.dinceraydin.com/djlcdsim/djlcdsim.html&quot;&gt;JavaScript HD44780
simulator&lt;/a&gt; designed years ago by Dincer Aydin. He has done even crazier
things like a graphic LCD simulator or a &lt;a hreflang=&quot;en&quot; href=&quot;http://www.dinceraydin.com/pic/djpasm/djpasm.html&quot;&gt;PIC assembler in
JavaScript&lt;/a&gt; ! I asked if I could reuse the alphanumeric code and Dincer
kindly accepted :-D I have not looked at the source code but I presume that
it's going to need a lot of work (particularly for updating the display engine,
because updates are &amp;quot;optimised out&amp;quot; in Firefox). Anyway the YASEP simulator is
not even mature enough so there is no hurry... &lt;/li&gt;
&lt;/ol&gt;
Everything seems to be in place for a future use of alphanumeric LCD modules. I
have more than 20pc available, I have already used some of them on a past PIC
project, and the JavaScript framework will support them. I'm not saying it's
going to be easy, but it's far easier than I thought !&lt;br /&gt;</description>
    
    
    
          <comments>http://news.yasep.org/post/2009/11/13/Alphanumeric-LCD-YASEP#comment-form</comments>
      <wfw:comment>http://news.yasep.org/post/2009/11/13/Alphanumeric-LCD-YASEP#comment-form</wfw:comment>
      <wfw:commentRss>http://news.yasep.org/feed/atom/comments/459795</wfw:commentRss>
      </item>
    
  <item>
    <title>When you connect the power supply, it works...</title>
    <link>http://news.yasep.org/post/2009/10/02/When-you-connect-the-power-supply%2C-it-works...</link>
    <guid isPermaLink="false">urn:md5:3c2b410a9f0a4fe2357a4a4eb37216eb</guid>
    <pubDate>Fri, 02 Oct 2009 05:48:00 +0200</pubDate>
    <dc:creator>whygee</dc:creator>
        <category>Electronics</category>
            
    <description>    &lt;p&gt;As one can guess from the past messages on this &amp;quot;*log&amp;quot;, I have been slowly
preparing custom FPGA boards as a background activity. It's not an easy thing
and can be quite expensive. So I patiently gathered the necessary parts through
online stores and eBay, looking for interesting deals.&lt;/p&gt;
&lt;p&gt;Finally I have all the necessary parts for a cheap and repeatable prototype.
Among others :&lt;/p&gt;
&lt;p&gt;* A bunch of A3P250VQG100 : I got them from a really nice Canadian guy and
I'll use this specific reference as the main target for the future works. I
originally intended to target the A3P125 but I got more powerful for less money
so why refuse ? :-D The A3P250 has enough logic for moderately complex stuff
(though SRAM is really TIGHT) and can replace microcontrollers in many
cases.&lt;/p&gt;
&lt;p&gt;* QFP100 adapter boards : &lt;a href=&quot;http://www.futurlec.com/SMD_Adapters.shtml&quot;&gt;FUTURLEC&lt;/a&gt; has cheap and good
proto boards. The tin makes soldering easy, just add some liquid flux, no need
for aditional solder.&lt;/p&gt;
&lt;p&gt;With the help of Actel's docs and the schematics of other boards, including
ACME's Colibri, I easily wired the power rails. The board is not recommended
for high-speed signals but the goal is only to check the schematics for more
ambitious boards (probably manufactured through FUTURLEC too, as their PCB
pooling service looks great).&lt;/p&gt;
&lt;p&gt;I created a small dumb VHDL design (8-bit counter with clock, reset and
increment/decrement inputs) backed by a small board. The additional board also
provides 3.3V from a battery, so I could avoid long wires from power
supplies.&lt;/p&gt;
&lt;p&gt;And in order to be programmed, the FPGA needs a JTAG interface. I soldered
everything correctly but the JTAG/USB interface would refuse to work. After a
small nap and many hypothesis, the problem was obvious : the JTAG signals were
correctly wired but I forgot to wire the power supplies :-/ Obviously, when
it's fixed, the things work considerably better... I'm amazed that it is the
only error, considering my sleep deprivation :-D&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;&lt;img title=&quot;First Actel proto board \o/&quot; alt=&quot;First Actel proto board \o/&quot; src=&quot;http://news.yasep.org/public/.FirstActelProto_m.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;No, really, it just works as expected. I may have finally become good at
this, after all the failures and false starts of the past :-D It even
reproduces the strange behaviour that I had seen in other designs : the pins
are REALLY sensitive ! Don't forget the pull-down's ! I made a basic/passive
anti-bounce (just a RC filter) but it is useless : a single clock push creates
many strobes and the counter advances unpredictably. But I half-expected it and
I did not even register the inputs in VHDL so it is naturally glitch-prone, so
I don't care. It &amp;quot;works&amp;quot;.&lt;/p&gt;
&lt;p&gt;What does this mean ?&lt;/p&gt;
&lt;p&gt;* When enough resources are gathered, complex things become easier. I have
invested a lot of money and time in the past years just to get to that point
and ... it feels good !&lt;/p&gt;
&lt;p&gt;* Great things that were &amp;quot;possible&amp;quot; now become &amp;quot;available&amp;quot; for future
projects. This includes YASEP and other (commercial ?) designs.&lt;/p&gt;
&lt;p&gt;* FPGA are damn cool ! Actel's chips are certainly slower and less capable
than other makers but their products make this little board possible and easy :
once the power supplies and the JTAG are (hum, correctly) wired, the board can
be plugged in other cheap prototypes. No need of external Flash chip,
bootstrapping EPLD, or whatever...&lt;/p&gt;
&lt;p&gt;Next in line : a parallel port interface (hooked to a computer) then the
SRAM chips :-D Then I'll try to develop an embedded CPU design with Ethernet
that could replace the Rabbit, PIC and AVR. Finally, I wish to create an
Ethernet-based JTAG programmer that will replace the proprietary and USB-bound
FlashPro3. This proprietary probe is not extremely expensive (Actel has wisely
created even cheaper versions) but USB is such an annoyance !&lt;/p&gt;</description>
    
    
    
          <comments>http://news.yasep.org/post/2009/10/02/When-you-connect-the-power-supply%2C-it-works...#comment-form</comments>
      <wfw:comment>http://news.yasep.org/post/2009/10/02/When-you-connect-the-power-supply%2C-it-works...#comment-form</wfw:comment>
      <wfw:commentRss>http://news.yasep.org/feed/atom/comments/446269</wfw:commentRss>
      </item>
    
  <item>
    <title>Back from vacations...</title>
    <link>http://news.yasep.org/post/2009/08/23/Back-from-vacations...</link>
    <guid isPermaLink="false">urn:md5:ff3434d14052244a2ef774921ab69b47</guid>
    <pubDate>Sun, 23 Aug 2009 06:05:00 +0200</pubDate>
    <dc:creator>whygee</dc:creator>
        <category>Updates and news</category>
            
    <description>    &lt;p&gt;The lack of Internet access during 2 weeks of vacations was a very good
thing for the YASEP, the development was stimulated and efficient !&lt;/p&gt;
&lt;p&gt;I should mention that the environment helped being in a great mood, if you
don't count all the insects. Have a look at &lt;a href=&quot;http://www.flickr.com/photos/aqueuse/3840160076/&quot;&gt;this picture&lt;/a&gt; or &lt;a href=&quot;http://www.flickr.com/photos/aqueuse/3840200616/&quot;&gt;this video&lt;/a&gt; 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.&lt;/p&gt;
&lt;p&gt;I did a lot of cleanup, completed some pages, integrated the first extended
instructions and re-enabled the disassembler. I also examined the &lt;a href=&quot;http://yasep.org/docs/multiply.html&quot;&gt;multiply instructions&lt;/a&gt; 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 !&lt;/p&gt;
&lt;p&gt;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 &amp;quot;always&amp;quot; condition has the
same effect).&lt;/p&gt;
&lt;p&gt;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...&lt;/p&gt;
&lt;p&gt;Stay tuned !&lt;/p&gt;
&lt;ins&gt;
&lt;p&gt;&lt;ins&gt;&lt;strong&gt;edit :&lt;/strong&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;/ins&gt;
&lt;p&gt;The site is updated, enjoy !&lt;/p&gt;
&lt;p&gt;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)&lt;/p&gt;
&lt;p&gt;The next steps are : website minification, VHDL code development, 
further development of listed, pointer update, short jump/call
instructions...&lt;/p&gt;
&lt;p&gt;I'm also looking at compression/decompression algorithms such as deflate and
range coding.&lt;/p&gt;</description>
    
    
    
          <comments>http://news.yasep.org/post/2009/08/23/Back-from-vacations...#comment-form</comments>
      <wfw:comment>http://news.yasep.org/post/2009/08/23/Back-from-vacations...#comment-form</wfw:comment>
      <wfw:commentRss>http://news.yasep.org/feed/atom/comments/428689</wfw:commentRss>
      </item>
    
  <item>
    <title>YASEP en français</title>
    <link>http://news.yasep.org/post/2009/07/24/YASEP-en-francais</link>
    <guid isPermaLink="false">urn:md5:ac85b9e4e346723c57fe0fd82a700056</guid>
    <pubDate>Fri, 24 Jul 2009 01:44:00 +0200</pubDate>
    <dc:creator>whygee</dc:creator>
        <category>Updates and news</category>
            
    <description>    &lt;p&gt;Grâce au concours de &lt;a href=&quot;http://ours-agile.org&quot;&gt;Laura&lt;/a&gt;, 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'&lt;a href=&quot;http://yasep.org/index_fr.html&quot;&gt;index&lt;/a&gt;, les &lt;a href=&quot;http://yasep.org/docs/registers_fr.html&quot;&gt;registres&lt;/a&gt;, les &lt;a href=&quot;http://yasep.org/docs/instructions_fr.html&quot;&gt;instructions&lt;/a&gt;, la &lt;a href=&quot;http://yasep.org/tools/opcode_map_fr.html&quot;&gt;carte interactive des opcodes&lt;/a&gt;
et &lt;a href=&quot;http://yasep.org/docs/yasep16-32_fr.html&quot;&gt;YASEP16/32&lt;/a&gt;. D'autres
pages devraient suivre, j'attends que Laura soumette d'autres pages.&lt;/p&gt;
&lt;p&gt;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 &amp;quot;principale&amp;quot; (en anglais) et la version
traduite sombre dans l'inutilité.&lt;/p&gt;
&lt;p&gt;Ce coup-ci, il est bien clair que la version &amp;quot;officielle&amp;quot; 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 :&lt;/p&gt;
&lt;p&gt;* 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'&lt;strong&gt;accessibilité&lt;/strong&gt;,
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.&lt;/p&gt;
&lt;p&gt;* Ensuite, Laura est plus proche et plus exigente que les collaborateurs
précédents. J'en attends une meilleure &lt;strong&gt;qualité&lt;/strong&gt; et un meilleur
&lt;strong&gt;suivi&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;* 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
&lt;strong&gt;modularité&lt;/strong&gt; et de &lt;strong&gt;non-redondance&lt;/strong&gt; qui
deviennent importants.&lt;/p&gt;
&lt;p&gt;En plus, cela me permet de revoir et donc améliorer les pages originales,
d'y faire du tri...&lt;/p&gt;
&lt;p&gt;Comme d'habitude, je suis intéressé par toute remarque constructive pour
améliorer le site.&lt;/p&gt;</description>
    
    
    
          <comments>http://news.yasep.org/post/2009/07/24/YASEP-en-francais#comment-form</comments>
      <wfw:comment>http://news.yasep.org/post/2009/07/24/YASEP-en-francais#comment-form</wfw:comment>
      <wfw:commentRss>http://news.yasep.org/feed/atom/comments/420419</wfw:commentRss>
      </item>
    
  <item>
    <title>Probable new features</title>
    <link>http://news.yasep.org/post/2009/07/04/Probable-new-features</link>
    <guid isPermaLink="false">urn:md5:9d1f89f7ae0031763c6342ff0a79872d</guid>
    <pubDate>Sat, 04 Jul 2009 19:58:00 +0200</pubDate>
    <dc:creator>whygee</dc:creator>
        <category>Electronics</category>
            
    <description>    &lt;p&gt;When a project has practical uses and implications, it is interesting to see
how it evolves and better fill de gaps that a purely theoretical design would
address. For YASEP, the modifications have been very deep, while many of the
neat original ideas remain. Lately, there have been a few new ideas that may or
may not be implemented.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A new CRIT instruction :&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is a method to perform atomic instruction sequences. It opens a
HW-garanteed CRITical section, that lasts a few and constant number of
instructions (1 to 16 depending on the imm4 argument). After/before this, IRQs
and other things are checked, to prevent the system from hanging because of
back-to-back CRIT instructions...&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;External bus expansion with off-chip buffers&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In the case where the number of FPGA pins is low, a lot of them are used by
external SRAM. The address and data bus could be used to expand the I/O count,
by adding a few 74LVC574 and 74LCV245. In this case, a few specific
instructions are required because the GET and PUT instructions work only with
internal resources. Another issue is the bus loading that might affect the
timings and/or speed. The Inputs and outputs could be easily separated, the
output latches can be tied to the address bus (because it is unidirectional)
while the Input buffers can only be tied to the data bus. Voltage translation
is also a desired feature.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;CRC32 accelerator&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;As the need for a zlib port arises, the necessity to check CRC32 signatures
becomes a problem. I have already designed CRC routines and... well... they can
become quite heavy. OTOH, it is rather straight-forward to do in hardware. I
don't want to make yet another instruction here because this would make the
pipeline more complex (and the number of registers is already too small) but a
small set of SR will do the trick.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;DMA for SPI&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;SPI is used when booting the CPU from a SPI Flash memory, or when
communicating with Ethernet or 2.4GHz interfaces. Adding a simple DMA
capability would save a lot of cycles and latency.&lt;/p&gt;
&lt;p&gt;Other things will certainly come later...&lt;/p&gt;</description>
    
    
    
          <comments>http://news.yasep.org/post/2009/07/04/Probable-new-features#comment-form</comments>
      <wfw:comment>http://news.yasep.org/post/2009/07/04/Probable-new-features#comment-form</wfw:comment>
      <wfw:commentRss>http://news.yasep.org/feed/atom/comments/415389</wfw:commentRss>
      </item>
    
  <item>
    <title>YASEP@HSF2009</title>
    <link>http://news.yasep.org/post/2009/06/29/YASEPHSF2009</link>
    <guid isPermaLink="false">urn:md5:dda4e9882c0357109dd3c414ef44deed</guid>
    <pubDate>Mon, 29 Jun 2009 21:37:00 +0200</pubDate>
    <dc:creator>whygee</dc:creator>
        <category>Updates and news</category>
            
    <description>    &lt;p&gt;On June 26th, I have presented a joint project with Laura, called &amp;quot;GPL&amp;quot;
(Gaming Platform Libre), at the HackerSpace Festival (HSF2009) near Paris. See
&lt;a href=&quot;http://www.hackerspace.net/gaming-platform-libre&quot; hreflang=&quot;fr&quot;&gt;http://www.hackerspace.net/gaming-platform-libre&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This is a french talk, and the &lt;a href=&quot;http://ygdes.com/HSF2009/HSF2009_GPL.html&quot; hreflang=&quot;fr&quot;&gt;slides are
here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;</description>
    
    
    
          <comments>http://news.yasep.org/post/2009/06/29/YASEPHSF2009#comment-form</comments>
      <wfw:comment>http://news.yasep.org/post/2009/06/29/YASEPHSF2009#comment-form</wfw:comment>
      <wfw:commentRss>http://news.yasep.org/feed/atom/comments/414198</wfw:commentRss>
      </item>
    
  <item>
    <title>First Layout of a custom FPGA+SRAM board</title>
    <link>http://news.yasep.org/post/2009/04/24/First-Layout-of-a-custom-FPGASRAM-board</link>
    <guid isPermaLink="false">urn:md5:d8c22a1942ae780cea0d97663f0e31c9</guid>
    <pubDate>Fri, 24 Apr 2009 21:09:00 +0200</pubDate>
    <dc:creator>whygee</dc:creator>
        <category>Electronics</category>
            
    <description>    &lt;p&gt;I have not been fully satisfied by all the boards that I have seen. There
are always details that don't match a project or requirements that are not met
(size, price, features, whatever). So I finally decided to start my own
board(s).&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://news.yasep.org/public/yasep_prelayout.jpg&quot;&gt;&lt;img src=&quot;http://news.yasep.org/public/./.yasep_prelayout_m.jpg&quot; alt=&quot;Firt route of a TSOP-2 SRAM to a A3P125 FPGA in VQ100&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;Firt route of a TSOP-2 SRAM to a A3P125 FPGA in VQ100, Apr 2009&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;It seems that YASEP could easily replace microcontrollers that I already
use. The flexibility offered by FPGAs and the ability to strip a thing down to
the minimum, then expand on that depending on the needs, makes this solution
more and more attractive. No difficult selection of features and package (as
with fixed-function chips), put the FPGA on the board and route the pins...&lt;/p&gt;
&lt;p&gt;I can't solder BGA package, or even build suitable PCBs myself, but I'm
already able to make double-sided PCBs that can be fitted with a FPGA in 100,
144 or 208 pin in QFP package. I'll be able to reuse these designs in the
future, or make my own cheap modules.&lt;/p&gt;</description>
    
    
    
          <comments>http://news.yasep.org/post/2009/04/24/First-Layout-of-a-custom-FPGASRAM-board#comment-form</comments>
      <wfw:comment>http://news.yasep.org/post/2009/04/24/First-Layout-of-a-custom-FPGASRAM-board#comment-form</wfw:comment>
      <wfw:commentRss>http://news.yasep.org/feed/atom/comments/396953</wfw:commentRss>
      </item>
    
  <item>
    <title>First details of the new &quot;extended&quot; long instruction</title>
    <link>http://news.yasep.org/post/2009/04/04/First-details-of-the-new-extended-long-instruction</link>
    <guid isPermaLink="false">urn:md5:339c2c94dfa3a682f86b29ec9cbb9618</guid>
    <pubDate>Sat, 04 Apr 2009 16:31:00 +0200</pubDate>
    <dc:creator>whygee</dc:creator>
        <category>Architecture</category>
            
    <description>    &lt;p&gt;A precedent post has summarised the available &amp;quot;instruction forms&amp;quot;, with or
without immediate field (4 or 16-bits), with 2, 3 or 4 register addresses. Here
we look at the &amp;quot;long form&amp;quot; (32-bit) using the &amp;quot;extended&amp;quot; fields that add 2
register addresses, conditional (speculative) execution and pointer
updates.&lt;/p&gt;
&lt;p&gt;Let's now examine the structure of the 16 bits that are added to the basic
instruction word :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;One bit indicates if the source is Imm4 (it replaces the corresponding
field in the basic instruction).&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;2 bits indicate a condition (LSB, MSB, Zero, Always) and another bit
negates the result (The condition &amp;quot;never&amp;quot; will be used later but I'm not sure
how).&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;4 bits indicate which register is being tested&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;4 bits indicate the destination register (replacing the src/dest field in
the basic instruction)&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;2 fields of 2 bits each encode the auto-update functions of one source
register and the destination register (nop, post-inc, post-dec, pre-dec)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These fields are mostly orthogonal and can work in almost any combination.
One can auto-update 2 registers (whether they are normal or belong to a memory
access register pair), perform a 3-address operation and enable write-back
depending on 97 conditions. It also preserves the availability of short
immediate values, which further reduces code size. However it can increase the
core's complexity.&lt;/p&gt;
&lt;p&gt;One unexpected bonus is that this new architecture iteration is more
compiler-friendly. At least, it's much less awkward or embarassing.&lt;/p&gt;
&lt;p&gt;One bit could have been saved : the imm4 flag could be merged in the
auto-update field for a source register. However this increases the logic
overhead and prevents simultaneous use of auto-update AND imm4.&lt;/p&gt;
&lt;p&gt;Stay tuned...&lt;/p&gt;</description>
    
    
    
          <comments>http://news.yasep.org/post/2009/04/04/First-details-of-the-new-extended-long-instruction#comment-form</comments>
      <wfw:comment>http://news.yasep.org/post/2009/04/04/First-details-of-the-new-extended-long-instruction#comment-form</wfw:comment>
      <wfw:commentRss>http://news.yasep.org/feed/atom/comments/387190</wfw:commentRss>
      </item>
    
  <item>
    <title>Yet another Instruction Set Architecture change</title>
    <link>http://news.yasep.org/post/2009/04/04/Yet-another-Instruction-Set-Architecture-change</link>
    <guid isPermaLink="false">urn:md5:a08f19a19830dd4360fc7d36b25a6db4</guid>
    <pubDate>Sat, 04 Apr 2009 14:36:00 +0200</pubDate>
    <dc:creator>whygee</dc:creator>
        <category>Architecture</category>
            
    <description>    &lt;p&gt;I wish it could stabilize soon, but at least movement is a sign of activity
(or the reverse :-))&lt;/p&gt;
&lt;p&gt;I was annoyed by the ASU operations :&lt;/p&gt;
&lt;pre&gt;
  ADD, SUB, ADDS1, SUBS1, ADDS2, SUBS2, MIN, MAX
&lt;/pre&gt;
&lt;p&gt;These instructions were the last ones that used skip technique, since it is
progressively dropped in favor of relative branches by conditional add/sub to
the PC register.&lt;/p&gt;
&lt;p&gt;How is it possible to provide the same functionality without skip ? It's the
same old question that decades of research has not yet answered definitively.
The Carry Flag is the obvious solution but I have just dropped the &amp;quot;status/mode
register&amp;quot; in favor of another general purpose register. So where can I find a
stupid bit of room ?&lt;/p&gt;
&lt;p&gt;The answer is there under my eyes : the LSB of the PC ...&lt;/p&gt;
&lt;p&gt;OK OK I know it's ugly. But consider these aspects :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The PC points to the next instruction and never uses the LSB because all
the YASEP instructions are aligned on 2-bytes boundaries.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Any write to the PC register modifies the bits 1 to 31. Bit 0 comes from
the ASU's carry output.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;We can declare that only the ASU operations (or context changes) can change
the PC's LSB. All the other instructions can read it and test it, so the
informations is easily available.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Since we dropped the 4 instructions that used skip, these &amp;quot;slots&amp;quot; can be
filled by other instructions :&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;
 CMPS, CMPU, SMIN, SMAX
&lt;/pre&gt;
&lt;p&gt;CMPx are just like SUB but don't write the result back. I wish it could set
the LSB of any register but the current architecture doesn't allow this, so
please keep the destination field to PC when encoding the assembly
instruction.&lt;/p&gt;
&lt;p&gt;3 new instructions deal with signed comparison : CMPS, SMIN &amp;amp; SMAX. They
were missing from the previous opcode maps but the elimination of the
skip-instructions leaves enough room. I have to update the VHDL now...&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Keeping the carry bit in the LSB of the PC can have a curious side effect :
relative jumps with odd values will make the carry bit ripple to the other bits
of the result, so the destination address that is written in the PC will depend
on the value of the carry bit. In practice, there is no speed or size advantage
(compared to condition codes in the new opcode extension) but the possibility
is there...&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Clearing the carry flag is done with&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;
  CMP Rx, Rx
&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;Setting the carry flag is done with&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;
  CMP -1, Rx
&lt;/pre&gt;
&lt;p&gt;(or something like that)&lt;/p&gt;
&lt;p&gt;Usually, I would end the post with something along the lines of &amp;quot;this is
good and everybody is happy&amp;quot;. Now, I feel a bit disapointed that YASEP looks
more like other architectures, and has less distinguishing features. It is less
groundbreaking and it will have to face the same problems as the others, on top
of its inherent quirks. But it's still better than nothing and I do my best to
keep the system rather coherent and orthogonal.&lt;/p&gt;</description>
    
    
    
          <comments>http://news.yasep.org/post/2009/04/04/Yet-another-Instruction-Set-Architecture-change#comment-form</comments>
      <wfw:comment>http://news.yasep.org/post/2009/04/04/Yet-another-Instruction-Set-Architecture-change#comment-form</wfw:comment>
      <wfw:commentRss>http://news.yasep.org/feed/atom/comments/387170</wfw:commentRss>
      </item>
    
  <item>
    <title>what about YASEP2009 ?</title>
    <link>http://news.yasep.org/post/2009/03/19/what-about-YASEP2009</link>
    <guid isPermaLink="false">urn:md5:56bdcea0e53cd401484a8d78500d2697</guid>
    <pubDate>Thu, 19 Mar 2009 14:50:00 +0100</pubDate>
    <dc:creator>whygee</dc:creator>
        <category>Updates and news</category>
            
    <description>    &lt;p&gt;Development of and around YASEP is going on in a weird way, but it still
continues...&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;If you don't remember, YASEP had only two ways to address data previously
:&lt;/p&gt;
&lt;p&gt;short form :&lt;/p&gt;
&lt;pre&gt;
 Reg1 OP Reg2 =&amp;gt; Reg1  (16 bits)
&lt;/pre&gt;
&lt;p&gt;long form :&lt;/p&gt;
&lt;pre&gt;
  Reg1 OP Imm16 =&amp;gt; Reg2 (32 bits)
&lt;/pre&gt;
&lt;p&gt;Now a few bits are freed and this gives much more &amp;quot;flexibility&amp;quot;, so I added
:&lt;/p&gt;
&lt;p&gt;Short Immediate :&lt;/p&gt;
&lt;pre&gt;
  Reg1 OP Imm4 =&amp;gt; Reg1 (16 bits)
&lt;/pre&gt;
&lt;p&gt;Long Register :&lt;/p&gt;
&lt;pre&gt;
  Reg1 OP Reg2 =&amp;gt; Reg3 (32 bits)
&lt;/pre&gt;
&lt;p&gt;And because there was still some room, this last form has more elaborate
versions :&lt;/p&gt;
&lt;p&gt;Long conditional :&lt;/p&gt;
&lt;pre&gt;
  Reg1 OP Reg2 IF{NOT} Reg4{LSB/MSB/Zero/ready} =&amp;gt; Reg3 (32 bits)
&lt;/pre&gt;
&lt;p&gt;And other versions come up when the Reg2 field is interpreted as Imm4 :&lt;/p&gt;
&lt;p&gt;Long conditional short Imm: (excuse the name)&lt;/p&gt;
&lt;pre&gt;
  Reg1 OP Imm4 IF{NOT} Reg4{LSB/MSB/Zero/ready} =&amp;gt; Reg3 (32 bits)
&lt;/pre&gt;
&lt;p&gt;Or without condition :&lt;/p&gt;
&lt;pre&gt;
  Reg1 OP Imm4 =&amp;gt; Reg3 (32 bits)
&lt;/pre&gt;
&lt;p&gt;This applies to the computation instructions, the control instructions are
still too undefined yet.&lt;/p&gt;
&lt;p&gt;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...&lt;/p&gt;
&lt;p&gt;If you can't stand the wait, have a look at a precent, broken version at
&lt;a href=&quot;http://yasep.org/~whygee/yasep2009/&quot; hreflang=&quot;en&quot;&gt;http://yasep.org/~whygee/yasep2009/&lt;/a&gt;, at least it is more recent than
the main site.&lt;/p&gt;</description>
    
    
    
          <comments>http://news.yasep.org/post/2009/03/19/what-about-YASEP2009#comment-form</comments>
      <wfw:comment>http://news.yasep.org/post/2009/03/19/what-about-YASEP2009#comment-form</wfw:comment>
      <wfw:commentRss>http://news.yasep.org/feed/atom/comments/343284</wfw:commentRss>
      </item>
    
  <item>
    <title>Listed : the dynamic LISTing EDitor</title>
    <link>http://news.yasep.org/post/2009/02/18/Listed-%3A-the-dynamic-LISTing-EDitor</link>
    <guid isPermaLink="false">urn:md5:2d9bcaa243d41963698f68475bec3f53</guid>
    <pubDate>Wed, 18 Feb 2009 23:22:00 +0100</pubDate>
    <dc:creator>whygee</dc:creator>
        <category>JavaScript</category>
            
    <description>    &lt;p&gt;So I've been busy again...&lt;/p&gt;
&lt;p&gt;This time, it's all about JavaScript. The preliminary version is available
from &lt;a href=&quot;http://yasep.org/~whygee/listed/listed.html&quot; hreflang=&quot;fr&quot;&gt;http://yasep.org/~whygee/listed/listed.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;What is it really ? It's an interactive assembler in dynamic HTML, loaded
with JavaScript and CSS stuff. It's also an interface to the JavaScript
assembler and the simulator.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The little windowing system allows one to break a whole program into small
chunks, that are easier to manage. Assembly langage listings can easily get
messy, but local symbols and hideable sections reduce the usual clutter on
one's window/screen.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;As the user edits each line, the modifications are committed to the rest of
the page : the instructions are re-assembled, the labels are updated where they
are used, the simulator can reinterpret the sequence and give preliminary
results for given testcases...&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;The assembler is not limited to YASEP : the CPU interface is going to be
generic, and LISTED could support any CPU that can be described in JavaScript
(that means : all, provided enough adaptations are coded). A dummy, overly
simple and dumb CPU architecture will be given as an example, so somebody can
easily adapt it for x86, PIC, Alpha, MIPS, POWER, or RCA1802 ...&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;This is going to be linked directly with ARF, which is another graphic
coding interface.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I have been working on this for more than 3 weeks and a lot of work still
remains. I focus on user comfort and UI design but I keep flexibility and
expandability in mind. For example, I have developped &lt;a href=&quot;http://yasep.org/~whygee/ygwm/ygwm.html&quot; hreflang=&quot;fr&quot;&gt;YGWM&lt;/a&gt; to handle the
windowing part, which will be reused by the whole yasep.org website. The
assembler and simulator will remain completely decoupled.&lt;/p&gt;
&lt;p&gt;In the end, it only confirms what I believed for some time : JavaScript is a
fantastic opportunity for really new ideas, it provides portability and rapid
design. However, after trying to make it compatible with different browsers, my
strong recommendation is : &lt;strong&gt;use Firefox and stick to it&lt;/strong&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://news.yasep.org/post/2009/02/18/Listed-%3A-the-dynamic-LISTing-EDitor#comment-form</comments>
      <wfw:comment>http://news.yasep.org/post/2009/02/18/Listed-%3A-the-dynamic-LISTing-EDitor#comment-form</wfw:comment>
      <wfw:commentRss>http://news.yasep.org/feed/atom/comments/328626</wfw:commentRss>
      </item>
    
  <item>
    <title>YASEP2009 : &quot;It's gonna be big&quot;... when it comes</title>
    <link>http://news.yasep.org/post/2009/01/23/YASEP2009-%3A-It-s-gonna-be-big-when-it-comes</link>
    <guid isPermaLink="false">urn:md5:43d83f0bf203a09cad53fe455cf45d8d</guid>
    <pubDate>Fri, 23 Jan 2009 21:41:00 +0100</pubDate>
    <dc:creator>whygee</dc:creator>
        <category>Updates and news</category>
            
    <description>    &lt;p&gt;The YASEP architecture has changed so much that a big rewrite is
necessary.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;The organisation of the website should evolve a lot and I'm thinking about
new techniques.&lt;/p&gt;
&lt;p&gt;The documentation must be partially rewritten, not simply updated here and
there.&lt;/p&gt;
&lt;p&gt;Today's site structure dates back to 2006, maybe the big rewrite is a good
thing in fact.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;</description>
    
    
    
          <comments>http://news.yasep.org/post/2009/01/23/YASEP2009-%3A-It-s-gonna-be-big-when-it-comes#comment-form</comments>
      <wfw:comment>http://news.yasep.org/post/2009/01/23/YASEP2009-%3A-It-s-gonna-be-big-when-it-comes#comment-form</wfw:comment>
      <wfw:commentRss>http://news.yasep.org/feed/atom/comments/320343</wfw:commentRss>
      </item>
    
  <item>
    <title>Yet another new Actel toy \o/</title>
    <link>http://news.yasep.org/post/2009/01/19/Yet-another-new-Actel-toy-o/</link>
    <guid isPermaLink="false">urn:md5:f63b6435e4bf7356fe839a790f350407</guid>
    <pubDate>Mon, 19 Jan 2009 00:34:00 +0100</pubDate>
    <dc:creator>whygee</dc:creator>
        <category>FPGA</category>
            
    <description>    &lt;p&gt;As you may know, YASEP16 will probably be used in my girlfriend's &amp;quot;pet
projet&amp;quot; &lt;a href=&quot;http://ours-agile.org/&quot; hreflang=&quot;fr&quot;&gt;Ours Agile&lt;/a&gt;. This
involves lots of real-time computations, countless sensors and more than 30
actuators... Sure, YASEP could handle that, probably. But the interfacing was
giving me headaches, so many analog components (on top of high-speed memory)
seems expensive and/or difficult.&lt;/p&gt;
&lt;p&gt;Then I spotted a second-hand AFS600 evaluation kit from Actel, that I got
for a fair price. It was a bit risky and I first thought it was broken. But
since it's 2nd hand, somebody has probably played with it, and just uploaded a
new configuration bitstream. With the help of a french rep., I found and
uploaded the original demo bitstream and ... Magic happens !&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://news.yasep.org/public/AFS600-EVAL-BRD1.jpg&quot;&gt;&lt;img src=&quot;http://news.yasep.org/public/./.AFS600-EVAL-BRD1_s.jpg&quot; alt=&quot;Actel AFS600 eval board plugged&quot; title=&quot;Actel AFS600 eval board plugged&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This FPGA family comes at &amp;quot;premium price&amp;quot; but it's a damn great opportunity
for robotics projects :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;512KB of program space as Flash EEPROM (no need to download from external
SPI !)&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;onchip 100MHz RC clock generator (exactly what I'm aiming at !)&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;RTC, temperature sensors, low power...&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;high-speed 30-channel ADC !&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;several integrated MOSFET gate drivers&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;13K tiles vs 6K on the A3P250&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;24 SRAM blocks vs 8 on the A3P250&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is definitely a great toy for robots...&lt;/p&gt;</description>
    
    
    
          <comments>http://news.yasep.org/post/2009/01/19/Yet-another-new-Actel-toy-o/#comment-form</comments>
      <wfw:comment>http://news.yasep.org/post/2009/01/19/Yet-another-new-Actel-toy-o/#comment-form</wfw:comment>
      <wfw:commentRss>http://news.yasep.org/feed/atom/comments/318885</wfw:commentRss>
      </item>
    
  <item>
    <title>Evolution of the instruction set</title>
    <link>http://news.yasep.org/post/2009/01/06/Evolution-of-the-instruction-set</link>
    <guid isPermaLink="false">urn:md5:d44c8eefd35d8f7529f3bd7e20991eec</guid>
    <pubDate>Tue, 06 Jan 2009 17:49:00 +0100</pubDate>
    <dc:creator>whygee</dc:creator>
        <category>Architecture</category>
            
    <description>    &lt;p&gt;As the execution units mature and get integrated as one block, things become
clear, at least concerning the computation instructions. I'm currently focusing
on the 16-bit flavour of YASEP and I expect that the following will hold true
for YASEP32.&lt;/p&gt;
&lt;p&gt;The ALU16 is nearing completion, though feature creep is still rampant. But
I have identified a bunch of instructions that will not change much in the
future, and they are gathered here :&lt;/p&gt;
&lt;pre&gt;
- ROP2 : AND, OR, XOR, ANDN, ORN, XNOR, NAND, NOR
- ASU : ADD, SUB, ADDS1, SUBB1, ADDS2, SUBS2, MIN, MAX
- SHL : SHR, SHL, ROR, ROL, SAR  + MUL : MUL8L, MUL8H, MULINIT
- IE : MOV, SB, LSB, LZB (16/32b) SH, SHH, LSH, LZH (32 bits only)
&lt;/pre&gt;
&lt;p&gt;This nice and square table represents the large majority of the used
instructions, and this fits into 4 groups of 8 instead of the planned 8 groups.
So...&lt;/p&gt;
&lt;p&gt;This saves a bit that is used to encode other addressing modes. In 2008,
there were 2 modes : short mode (RR) and long mode (RRImm16). Now, it is also
possible to encode a short immediate in the short mode (RImm4, the register is
replaced by a value), or use another register as a destination in the long mode
(but 12 bits are unused).&lt;/p&gt;
&lt;p&gt;Yes there are now 4 addressing modes and most code should feel their binary
size shrink ! Furthermore, the datapath complexity is not impacted and the
3-registers version should reduce the number of cycles for a given portion of
code.&lt;/p&gt;
&lt;p&gt;How this affects usual code :&lt;/p&gt;
&lt;pre&gt;
- add 1, r1 ==&amp;gt; r1 += 1
&lt;/pre&gt;
&lt;p&gt;now takes 2 bytes instead of 4. The constant can range from -8 to +7.&lt;/p&gt;
&lt;pre&gt;
- add r1, r2, r3 ==&amp;gt; r1 = r2 + r3
&lt;/pre&gt;
&lt;p&gt;It takes 4 bytes as previously but it saves 1 clock cycle, compared to&lt;/p&gt;
&lt;pre&gt;
- mov r2, r1
- add r3, r1
&lt;/pre&gt;
&lt;p&gt;Note that the yasep.org site is not yet updated, I'll wait until things
settle down.&lt;/p&gt;</description>
    
    
    
          <comments>http://news.yasep.org/post/2009/01/06/Evolution-of-the-instruction-set#comment-form</comments>
      <wfw:comment>http://news.yasep.org/post/2009/01/06/Evolution-of-the-instruction-set#comment-form</wfw:comment>
      <wfw:commentRss>http://news.yasep.org/feed/atom/comments/315339</wfw:commentRss>
      </item>
    
  <item>
    <title>Barrel Shifter : SHL16 ready</title>
    <link>http://news.yasep.org/post/2009/01/01/Barrel-Shifter-%3A-SHL16-ready</link>
    <guid isPermaLink="false">urn:md5:71a8315afe8754d5840338ac3d80977f</guid>
    <pubDate>Thu, 01 Jan 2009 12:21:00 +0100</pubDate>
    <dc:creator>whygee</dc:creator>
        <category>VHDL</category>
            
    <description>    &lt;p&gt;Hello and Happy New Year Everybody !&lt;/p&gt;
&lt;p&gt;I took some time to work on the next major building block of the YASEP16
execution unit : the shift/rotate unit is now ready in 16-bit flavour.&lt;/p&gt;
&lt;p&gt;I concentrate now on YASEP16 because it is smaller and marginally faster,
and consumes less bandwidth. It can fit easily in the A3P250 and its 6K 3-input
tiles, though i don't know how many tiles are needed in the end.&lt;/p&gt;
&lt;p&gt;SHL_16 uses about 220 tiles, and Actel's place&amp;amp;route estimates the unit
to run at 140MHz in pipelined version. This is slightly faster and smaller than
ASU_ROP2 that performs Add/Sub and boolean operations (115 MHz and about 350
tiles). The overall ALU (ASU_ROP2 + SHL + IE) is going to take roughly 700
tiles, or 1/8th of the A3P250's surface. Speed is looking satisfying, as I
intend to clock the thing at 96MHz on the ACME boards (64MHz * 1.5 with the
PLL).&lt;/p&gt;
&lt;p&gt;Overall, the following operations are ready for the 16-bit flavor :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ASU : ADD, SUB and compares as side effects.&lt;/li&gt;
&lt;li&gt;ROP2 : AND/OR/XOR/NAND/NOR/XNOR/ANDN/ORN as well as comparison for equality
(XOR followed by a OR reduction tree)&lt;/li&gt;
&lt;li&gt;SHL : SHR/SHL/ROR/ROL/SAR&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The next part to be developped is the IE (Insert/Extract) unit, for the load
and stores of bytes into a half-word. Stay tuned...&lt;/p&gt;
&lt;p&gt;''Note : some P&amp;amp;R runs give a bit higher working frequencies but I
reserve 15 or 20% of margin, since I expect that all the units put together
will need even more MUX2 all over the place, longer wires etc. resulting in
slower operation.' Furthermore, it is only YASEP16 yet, and the 32-bit flavor
will double the design's size... '&lt;/p&gt;</description>
    
    
    
          <comments>http://news.yasep.org/post/2009/01/01/Barrel-Shifter-%3A-SHL16-ready#comment-form</comments>
      <wfw:comment>http://news.yasep.org/post/2009/01/01/Barrel-Shifter-%3A-SHL16-ready#comment-form</wfw:comment>
      <wfw:commentRss>http://news.yasep.org/feed/atom/comments/313623</wfw:commentRss>
      </item>
    
  <item>
    <title>How to double the SRAM capacity of a FPGA board ?</title>
    <link>http://news.yasep.org/post/2008/12/19/How-to-double-the-SRAM-capacity-of-a-FPGA-board</link>
    <guid isPermaLink="false">urn:md5:5ef66aa0725a85b74fc6974d4ee4c8ed</guid>
    <pubDate>Fri, 19 Dec 2008 01:36:00 +0100</pubDate>
    <dc:creator>whygee</dc:creator>
        <category>Electronics</category>
            
    <description>    &lt;p&gt;The FoxVHDL and the Colibri boards from ACME Systems come with 2 SRAM chips
of 512K Bytes, so one application can benefit from one megabyte of 32-bit
low-latency access. But even 1 megabyte may be too small for some uses. Some
time ago, I found a way to extend the capacity : piggy-back soldering of
another SRAM chip.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://news.yasep.org/public/FoxVHDLyg.jpg&quot;&gt;&lt;img src=&quot;http://news.yasep.org/public/./.FoxVHDLyg_m.jpg&quot; alt=&quot;2 FoxVHDL FPGA boards from ACME Systems (modified by YG)&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;2 FoxVHDL FPGA boards from ACME Systems (modified by YG), Dec 2008&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;To keep the chips identical and avoid timing unbalance, I had to take the
SRAMs from another board, but it is not a concern since this second board will
be used for some purpose that does not need SRAMs.&lt;/p&gt;
&lt;p&gt;I should stress of course that not only unsoldering, but also re-soldering
is difficult, but it went well, thanks to special, adapted tools.&lt;/p&gt;
&lt;p&gt;Of course, there is a trick : memory is not simply expanded this way. One
has to reserve a new address bit, or both memories will be mapped to the same
addresses. I have chosen to not connect the Chip Select pins of the additional
chips, so they will be wired later to another unused FPGA output.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://news.yasep.org/public/FoxSRAMpiggyback.jpg&quot; alt=&quot;Two SRAM chips soldered on the footprint of one&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;Two SRAM chips soldered on the footprint of one, Dec 2008&quot; /&gt;&lt;/p&gt;
&lt;p&gt;If you want to attempt this hack on your board (whether ACME's or any of the
other FPGA boards with static RAM), don't forget that adding pins on a bus adds
capacitance, and slows the signals. The clock frequency won't be as fast as
before, so make extensive tests to assert the new working parameters.&lt;/p&gt;
&lt;p&gt;One way to keep the frequency high is either to use a larger SRAM chip (like
Cypress or IDT 512x16b or 1Mx16 but they are difficult to find and expensive),
or faster SRAMs : ACME uses 12ns chips, but other compatible chips are
available with 10ns and 8ns access times (try Farnell). Also, you can control
the rise/fall times with the I/O current options of the ProASIC3 pads, they can
be set to several values.&lt;/p&gt;
&lt;p&gt;Next step : using even higher-frequency, synchronous Static RAM, because
they have a much higher bandwidth. However I don't know yet how to control the
tight timings...&lt;/p&gt;</description>
    
    
    
          <comments>http://news.yasep.org/post/2008/12/19/How-to-double-the-SRAM-capacity-of-a-FPGA-board#comment-form</comments>
      <wfw:comment>http://news.yasep.org/post/2008/12/19/How-to-double-the-SRAM-capacity-of-a-FPGA-board#comment-form</wfw:comment>
      <wfw:commentRss>http://news.yasep.org/feed/atom/comments/310374</wfw:commentRss>
      </item>
    
  <item>
    <title>Site update, architecture modifications, and new FPGA boards</title>
    <link>http://news.yasep.org/post/2008/12/18/Site-update-architecture-modifications-and-new-FPGA-boards</link>
    <guid isPermaLink="false">urn:md5:752d59c7804ae88c84f9558b099a8319</guid>
    <pubDate>Thu, 18 Dec 2008 07:29:00 +0100</pubDate>
    <dc:creator>whygee</dc:creator>
        <category>Updates and news</category>
            
    <description>    &lt;p&gt;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
;-)&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://news.yasep.org/public/Colibris.jpg&quot;&gt;&lt;img src=&quot;http://news.yasep.org/public/./.Colibris_m.jpg&quot; alt=&quot;3 prototype Colibri boards from ACME Systems&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;3 prototype Colibri boards from ACME Systems, Dec 2008&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The &lt;a href=&quot;http://yasep.org&quot; hreflang=&quot;en&quot;&gt;website&lt;/a&gt; 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.&lt;/p&gt;</description>
    
    
    
          <comments>http://news.yasep.org/post/2008/12/18/Site-update-architecture-modifications-and-new-FPGA-boards#comment-form</comments>
      <wfw:comment>http://news.yasep.org/post/2008/12/18/Site-update-architecture-modifications-and-new-FPGA-boards#comment-form</wfw:comment>
      <wfw:commentRss>http://news.yasep.org/feed/atom/comments/310130</wfw:commentRss>
      </item>
    
  <item>
    <title>The new Colibri board is almost here !</title>
    <link>http://news.yasep.org/post/2008/12/11/The-new-Colibri-board-is-almost-here</link>
    <guid isPermaLink="false">urn:md5:d48e54b9f2a0d7ca55b6c0781155d567</guid>
    <pubDate>Thu, 11 Dec 2008 13:51:00 +0100</pubDate>
    <dc:creator>whygee</dc:creator>
        <category>FPGA</category>
            
    <description>    &lt;p&gt;I just received ACME System's invoice for some of their new Actel-based
boards. So I went to their website and remark that it is updated : &lt;a href=&quot;http://colibri.acmesystems.it/&quot; hreflang=&quot;en&quot;&gt;ACME Colibri board&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;It is lighter, better and slimmer than the FoxVHDL board, as it seems that
the VGA output was rarely used. The optional composite encoder seems to have
been even less used, and it used some space. So the Colibri should be a bit
cheaper too :-)&lt;/p&gt;
&lt;p&gt;I don't know when I'll get mine, but I ordered botht the A3P250 and A3P1000
version.&lt;/p&gt;</description>
    
    
    
          <comments>http://news.yasep.org/post/2008/12/11/The-new-Colibri-board-is-almost-here#comment-form</comments>
      <wfw:comment>http://news.yasep.org/post/2008/12/11/The-new-Colibri-board-is-almost-here#comment-form</wfw:comment>
      <wfw:commentRss>http://news.yasep.org/feed/atom/comments/307522</wfw:commentRss>
      </item>
    
  <item>
    <title>YASEP is published under the AGPL</title>
    <link>http://news.yasep.org/post/2008/12/01/YASEP-is-published-under-the-AGPL</link>
    <guid isPermaLink="false">urn:md5:9f1b6c64fd79e63b375949a154afa792</guid>
    <pubDate>Mon, 01 Dec 2008 19:21:00 +0100</pubDate>
    <dc:creator>whygee</dc:creator>
        <category>Freedom</category>
            
    <description>    &lt;p&gt;Recently, I have finally chosen the licence for the YASEP project : it's the
&lt;a href=&quot;http://www.fsf.org/licensing/licenses/agpl-3.0.html&quot; hreflang=&quot;en&quot;&gt;Affero GPL&lt;/a&gt; as published by the &lt;a href=&quot;http://www.fsf.org/&quot; hreflang=&quot;en&quot;&gt;Free Software Foundation&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.gnu.org/graphics/agplv3-155x51.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;It is practically the same as the GNU GPL but with one interesting twist :
You have to provide all the (derived) source code if you use it on a
server.&lt;/p&gt;
&lt;p&gt;For the YASEP project, it's not a problem because all the &amp;quot;intelligence&amp;quot; is
provided by client-side JavaScript code, and the rest is static or dynamic HTML
(not server-generated pages). However, using the AGPL is a clear sign that
YASEP is not just a bunch of RTL files packed with documentation pages. It is a
living, dynamic, organic set of files that interact with each others...&lt;/p&gt;
&lt;p&gt;Also, I would like that eventual contributors keep the structure of the
files and directories, so the whole archive remains available to anyone
visiting the sites. &lt;a href=&quot;http://yasep.org&quot; hreflang=&quot;en&quot;&gt;YASEP&lt;/a&gt; directly
provides the link to the current archive on the main page, and I believe that
this is a &lt;em&gt;good thing&lt;/em&gt; that others will do in the future.&lt;/p&gt;
&lt;p&gt;Concerning the VHDL source code : since the only difference between AGPL and
GPL is the server clause, well, I distribute the RTL files with AGPL too.
&lt;em&gt;One licence to rule them all...&lt;/em&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://news.yasep.org/post/2008/12/01/YASEP-is-published-under-the-AGPL#comment-form</comments>
      <wfw:comment>http://news.yasep.org/post/2008/12/01/YASEP-is-published-under-the-AGPL#comment-form</wfw:comment>
      <wfw:commentRss>http://news.yasep.org/feed/atom/comments/304626</wfw:commentRss>
      </item>
    
</channel>
</rss>