菜鸟问个verilog问题
时间:10-02
整理:3721RD
点击:
才学了两天verilog,老师留了个作业,目的是写一个(3,1,8)卷积编码器,现在设计文件已经写好,不知道test文件如何写,要求测试文件能自动判别仿真过程中输出值的正确性并print出来,心里很着急,希望大牛能给些指导。
这是设计文件,juanji.v,Ain是输入,clk是时钟,clr是异步复位,Yout是输出,三个生成多项式是g(1)=101101111,g(2)=110110011,
g(3)=111001001,x是选通输出端口,c是选通信号。
module juanji(Ain,clk,clr,Yout);
input Ain,clk,clr;
output Yout;
reg Yout;
reg clk1;
reg [7:0] d;
reg [2:0] x;
reg [1:0] c;
initial
begin
d=0;
x=0;
c=0;
end
always @(posedge clk or negedge clr)
begin
if(clr==1'b0)
begin
c<=2'b00;
d<=2'b00000000;
Yout<=1'b0;
clk1<=1'b0;
end
else if(clr==1'b1)
begin
case(c)
2'b00:
begin
c<=2'b01;
Yout<=x[1];
clk1<=1'b0;
end
2'b01:
begin
c<=2'b10;
Yout<=x[2];
clk1<=1'b0;
end
2'b10:
begin
c<=2'b00;
clk1<=1'b1;
Yout<=Ain^d[6]^d[5]^d[3]^d[2]^d[1]^d[0];
d[6:0]<=d[7:1];
d[7]<=Ain;
x[0]<=Ain^d[6]^d[5]^d[3]^d[2]^d[1]^d[0];
x[1]<=Ain^d[7]^d[5]^d[4]^d[1]^d[0];
x[2]<=Ain^d[7]^d[6]^d[3]^d[0];
end
default:
begin
c<=2'b00;
end
endcase
end
end
endmodule
呵呵,在ISE下面看灯的图标,找到仿真模板。你就可以用了。
仿真工具用的是modelsim,windows平台
看来在测试平台里面,你要用高级语言实现这个卷积处理,才能去和实际的输出做比较了,即提供一个参考模型,把送给设计的输入也给这个参考模型,最后两者的输出做比较。设计是用RTL实现的,参考模型你可以用高级语言来实现。
咱也是初级的验证师,不懂得你那高级的算法如何写testbench文件,不好意思我也关注
呵呵,关注你啊
