我尝试构建以下内容:
CO
|
/carry\ ____
s2 ---(((---|I0 |------------ O
+------+((---|I1 |
| +-(+---|I2 |
| | +----|I3__|
| +-(-----------+
| | |
| /carry\ ____ |B ___ BQ
D -----+------(((---|I0 |-+-----| |-+
s0 --+((---|I1 | > | |
s1 ---(+---|I2 | s3 -|S | |
| +-|I3__| s4 -|CE_| |
| +--------------------+
|
/carry\
|||
我在Verilog中编写,并实例化SB_LUT4,SB_CARRY,SB_DFFESS原语。为了尝试获得LUT级联,我编辑了一个.pcf约束文件(set_cascading ...)。但是,综合(Lattice IceCube 2017.01.27914)忽略了这些限制: W2401:忽略LUT实例的级联约束< filt.blk_0__a.cmbA.l.l',因为它在LogicCell中用DFF / CARRY打包
在令人钦佩的Project IceStorm中,我看不出为什么不能使用级联LUT和进位链组合的原因。
我知道有一个(略微)更新的IceCube2可用。我知道Yosys / arachne-pnr / icepack / iceprog工具链。但在更换工具链之前,问一下是否有人已经解决了这个问题,或者是否确实无法将进位链和LUT级联结合起来似乎是明智的?
更新 - 快速安装Yosys / arachne-pnr / icetools无需警告即可合成我的设计,但ice40_viewer(和日志输出)中的可视化表明链接的lut 未使用。