微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 菜鸟问个verilog问题

菜鸟问个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文件,不好意思我也关注

呵呵,关注你啊

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top