0
Verilog에서 조정자를 시도하고 있습니다. 하지만 난 점점 오류입니다 : "endmodule"
Verilog에서 ModelSim의 "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;
[email protected](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
.
막대기의 끝 부분을 잘못 기입했는지 확실하지 않습니다. 인용문에 문제가 있거나 처음부터 다시 코딩해야하는지 여부가 문제라면 걱정됩니다.