首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >连接Verilog阵列:多个驱动程序

连接Verilog阵列:多个驱动程序
EN

Stack Overflow用户
提问于 2012-11-27 00:49:04
回答 1查看 411关注 0票数 1

我在内存数组中存储一系列的值。当需要将此序列输出到LED显示器时,我遇到了多个驱动程序的错误。

下面是我正在使用的代码片段:

代码语言:javascript
复制
reg [3:0] p[0:63]; // pattern sequence
....
led = p[playcnt];  // display current pattern; playcnt loops from 0 to 63

似乎Verilog试图将存储器阵列中的每个寄存器连接到led输出,这导致了一个“多驱动器”错误。有没有什么简单的方法可以仅将存储器阵列的单个输出连接到led输出,并使用playcnt变量作为存储器阵列的地址?

谢谢你的帮忙!非常感谢。

EN

回答 1

Stack Overflow用户

发布于 2013-06-08 18:33:47

请提供与"led“相关的所有代码,并显示您所说的"playcnt循环从0到63”是什么意思。

如果你有类似下面这样的代码:

代码语言:javascript
复制
always_comb 
  for (int playcnt=0; playcnt<64; playcnt++)
    led = p[playcnt];

那么您确实将所有的寄存器都连接到了一个端口。

如果我正确理解了您的意图,那么您应该有类似以下内容的代码(未经过测试):

代码语言:javascript
复制
reg  [3:0] p [0:63];
reg  [5:0] playcnt;
wire [3:0] led;

always @ (posedge clk or negedge rst)
  if (!rst)
    playcnt[5:0] <= 6'h0;
  else
    playcnt[5:0] <= playcnt[5:0] + 6'h1;

assign led[3:0] = p[playcnt];
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13569351

复制
相关文章

相似问题

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