Loops 在verilog中实现闭环
我试图在不使用verilog中的循环指令的情况下实现一个循环,所以我制作了一个计数器模块,模拟进行得非常顺利,但是当我试图在FPGA上实现它时,我在映射中遇到了很多错误,比如这个Loops 在verilog中实现闭环,loops,verilog,Loops,Verilog,我试图在不使用verilog中的循环指令的情况下实现一个循环,所以我制作了一个计数器模块,模拟进行得非常顺利,但是当我试图在FPGA上实现它时,我在映射中遇到了很多错误,比如这个 ERROR:MapLib:979 - LUT4 symbol "Inst_Count/Mcompar_GND_1105_o_xcount[7]_LessThan_25_o_lut<0>" (output signal=Inst_Count/Mcompar_GND_1105_o_xcount[7]_LessT
ERROR:MapLib:979 - LUT4 symbol
"Inst_Count/Mcompar_GND_1105_o_xcount[7]_LessThan_25_o_lut<0>" (output
signal=Inst_Count/Mcompar_GND_1105_o_xcount[7]_LessThan_25_o_lut<0>) has
input signal "Inst_Count/Madd_x[9]_GND_1105_o_add_0_OUT_cy<0>" which will be
trimmed. See Section 5 of the Map Report File for details about why the input
signal will become undriven.
哦,这完全是错误的。我真的不认为没有人能在这里帮助你而不给你讲Verilog,但是。。。一些马上就能注意到的事情是:
)
丢失)prv\u计数
无效8'd255
正好是8'b111111
,如果添加1'b1,它将重置为0,以此类推)module average(input clk, input rst, output reg [7:0] overflow_count);
reg [7:0] count;
always @(posedge clk or negedge rst) begin
if (~rst) begin
count <= 8'b0;
overflow_count <= 8'b0;
end else begin
count <= (count + 1'b1);
if (count == 8'b0)
overflow_count <= (overflow_count + 1'b1);
end
end
endmodule
模块平均值(输入时钟、输入rst、输出寄存器[7:0]溢出计数);
reg[7:0]计数;
始终@(posedge clk或negedge rst)开始
如果(~rst)开始
算了吧,我的verilog知识是一本名为verilog HDL的书的第一部分和建议的集合,因为我只能买一本。我正在赶我的工作,以便在本周六的最后期限之前完成,但一旦完成,我会慢慢来,因为使用FPGA真的很有趣:)谢谢我的朋友,我真的很感谢你的诚实:)
module average(input clk, input rst, output reg [7:0] overflow_count);
reg [7:0] count;
always @(posedge clk or negedge rst) begin
if (~rst) begin
count <= 8'b0;
overflow_count <= 8'b0;
end else begin
count <= (count + 1'b1);
if (count == 8'b0)
overflow_count <= (overflow_count + 1'b1);
end
end
endmodule