我在模型中的 verilog 中遇到错误im "endmodule"



我正在尝试在Verilog中探索仲裁者。但是我遇到了错误:"endmodule"

这是我的代码:

module rr_arbiter (
clk, // positive edge trigger
reset,  // negative edge trigger
req,grant,
priority, priority_req);
input clk, reset;
input [3:0]req;
input priority;
input [1:0] priority_req;
output [3:0] grant; 
integer i;
always@(posedge clk) begin
if (reset) begin
//all grant = 0
for(i=0;i<4;i=i+1)
grant[i] = 0; //reset
end
else
if(priority == 0)begin
//0,1,2,3,0,1,2,3 ....
for(i=0;i<4;i=i+1)
if(req[i] == 0)
grant[0] <= req[i];
else if(req[i] == 1)
grant[1] <= req[i];
else if(req[i] == 2)
grant[2] <= req[i];
else if(req[i] == 3)
grant[3] <= req[i];
end
if(priority == 1)begin
if (reset) begin
//all grant = 0
for(i=0;i<4;i=i+1)
grant[i] = 0; //reset
end
if(priority_req==0)begin //0
//counter : 0 0 1 2 3 0 0 1 2 3 ..
for(i=0;i<4;i=i+1)
if(req[i] == 0)
grant[0] <= req[i];
grant[1] <= req[i];
if(req[i] == 1)
grant[2] <= req[i];
if(req[i] == 2)
grant[3] <= req[i];
if(req[i] == 3)
grant[0] <= req[i];
end
else if(priority_req==1)begin
//counter : 0 1 1 2 3 0 1 1 2 3 ..
for(i=0;i<4;i=i+1)
if(req[i] == 0)
grant[0] <= req[i];
if(req[i] == 1)
grant[1] <= req[i];
grant[2] <= req[i];
if(req[i] == 2)
grant[3] <= req[i];
if(req[i] == 3)
grant[0] <= req[i];
end
else if(priority_req==2)begin
//counter : 0 1 2 2 3 0 1 2 2 3 ..
for(i=0;i<4;i=i+1)
if(req[i] == 0)
grant[0] <= req[i];
if(req[i] == 1)
grant[1] <= req[i];
if(req[i] == 2)
grant[2] <= req[i];
grant[3] <= req[i];
if(req[i] == 3)
grant[0] <= req[i];
end
else if(priority_req==3)begin
//counter : 0 1 2 3 3 0 1 2 3 3 ..
for(i=0;i<4;i=i+1)
if(req[i] == 0)
grant[0] <= req[i];
if(req[i] == 1)
grant[1] <= req[i];
if(req[i] == 2)
grant[2] <= req[i];
if(req[i] == 3)
grant[3] <= req[i];
grant[0] <= req[i];
end
else if(priority_req>3)begin
for(i=0;i<4;i=i+1)
grant[i] = 0;
end
end  
endmodule 

我想制作循环优先考虑仲裁者模块。

我不确定我是否写了错误的棍子末端。我担心问题是否是,如果报价有问题,或者是否应该从一开始就再次对其进行重新编码。

Verilog代码中的许多语法错误指向问题之后的行。与任何具有VERILOG模式的编辑器的正确代码缩进的实践将表明您在endmodule之前错过了end

其他错误:需要将赠款定义为reg。另外,您有很多req[i] == 3代码。但是req [i]是一个。考虑查看casez语句。

相关内容

最新更新