我将使用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] 我产生了这样的怪胎..。(我在这里确实有来自单个信号的单个切片位,但它似乎造成了一些问题--即约束中的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 1-8中指定了如下所示
input LED1;
...
input LED8;在“始终”子句之前和在“始终”内
reg LED1;
...
reg LED8;当所有这些编译时(硬件明天就会到达!)它可能(?)甚至工作..。我相信还能做得更好!
我很乐意用位操作把LED作为一个字节处理.
发布于 2016-02-25 14:01:06
最直截了当的做法是将约束更改为
set_io LED[2] A2然后使用单个LED端口
def ledcount(leds, clk)它可以转换成
clk = Signal(bool(0))
leds = Signal(intbv(0)[8:])
myhdl.toVerilog(ledcount, leds, clk)https://stackoverflow.com/questions/35608072
复制相似问题