【发布时间】:2015-12-01 08:36:12
【问题描述】:
module do2(rst,clk,cout);
input rst,clk;
output [7:0]cout;
reg [2:0]D;
reg [19:0]count;
assign cout=out(D);
always@(posedge clk) begin
count = count+20'd1;
if(rst) begin
D<=3'b0;
end
else if(count==20'd100000)begin
D[0] <=D[1];
D[1] <=D[2];
D[2] <= D[0] ^D[2];
end
end
function [7:0]out;
input [2:0]in;
begin
case(in)
3'b000 : out =8'b11111100 ;
3'b001 : out =8'b01100000 ;
3'b010: out =8'b11011010 ;
3'b011 : out =8'b11110010 ;
3'b100 : out =8'b01100110 ;
3'b101 : out =8'b10110110 ;
3'b110 : out =8'b00111110 ;
3'b111 : out =8'b11100100 ;
endcase
end
endfunction
endmodule
我使用 QuartusII 编写 verilog 编程代码。 我想做一个随机数生成操作。 线性反馈移位寄存器用于生成随机数。 但是,我不知道为什么随机模式是相同的。 这样运算的结果是 8 5 4 2 7 .... 8 5 4 2 7。 如何解决这些问题? 请参考您的意见。
【问题讨论】:
标签: random verilog fpga intel-fpga