2015-04-23 17:06:50 -05:00
|
|
|
bram $__ICE40_RAM4K_M0
|
2015-04-25 13:44:51 -05:00
|
|
|
init 1
|
2015-04-23 17:06:50 -05:00
|
|
|
abits 8
|
|
|
|
dbits 16
|
|
|
|
groups 2
|
|
|
|
ports 1 1
|
|
|
|
wrmode 0 1
|
2015-09-25 05:23:11 -05:00
|
|
|
enable 1 16
|
2015-04-23 17:06:50 -05:00
|
|
|
transp 0 0
|
|
|
|
clocks 2 3
|
|
|
|
clkpol 2 3
|
|
|
|
endbram
|
|
|
|
|
|
|
|
bram $__ICE40_RAM4K_M123
|
2015-04-26 01:39:31 -05:00
|
|
|
init 1
|
2015-04-23 17:06:50 -05:00
|
|
|
abits 9 @M1
|
|
|
|
dbits 8 @M1
|
|
|
|
abits 10 @M2
|
|
|
|
dbits 4 @M2
|
|
|
|
abits 11 @M3
|
|
|
|
dbits 2 @M3
|
|
|
|
groups 2
|
|
|
|
ports 1 1
|
|
|
|
wrmode 0 1
|
2015-09-25 05:23:11 -05:00
|
|
|
enable 1 1
|
2015-04-23 17:06:50 -05:00
|
|
|
transp 0 0
|
|
|
|
clocks 2 3
|
|
|
|
clkpol 2 3
|
|
|
|
endbram
|
|
|
|
|
2020-01-01 00:18:53 -06:00
|
|
|
# The syn_* attributes are described in:
|
|
|
|
# https://www.latticesemi.com/-/media/LatticeSemi/Documents/Tutorials/AK/LatticeDiamondTutorial311.ashx
|
|
|
|
|
2015-04-23 17:06:50 -05:00
|
|
|
match $__ICE40_RAM4K_M0
|
2020-01-01 00:18:53 -06:00
|
|
|
# implicitly requested RAM or ROM
|
|
|
|
attribute !syn_ramstyle syn_ramstyle=auto
|
|
|
|
attribute !syn_romstyle syn_romstyle=auto
|
|
|
|
attribute !ram_block
|
|
|
|
attribute !rom_block
|
|
|
|
attribute !logic_block
|
2015-06-20 02:31:19 -05:00
|
|
|
min efficiency 2
|
2015-04-23 17:06:50 -05:00
|
|
|
make_transp
|
|
|
|
or_next_if_better
|
|
|
|
endmatch
|
|
|
|
|
2020-01-01 00:18:53 -06:00
|
|
|
match $__ICE40_RAM4K_M0
|
|
|
|
# explicitly requested RAM
|
|
|
|
attribute syn_ramstyle=block_ram ram_block
|
|
|
|
attribute !syn_romstyle
|
|
|
|
attribute !rom_block
|
|
|
|
attribute !logic_block
|
|
|
|
min wports 1
|
|
|
|
make_transp
|
|
|
|
or_next_if_better
|
|
|
|
endmatch
|
|
|
|
|
|
|
|
match $__ICE40_RAM4K_M0
|
|
|
|
# explicitly requested ROM
|
|
|
|
attribute syn_romstyle=ebr rom_block
|
|
|
|
attribute !syn_ramstyle
|
|
|
|
attribute !ram_block
|
|
|
|
attribute !logic_block
|
|
|
|
max wports 0
|
|
|
|
make_transp
|
|
|
|
or_next_if_better
|
|
|
|
endmatch
|
|
|
|
|
2015-04-23 17:06:50 -05:00
|
|
|
match $__ICE40_RAM4K_M123
|
2020-01-01 00:18:53 -06:00
|
|
|
# implicitly requested RAM or ROM
|
|
|
|
attribute !syn_ramstyle syn_ramstyle=auto
|
|
|
|
attribute !syn_romstyle syn_romstyle=auto
|
|
|
|
attribute !ram_block
|
|
|
|
attribute !rom_block
|
|
|
|
attribute !logic_block
|
2015-06-20 02:31:19 -05:00
|
|
|
min efficiency 2
|
2015-04-23 17:06:50 -05:00
|
|
|
make_transp
|
2020-01-01 00:18:53 -06:00
|
|
|
or_next_if_better
|
|
|
|
endmatch
|
|
|
|
|
|
|
|
match $__ICE40_RAM4K_M123
|
|
|
|
# explicitly requested RAM
|
|
|
|
attribute syn_ramstyle=block_ram ram_block
|
|
|
|
attribute !syn_romstyle
|
|
|
|
attribute !rom_block
|
|
|
|
attribute !logic_block
|
|
|
|
min wports 1
|
|
|
|
make_transp
|
|
|
|
or_next_if_better
|
|
|
|
endmatch
|
|
|
|
|
|
|
|
match $__ICE40_RAM4K_M123
|
|
|
|
# explicitly requested ROM
|
|
|
|
attribute syn_romstyle=ebr rom_block
|
|
|
|
attribute !syn_ramstyle
|
|
|
|
attribute !ram_block
|
|
|
|
attribute !logic_block
|
|
|
|
max wports 0
|
|
|
|
make_transp
|
2015-04-23 17:06:50 -05:00
|
|
|
endmatch
|