我将使用 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 一起作为单个字节处理......