fomu-workshop/docs/vhdl.rst

69 lines
2.4 KiB
ReStructuredText
Raw Permalink Normal View History

2020-10-11 23:44:14 +00:00
.. _HDLs:VHDL:
2020-10-05 06:38:33 +00:00
VHDL on Fomu
------------
2021-05-20 11:14:47 +00:00
.. HINT:: Component declarations for instantiating hard cores (such as the ones in
:repo:`hdl/sb_ice40_components.vhd <hdl/sb_ice40_components.vhd>`) are found in the installation of
2020-10-05 06:38:33 +00:00
`iCEcube2 <http://www.latticesemi.com/iCEcube2>`_.
“Hello world!” - Blink a LED
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2021-05-20 11:14:47 +00:00
The canonical “Hello, world!” of hardware is to blink a LED.
The directory :repo:`hdl/vhdl/blink <hdl/vhdl/blink>` contains a VHDL example of a blink project.
This takes the 48 MHz clock and divides it down by a large number so you get an on/off pattern.
2020-10-05 06:38:33 +00:00
2021-05-20 11:14:47 +00:00
Enter the :repo:`hdl/vhdl/blink <hdl/vhdl/blink>` directory and build the demo by using ``make``:
2020-10-05 06:38:33 +00:00
**Make sure you set the** ``FOMU_REV`` **value to match your hardware!** See :ref:`required-hardware`.
.. session:: shell-session
$ make FOMU_REV=$FOMU_REV
...
Info: Max frequency for clock 'clk': 70.39 MHz (PASS at 12.00 MHz)
Info: Max delay posedge clk -> <async>: 3.15 ns
Info: Slack histogram:
Info: legend: * represents 1 endpoint(s)
Info: + represents [1,1) endpoint(s)
Info: [ 69127, 69680) |**
Info: [ 69680, 70233) |**
Info: [ 70233, 70786) |
Info: [ 70786, 71339) |**
Info: [ 71339, 71892) |**
Info: [ 71892, 72445) |**
Info: [ 72445, 72998) |**
Info: [ 72998, 73551) |
Info: [ 73551, 74104) |**
Info: [ 74104, 74657) |**
Info: [ 74657, 75210) |**
Info: [ 75210, 75763) |**
Info: [ 75763, 76316) |
Info: [ 76316, 76869) |**
Info: [ 76869, 77422) |**
Info: [ 77422, 77975) |**
Info: [ 77975, 78528) |
Info: [ 78528, 79081) |***************************
Info: [ 79081, 79634) |**
Info: [ 79634, 80187) |***
22 warnings, 0 errors
2021-05-17 05:08:12 +00:00
docker run --rm -v //t/fomu/fomu-workshop/hdl/vhdl/blink/../..://src -w //src/hdl/vhdl/blink ghdl/synth:icestorm icepack blink.asc blink.bit
2020-10-05 06:38:33 +00:00
cp blink.bit blink.dfu
dfu-suffix -v 1209 -p 70b1 -a blink.dfu
dfu-suffix (dfu-util) 0.9
Copyright 2011-2012 Stefan Schmidt, 2013-2014 Tormod Volden
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to http://sourceforge.net/p/dfu-util/tickets/
Suffix successfully added to file
$
2021-05-20 11:14:47 +00:00
You can then load ``blink.dfu`` onto Fomu by using ``make load`` or the same ``dfu-util -D`` command weve been using so
far.
You should see a blinking pattern of varying color on your Fomu, indicating your bitstream was successfully loaded.