2

我尝试构建以下内容:

               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.ll”的级联约束,因为它在 LogicCell 中与 DFF/CARRY 打包在一起

在令人钦佩的 Project IceStorm 中,我看不出为什么不能使用级联 LUT 和进位链的组合。

我知道有一个(稍微)更新的 IceCube2 可用。我知道 Yosys/arachne-pnr/icepack/iceprog 工具链。但在更改工具链之前,谨慎地询问是否有人已经解决了这个问题,或者是否确实不可能将进位链和 LUT 级联结合起来?

更新 - Yosys/arachne-pnr/icetools 的快速安装在没有警告的情况下合成了我的设计,但 ice40_viewer(和日志输出)中的可视化表明使用链式 lut。

4

0 回答 0