首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将多个引脚与变量关联的myhdl约束

将多个引脚与变量关联的myhdl约束
EN

Stack Overflow用户
提问于 2016-02-24 16:45:33
回答 1查看 59关注 0票数 1

我将使用iCE40HX8K

给定评估委员会约束文件

代码语言:javascript
复制
set_io LED3 A2  
set_io LED7 B3  
...  
etc  

将所有8个LED封装成一个变量的最佳方法是什么?我很难将这些东西与约束文件关联起来,最后得到了这样的结果

代码语言:javascript
复制
#main module
def ledcount(LED1, LED2, LED3, LED4, LED5, LED6, LED7, LED8, clk):

当我在LED上写一个寄存器时,我不得不这样做

代码语言:javascript
复制
op.next = op + 1
LED1 = op[0]
...
LED8 = op[7] 

我产生了这样的怪胎..。(我在这里确实有来自单个信号的单个切片位,但它似乎造成了一些问题--即约束中的LED3没有分配给任何东西)

代码语言:javascript
复制
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中指定了如下所示

代码语言:javascript
复制
input LED1;
...
input LED8;

在“始终”子句之前和在“始终”内

代码语言:javascript
复制
reg LED1;
...
reg LED8;

当所有这些编译时(硬件明天就会到达!)它可能(?)甚至工作..。我相信还能做得更好!

我很乐意用位操作把LED作为一个字节处理.

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-25 14:01:06

最直截了当的做法是将约束更改为

代码语言:javascript
复制
set_io LED[2] A2

然后使用单个LED端口

代码语言:javascript
复制
def ledcount(leds, clk)

它可以转换成

代码语言:javascript
复制
clk = Signal(bool(0))
leds = Signal(intbv(0)[8:])
myhdl.toVerilog(ledcount, leds, clk)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35608072

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档