mirror of
https://github.com/YosysHQ/yosys
synced 2025-06-06 14:13:23 +00:00
example_synth: hardware mapping
Filling out the hardware mapping sections, and actually highlighting the changes in schematics instead of just the memory block. Also includes Part 4 of the coarse-grain rep, looking at `memory_collect` and putting the `synth_ice40 -top fifo -run :map_ram` command in its own (sub)section. Includes a `no_rw_check` section label in `memory.rst` for reference (because I can't remember how to reference by heading). Not sure about the opt output after map_ram section which has an open TODO, and the final steps section is also still open.
This commit is contained in:
parent
e6f8804e6a
commit
eb5da87d52
5 changed files with 88 additions and 94 deletions
|
@ -374,56 +374,9 @@ yosys> show -color maroon3 @new_cells -notitle -format dot -prefix rdata_alumacc
|
|||
Writing dot description to `rdata_alumacc.dot'.
|
||||
Dumping selected parts of module fifo to page 1.
|
||||
|
||||
yosys> memory -nomap
|
||||
|
||||
23. Executing MEMORY pass.
|
||||
|
||||
yosys> opt_mem
|
||||
|
||||
23.1. Executing OPT_MEM pass (optimize memories).
|
||||
Performed a total of 0 transformations.
|
||||
|
||||
yosys> opt_mem_priority
|
||||
|
||||
23.2. Executing OPT_MEM_PRIORITY pass (removing unnecessary memory write priority relations).
|
||||
Performed a total of 0 transformations.
|
||||
|
||||
yosys> opt_mem_feedback
|
||||
|
||||
23.3. Executing OPT_MEM_FEEDBACK pass (finding memory read-to-write feedback paths).
|
||||
|
||||
yosys> memory_bmux2rom
|
||||
|
||||
23.4. Executing MEMORY_BMUX2ROM pass (converting muxes to ROMs).
|
||||
|
||||
yosys> memory_dff
|
||||
|
||||
23.5. Executing MEMORY_DFF pass (merging $dff cells to $memrd).
|
||||
|
||||
yosys> opt_clean
|
||||
|
||||
23.6. Executing OPT_CLEAN pass (remove unused cells and wires).
|
||||
Finding unused cells or wires in module \fifo..
|
||||
Removed 1 unused cells and 9 unused wires.
|
||||
<suppressed ~2 debug messages>
|
||||
|
||||
yosys> memory_share
|
||||
|
||||
23.7. Executing MEMORY_SHARE pass (consolidating $memrd/$memwr cells).
|
||||
|
||||
yosys> opt_mem_widen
|
||||
|
||||
23.8. Executing OPT_MEM_WIDEN pass (optimize memories where all ports are wide).
|
||||
Performed a total of 0 transformations.
|
||||
|
||||
yosys> opt_clean
|
||||
|
||||
23.9. Executing OPT_CLEAN pass (remove unused cells and wires).
|
||||
Finding unused cells or wires in module \fifo..
|
||||
|
||||
yosys> memory_collect
|
||||
|
||||
23.10. Executing MEMORY_COLLECT pass (generating $mem cells).
|
||||
23. Executing MEMORY_COLLECT pass (generating $mem cells).
|
||||
|
||||
yosys> select -set new_cells t:$mem_v2
|
||||
|
||||
|
|
|
@ -65,7 +65,7 @@ show -color maroon3 @new_cells -notitle -format dot -prefix rdata_alumacc o:rdat
|
|||
|
||||
# ========================================================
|
||||
|
||||
memory -nomap
|
||||
memory_collect
|
||||
# or use the following commands:
|
||||
# design -reset
|
||||
# read_verilog fifo.v
|
||||
|
|
|
@ -5,41 +5,43 @@ synth_ice40 -top fifo -run begin:map_ram
|
|||
# ========================================================
|
||||
|
||||
synth_ice40 -top fifo -run map_ram:map_ffram
|
||||
select -set new_cells t:SB_RAM40_4K
|
||||
select -set rdata_path @new_cells %ci*:-SB_RAM40_4K[WDATA,WADDR,WE] @new_cells %co* %%
|
||||
show -color maroon3 @new_cells -notitle -format dot -prefix rdata_map_ram @rdata_path
|
||||
select -set mem t:SB_RAM40_4K
|
||||
select -set remap @mem %ci:+SB_RAM40_4K[RADDR] @mem %co %%
|
||||
select -set rdata_path t:SB_RAM40_4K %ci*:-SB_RAM40_4K[WCLKE,WDATA,WADDR,WE] t:SB_RAM40_4K %co* %%
|
||||
show -color maroon3 @mem -color cornflowerblue @remap -notitle -format dot -prefix rdata_map_ram @rdata_path
|
||||
|
||||
# ========================================================
|
||||
|
||||
synth_ice40 -top fifo -run map_ffram:map_gates
|
||||
select -set new_cells t:SB_RAM40_4K
|
||||
select -set rdata_path @new_cells %ci*:-SB_RAM40_4K[WDATA,WADDR,WE] @new_cells %co* %%
|
||||
show -color maroon3 @new_cells -notitle -format dot -prefix rdata_map_ffram @rdata_path
|
||||
select -set mem t:SB_RAM40_4K
|
||||
select -set remap @mem %co @mem %d
|
||||
select -set rdata_path t:SB_RAM40_4K %ci*:-SB_RAM40_4K[WCLKE,WDATA,WADDR,WE] t:SB_RAM40_4K %co* %%
|
||||
show -color maroon3 @mem -color cornflowerblue @remap -notitle -format dot -prefix rdata_map_ffram @rdata_path
|
||||
|
||||
# ========================================================
|
||||
|
||||
synth_ice40 -top fifo -run map_gates:map_ffs
|
||||
select -set new_cells t:SB_RAM40_4K
|
||||
select -set rdata_path @new_cells %ci*:-SB_RAM40_4K[WDATA,WADDR,WE] @new_cells %co* %%
|
||||
show -color maroon3 @new_cells -notitle -format dot -prefix rdata_map_gates @rdata_path
|
||||
select -set rdata_path t:SB_RAM40_4K %ci*:-SB_RAM40_4K[WCLKE,WDATA,WADDR,WE] t:SB_RAM40_4K %co* %%
|
||||
select -set multibit t:$_MUX_ t:$_DFFE_*_
|
||||
select -set alu t:$_OR_ t:$_NOT_ t:$lut %% %ci %% w:fifo_reader.addr %d i:* %d
|
||||
show -color maroon3 @multibit -color cornflowerblue @alu -notitle -format dot -prefix rdata_map_gates @rdata_path
|
||||
|
||||
# ========================================================
|
||||
|
||||
synth_ice40 -top fifo -run map_ffs:map_luts
|
||||
select -set new_cells t:SB_RAM40_4K
|
||||
select -set rdata_path @new_cells %ci*:-SB_RAM40_4K[WDATA,WADDR,WE] @new_cells %co* %%
|
||||
show -color maroon3 @new_cells -notitle -format dot -prefix rdata_map_ffs @rdata_path
|
||||
select -set rdata_path t:SB_RAM40_4K %ci*:-SB_RAM40_4K[WCLKE,WDATA,WADDR,WE] t:SB_RAM40_4K %co* %%
|
||||
select -set dff t:SB_DFFER
|
||||
select -set primitives t:$_AND_ %ci i:* %d
|
||||
show -color maroon3 @dff -color cornflowerblue @primitives -notitle -format dot -prefix rdata_map_ffs @rdata_path
|
||||
|
||||
# ========================================================
|
||||
|
||||
synth_ice40 -top fifo -run map_luts:map_cells
|
||||
select -set new_cells t:SB_RAM40_4K
|
||||
select -set rdata_path @new_cells %ci*:-SB_RAM40_4K[WDATA,WADDR,WE] @new_cells %co* %%
|
||||
show -color maroon3 @new_cells -notitle -format dot -prefix rdata_map_luts @rdata_path
|
||||
select -set rdata_path t:SB_RAM40_4K %ci*:-SB_RAM40_4K[WCLKE,WDATA,WADDR,WE] t:SB_RAM40_4K %co* %%
|
||||
show -color maroon3 t:SB_CARRY -color cornflowerblue t:$lut -notitle -format dot -prefix rdata_map_luts @rdata_path
|
||||
|
||||
# ========================================================
|
||||
|
||||
synth_ice40 -top fifo -run map_cells:
|
||||
select -set new_cells t:SB_RAM40_4K
|
||||
select -set rdata_path @new_cells %ci*:-SB_RAM40_4K[WDATA,WADDR,WE] @new_cells %co* %%
|
||||
show -color maroon3 @new_cells -notitle -format dot -prefix rdata_map_cells @rdata_path
|
||||
select -set rdata_path t:SB_RAM40_4K %ci*:-SB_RAM40_4K[WCLKE,WDATA,WADDR,WE] t:SB_RAM40_4K %co* %%
|
||||
show -color maroon3 t:SB_LUT* -notitle -format dot -prefix rdata_map_cells @rdata_path
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue