在我们学校的项目中,我尝试使用线性反馈移位寄存器来生成硬件上的伪随机数(七段)。我已经编写了LFSR和七个段模块,但是我在连接这两个模块时遇到了困难。该项目是综合的,但HDL图并没有显示LFSR与七个段模块之间的任何连接。下面是密码。
//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
);谢谢你的帮助。
发布于 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是有效的,而不适用于应该使用复位信号的专用集成电路。
initial begin
LFSR = 4'd15;
endhttps://stackoverflow.com/questions/23577323
复制相似问题