首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将4位移位寄存器输出连接到Verilog中另一个模块中的4位输入端

将4位移位寄存器输出连接到Verilog中另一个模块中的4位输入端
EN

Stack Overflow用户
提问于 2014-05-10 05:10:43
回答 1查看 886关注 0票数 1

在我们学校的项目中,我尝试使用线性反馈移位寄存器来生成硬件上的伪随机数(七段)。我已经编写了LFSR和七个段模块,但是我在连接这两个模块时遇到了困难。该项目是综合的,但HDL图并没有显示LFSR与七个段模块之间的任何连接。下面是密码。

代码语言:javascript
复制
//main module
module expo(input clock, reset,
            output a,b,c,d,e,f,g
            );
wire [3:0]connect, clk, a,b,c,d,e,f,g;

LFSR_4_bit lfsr(
    .clock(clock),
    .LFSR(connect)
);

seven_seg seven(
     .in(connect),
     .reset(reset),
     .a(a),
     .b(b),
     .c(c),
     .d(d),
     .e(e),
     .f(f),
     .g(g)
);

endmodule

 //LFSR module
 module LFSR_4_bit(
            input clock,
            output reg[3:0]LFSR = 15  
);

    wire feedback = LFSR[4];

    always @(posedge clock)
       begin
      LFSR[0] <= feedback;
      LFSR[1] <= LFSR[0];
      LFSR[2] <= LFSR[1];
      LFSR[3] <= LFSR[2] ^ feedback;
      LFSR[4] <= LFSR[3];
      end

  endmodule

  //input and output for seven seg module

module sevenseg(
    input reset,
    input[3:0] in,  //the 4 inputs for each display
    output a, b, c, d, e, f, g, //the individual LED output for the seven segment along                           with the digital point
    output [3:0] an   // the 4 bit enable signal
    );

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2014-05-10 07:13:24

1)实例化,但是模块名为module sevenseg,这是编译错误。

2)您的LFSR有4位0到3,使用了第五位LFSR[4],这也是编译错误。

由于编译错误,我不确定您是否查看当前综合的结果,因为它应该失败。很可能在它们连接之前,您正在查看一个旧的结果。

其他我会改变的事情:

a)当您定义wire [3:0]connect, clk, a,b,c,d,e,f,g;时,它们都是4位。

但是,由于时钟(不是clk)和a,b,c,d,e,f,g是在您的端口列表中定义的,它们已经被声明了。这句话可能就是wire [3:0]connect

b)当初始化触发器的值和不使用重置时,最好使用初始开始:这对FPGA是有效的,而不适用于应该使用复位信号的专用集成电路。

代码语言:javascript
复制
initial begin
  LFSR = 4'd15;
end
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23577323

复制
相关文章

相似问题

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