zoukankan      html  css  js  c++  java
  • Testbench新接触(学习笔记)

    以前对工程进行的仿真都是用波形产生激励···(最多一次设置16位的输入·想起来好傻啊)

    听说过Testbench,对于我来说还有一层神秘的面纱,今天终于看到关于这个的视频教程,就好好地学习一下·让以后的仿真能够轻松一些。

    首先先摘抄一下视频中的三个步骤(深入浅出玩转FPGA-视频8):

    1、对被测试设计的顶层接口进行例化(是创建对象的意思?)。

    2、给被测试设计的输入接口添加激励。

    3、判断被测试设计的输出响应是否满足设计要求。

    最简单的testbench:

    时钟产生

    复位产生

    其他激励产生

    'timescale 1ns/1ps  //ns为时间的单位,ps为时间的精度。

    parameter PERIOD = 20;
    initial begin

      clk = 0;  //初始化时钟

      forever

        #(PERIOD/2) clk = ~clk;  //时钟频率

    (或者  always begin

            #(PERIOD/2) clk = 0;

            #(PERIOD/2) clk = 1;  //效果相同 )

    end



    复位:    

    rst_n = 0;

    #100;  //100ns延时

    rst_n = 1;  //撤销复位

    以任务的形式:

    task reset_task;
    input[15:0] reset_time; //复位时间
    begin
      reset = 0;
      #reset_time;
      reset = 1;
    end
    endtask

    调用

    initial 
    begin
    reset_task(100); //复位100ns,时间可更改
    。。。。
    end


    推荐书籍:

    《设计与验证Verilog HDL》

    《Writing Testbench》

  • 相关阅读:
    将TinyXml快速入门的接口面向对象化
    Java EE6 核心特征:Bean Validation 解析
    风花雪月(三)
    跑步破百
    在VC6中改变导入库名称的方法
    Java EE6 核心特征:Bean Validation 解析
    古哥,一路走好
    boost_1_42在VS环境下的完全编译
    总结一下__declspec(dllimport)的作用
    解决MySQL server has gone away
  • 原文地址:https://www.cnblogs.com/cheetah/p/2260739.html
Copyright © 2011-2022 走看看