{"id":1394,"date":"2020-02-19T21:52:42","date_gmt":"2020-02-19T20:52:42","guid":{"rendered":"http:\/\/www.fabienm.eu\/flf\/?p=1394"},"modified":"2020-04-09T15:50:04","modified_gmt":"2020-04-09T14:50:04","slug":"15-ecp5-board-kit","status":"publish","type":"post","link":"http:\/\/www.fabienm.eu\/flf\/15-ecp5-board-kit\/","title":{"rendered":"15$ ECP5 board kit"},"content":{"rendered":"\n<p><a href=\"http:\/\/www.latticesemi.com\/Products\/FPGAandCPLD\/ECP5.aspx\">ECP5<\/a> is a great FPGA, it was reversed in <a href=\"https:\/\/github.com\/SymbiFlow\/prjtrellis\">Trellis<\/a>, it&rsquo;s bigger than ICE40 that was reversed before in <a href=\"http:\/\/www.clifford.at\/icestorm\/\">icestorm<\/a> project. And it have lots of cool stuff like <\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>multipliers<\/li><li>serdes<\/li><li>25klut min (85 max)<\/li><li>and lots of memory bits<\/li><\/ul>\n\n\n\n<p>But ECP5 board available on the web are little bit expensive (if you have nothing to do with it ;). Even the <a href=\"https:\/\/github.com\/gregdavill\/OrangeCrab\">OrangeCrab<\/a> will be about 80$ minimum (but with DDR3 and USB on it).<\/p>\n\n\n\n<p>There is a rumor on the web that <a href=\"https:\/\/fr.aliexpress.com\/item\/32281130824.html\">this leds display <\/a>board include an ECP5 :<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"499\" src=\"http:\/\/www.fabienm.eu\/flf\/wp-content\/uploads\/2020\/02\/ecp5_15dol_glob.jpg\" alt=\"\" class=\"wp-image-1395\" srcset=\"http:\/\/www.fabienm.eu\/flf\/wp-content\/uploads\/2020\/02\/ecp5_15dol_glob.jpg 800w, http:\/\/www.fabienm.eu\/flf\/wp-content\/uploads\/2020\/02\/ecp5_15dol_glob-300x187.jpg 300w, http:\/\/www.fabienm.eu\/flf\/wp-content\/uploads\/2020\/02\/ecp5_15dol_glob-768x479.jpg 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><figcaption>The Board as received<\/figcaption><\/figure>\n\n\n\n<p>It&rsquo;s really interesting, because this board cost only $15 ! With the dual SDRAM (M12L16161A) provided and its dual gigabit ethernet phy (<a href=\"https:\/\/github.com\/q3k\/chubby75\/blob\/master\/5a-75b\/datasheets\/B50610-DS07-RDS.pdf\">Boardcom B50612D B1KMLG<\/a>). For this low-cost price I order one of course.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1000\" height=\"618\" src=\"http:\/\/www.fabienm.eu\/flf\/wp-content\/uploads\/2020\/02\/ecp5_15dol_nosticker.jpg\" alt=\"\" class=\"wp-image-1397\" srcset=\"http:\/\/www.fabienm.eu\/flf\/wp-content\/uploads\/2020\/02\/ecp5_15dol_nosticker.jpg 1000w, http:\/\/www.fabienm.eu\/flf\/wp-content\/uploads\/2020\/02\/ecp5_15dol_nosticker-300x185.jpg 300w, http:\/\/www.fabienm.eu\/flf\/wp-content\/uploads\/2020\/02\/ecp5_15dol_nosticker-768x475.jpg 768w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><figcaption>Removing the sticker unveil an ECP5 25k !<\/figcaption><\/figure>\n\n\n\n<p>I just received it and if we remove the sticker we see a Lattice ECP5 ( <a href=\"https:\/\/www.digikey.com\/product-detail\/en\/lattice-semiconductor-corporation\/LFE5U-25F-6BG381C\/220-2051-ND\/5358087\">LFE5U-25F-6BG256C<\/a>).<\/p>\n\n\n\n<p>\\o\/ It&rsquo;s a really lowcost ECP5 dev kit !<\/p>\n\n\n\n<p>But without schematics. <a href=\"https:\/\/twitter.com\/assortedhackery\">Mike Walter <\/a>began to reverse it and document the board on its <a href=\"https:\/\/github.com\/miek\/chubby75\/tree\/5a-75b-v7_pinout\/5a-75b\">github project<\/a>.<\/p>\n\n\n\n<p><strong>[Edit 1 March]<\/strong><\/p>\n\n\n\n<p>Anton Blanchard give the jtag+uart pinout on<a href=\"https:\/\/twitter.com\/antonblanchard\/status\/1231778939888029696\"> its twitter profile<\/a> :<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"675\" src=\"http:\/\/www.fabienm.eu\/flf\/wp-content\/uploads\/2020\/03\/colorlight_jtag_uart-1024x675.jpeg\" alt=\"\" class=\"wp-image-1430\" srcset=\"http:\/\/www.fabienm.eu\/flf\/wp-content\/uploads\/2020\/03\/colorlight_jtag_uart-1024x675.jpeg 1024w, http:\/\/www.fabienm.eu\/flf\/wp-content\/uploads\/2020\/03\/colorlight_jtag_uart-300x198.jpeg 300w, http:\/\/www.fabienm.eu\/flf\/wp-content\/uploads\/2020\/03\/colorlight_jtag_uart-768x506.jpeg 768w, http:\/\/www.fabienm.eu\/flf\/wp-content\/uploads\/2020\/03\/colorlight_jtag_uart-1536x1013.jpeg 1536w, http:\/\/www.fabienm.eu\/flf\/wp-content\/uploads\/2020\/03\/colorlight_jtag_uart-2048x1351.jpeg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption>Jtag Uart pinout from Anton Blanchard (twitter)<\/figcaption><\/figure>\n\n\n\n<p>I configured the FPGA with this adapter <a href=\"https:\/\/www.seeedstudio.com\/Sipeed-USB-JTAG-TTL-RISC-V-Debugger-p-2910.html\">from seeedstudio<\/a> (7.6$), which is a simple FT2232 adapter.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Connect and configure with openFPGALoader<\/h4>\n\n\n\n<p>ECP5 is available in <a href=\"https:\/\/github.com\/trabucayre\/openFPGALoader\">openFPGALoader<\/a> list as we can see :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ openFPGALoader --list-fpga\nIDCode      manufacturer  family         model               \n0x81113043  lattice       ECP5-5G        LFE5UM5G-85F-8BG381 \n0x100381b   Gowin         GW1N           GW1N-4              \n0x20f30dd   altera        cyclone 10 LP  10CL025             \n0x3620093   xilinx        spartan7       xc7s15ftgb196-1     \n0x362d093   xilinx        artix a7 35t   xc7a35              \n0x900281b   Gowin         GW1N           GW1N-1              \n0x1100581b  Gowin         GW1N           GW1NR-9             \n0x13631093  xilinx        artix a7 100t  xc7a100             \n0x41111043  lattice       ECP5           LFE5U-25F-6BG256C   \n0x612bd043  lattice       MachXO3LF      LCMX03LF-6900C   \n   \n$ openFPGALoader -cdigilent --detect\nidcode 0x41111043\nmanufacturer lattice\nmodel  LFE5U-25F-6BG256C\nfamily ECP5\n<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Open source synthesize and place&amp;route tools<\/h4>\n\n\n\n<p>We can then load a simple blinker bitstream with openFPGALoader. But first, we have to synthesize one. <a href=\"https:\/\/github.com\/trabucayre\">Trabucayre<\/a> gave me a simple <a href=\"https:\/\/github.com\/Martoni\/blp\/tree\/master\/platforms\/colorlight\">blinker projec<\/a>t I added to the BLP (Blinking Led Project).<\/p>\n\n\n\n<p>This project require yosys, nextpnr and trellis to be installed. Installations instructions are given on<a href=\"https:\/\/github.com\/SymbiFlow\/prjtrellis\"> trellis repository.<\/a><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ git clone --recursive https:\/\/github.com\/SymbiFlow\/prjtrellis\n$ cd prjtrellis\/libtrellis\n$ cmake -DCMAKE_INSTALL_PREFIX=\/usr .\n$ make\n$ sudo make install<\/code><\/pre>\n\n\n\n<p>Then fo<a href=\"https:\/\/github.com\/YosysHQ\/nextpnr#nextpnr-ecp5\">r next-pnr<\/a>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ git clone https:\/\/github.com\/YosysHQ\/nextpnr.git\n$ cd nextpnr\n$ cmake -DARCH=ecp5 -DTRELLIS_INSTALL_PREFIX=\/usr\/ .\n$ make\n$ sudo make install\n<\/code><\/pre>\n\n\n\n<p>And finally <a href=\"https:\/\/github.com\/YosysHQ\/yosys\">Yosys<\/a> <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ git clone https:\/\/github.com\/YosysHQ\/yosys\n$ cd yosys\n$ make\n$ sudo make install<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Synthesize blinker<\/h4>\n\n\n\n<p>The blinker projet can be found on this<a href=\"https:\/\/github.com\/Martoni\/blp\"> github repository<\/a> :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ git clone https:\/\/github.com\/Martoni\/blp.git\n$ cd blp\/platforms\/colorlight\/\n$ make\n...\necppack --svf blink.svf blink_out.config blink.bit<\/code><\/pre>\n\n\n\n<p>Then, once JTAG is plugged we can download it with openFPGALoader :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$  openFPGALoader -cdigilent blink.bit \nOpen file blink.bit DONE\nParse file DONE\nEnable configuration: DONE\nSRAM erase: DONE\nLoading: &#91;==================================================] 100.000000%\nDone\nDisable configuration: DONE<\/code><\/pre>\n\n\n\n<p>And see the orange LED blinking !<\/p>\n\n\n\n<iframe loading=\"lazy\" src=\"https:\/\/www.youtube.com\/embed\/NlgvGTs1bW0\" allow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen=\"\" width=\"560\" height=\"315\" frameborder=\"0\"><\/iframe>\n\n\n\n<h4 class=\"wp-block-heading\">Some links<\/h4>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/twitter.com\/Claude1079\/status\/1233675662550020097\">Adding HDMI<\/a><\/li><li><a href=\"https:\/\/twitter.com\/Claude1079\/status\/1231194849350647808\">Change output 5V buffers to inout buffer<\/a><\/li><li><a href=\"https:\/\/oshpark.com\/shared_projects\/Gh52KL5i\">Clean bypass for output buffers.<\/a><\/li><\/ul>\n\n\n\n<p><\/p>\n\n\n\n<p><strong>[this article will be edited as I progress]<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>ECP5 is a great FPGA, it was reversed in Trellis, it&rsquo;s bigger than ICE40 that was reversed before in icestorm project. And it have lots of cool stuff like multipliers serdes 25klut min (85 max) and lots of memory bits But ECP5 board available on the web are little bit expensive (if you have nothing &hellip; <a href=\"http:\/\/www.fabienm.eu\/flf\/15-ecp5-board-kit\/\" class=\"more-link\">Continuer la lecture de <span class=\"screen-reader-text\">15$ ECP5 board kit<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_uag_custom_page_level_css":"","footnotes":""},"categories":[24,1],"tags":[174,144],"class_list":["post-1394","post","type-post","status-publish","format-standard","hentry","category-materiel","category-non-classe","tag-ecp5","tag-kit"],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false,"post-thumbnail":false},"uagb_author_info":{"display_name":"Fabien Marteau","author_link":"http:\/\/www.fabienm.eu\/flf\/author\/admin\/"},"uagb_comment_info":15,"uagb_excerpt":"ECP5 is a great FPGA, it was reversed in Trellis, it&rsquo;s bigger than ICE40 that was reversed before in icestorm project. And it have lots of cool stuff like multipliers serdes 25klut min (85 max) and lots of memory bits But ECP5 board available on the web are little bit expensive (if you have nothing\u2026","_links":{"self":[{"href":"http:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/posts\/1394","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/comments?post=1394"}],"version-history":[{"count":30,"href":"http:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/posts\/1394\/revisions"}],"predecessor-version":[{"id":1526,"href":"http:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/posts\/1394\/revisions\/1526"}],"wp:attachment":[{"href":"http:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/media?parent=1394"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/categories?post=1394"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/tags?post=1394"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}