簡體   English   中英

myhdl約束將多個引腳關聯到一個變量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM