djc
Advanced Member level 1
Hello all.
I am a beginner in verilog language. I wrote a code for ring counter using "genvar". But during compilations i am getting an error. I am using vim editor and Modelsim for simulations. Can anyone please spare some time and show me the right way.
Design code is
Testbench code is
[/CODE]
I am a beginner in verilog language. I wrote a code for ring counter using "genvar". But during compilations i am getting an error. I am using vim editor and Modelsim for simulations. Can anyone please spare some time and show me the right way.
Design code is
Code:
module dff(d_in,q_o,clk,rst);
input clk,rst;
input d_in;
output reg q_o;
always@(posedge clk) begin
if(rst) q_o <= 0;
else q_o <= d_in;
end
endmodule
module ring_counter(d_in,q_o,clk,rst);
parameter N=4;
input clk,rst;
input d_in;
output reg [N-1:0] q_o;
assign d_in=q_o[N-1];
genvar i;
generate
for(i=0;i<N;i=i+1)begin
dff inst_1(q_o[N-1],q_o[i],clk,rst);
end
endgenerate
endmodule
Testbench code is
Code:
`include "ring_conter_genvar.v"
module tb;
parameter N=4;
reg clk,rst;
reg d_in;
wire [N-1:0] q_o;
integer delay;
ring_counter #(.N(N)) dut(d_in,q_o,clk_rst);
initial begin
clk=0;
forever clk=~clk;
end
initial begin
repeat(20) begin
delay = $urandom_range(5,30);
#delay;
d_in = $random;
end
end
initial begin
#200;
$finish;
end
endmodule
Error is
[CODE]
Loading work.tb
# Loading work.ring_counter
# Loading work.dff
# ** Warning: (vsim-3017) tb_ring_counter.v(9): [TFMPC] - Too few port connections. Expected 4, found 3.
# Time: 0 ns Iteration: 0 Instance: /tb/dut File: ring_conter_genvar.v
# ** Warning: (vsim-3722) tb_ring_counter.v(9): [TFMPC] - Missing connection for port 'rst'.
# ** Error (suppressible): (vsim-3053) ring_conter_genvar.v(23): Illegal output or inout port connection for port 'q_o'.
# Time: 0 ns Iteration: 0 Instance: /tb/dut/genblk1[0]/inst_1 File: ring_conter_genvar.v
# ** Error (suppressible): (vsim-3053) ring_conter_genvar.v(23): Illegal output or inout port connection for port 'q_o'.
# Time: 0 ns Iteration: 0 Instance: /tb/dut/genblk1[1]/inst_1 File: ring_conter_genvar.v
# ** Error (suppressible): (vsim-3053) ring_conter_genvar.v(23): Illegal output or inout port connection for port 'q_o'.
# Time: 0 ns Iteration: 0 Instance: /tb/dut/genblk1[2]/inst_1 File: ring_conter_genvar.v
# ** Error (suppressible): (vsim-3053) ring_conter_genvar.v(23): Illegal output or inout port connection for port 'q_o'.
# Time: 0 ns Iteration: 0 Instance: /tb/dut/genblk1[3]/inst_1 File: ring_conter_genvar.v
# Error loading design
[/CODE]