|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
本帖最后由 vrookie 于 2012-5-14 22:01 编辑
才学了两天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 |
|