Может ли каскад LUT использоваться одновременно с несущей цепью в FPGA iCE40 какими-либо инструментами?

Я пытаюсь построить следующее:

               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 "filap.blk_0__a.cmbA.l.l", так как он упакован с помощью DFF/CARRY в LogicCell

В замечательном Project IceStorm я не вижу никакой причины, по которой нельзя использовать комбинацию каскадных LUT и цепи переноса.

Я знаю, что (немного) более новый IceCube2 доступен. Я знаю о наборе инструментов Yosys/arachne-pnr/icepack/iceprog. Но перед сменой цепочки инструментов, кажется разумным спросить, кто-нибудь уже решил эту проблему, или действительно ли невозможно объединить цепочку переноса и каскады LUT?

Обновление - быстрая установка Yosys/arachne-pnr/icetools синтезирует мой дизайн без предупреждений, но визуализация в ice40_viewer (и вывод журнала) указывает на то, что цепочечная лут не используется.

0 ответов

Другие вопросы по тегам