[英]myhdl constraints associating multiple pins to a variable
我將使用iCE40HX8K
給定評估板約束文件
set_io LED3 A2
set_io LED7 B3
...
etc
將所有8個LED捆綁到一個變量中的最佳方法是什么,我在將事物與約束文件關聯時遇到了麻煩,最終得到了這樣的結果
#main module
def ledcount(LED1, LED2, LED3, LED4, LED5, LED6, LED7, LED8, clk):
當向LED寫入寄存器時,我必須訴諸於此
op.next = op + 1
LED1 = op[0]
...
LED8 = op[7]
我正在生成這樣的verilog ...(我確實在這里從單個信號中獲得了單個切片位,但是這似乎會引起問題-即LED3在約束中未分配任何內容)
clock = Signal(bool(0))
l1 = Signal(bool(0))
...
l8 = Signal(bool(0))
toVerilog(ledcount, l1, l2, l3, l4, l5, l6, l7, l8, clock)
夠糟糕的,但它將變得難以處理並行地址和數據總線...
我注意到在生成的verilog LED1-8中是這樣指定的
input LED1;
...
input LED8;
在always子句之前和always內部
reg LED1;
...
reg LED8;
盡管所有這些都已編譯(硬件應該明天就可以到達!),並且它可能(?)仍然有效……我敢肯定它可以做得更好!
我很樂意使用位操作將LED作為一個字節一起處理...
最直接的方法是將您的約束更改為
set_io LED[2] A2
然后使用一個LED端口
def ledcount(leds, clk)
它可以轉換為
clk = Signal(bool(0))
leds = Signal(intbv(0)[8:])
myhdl.toVerilog(ledcount, leds, clk)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.