TestBench

  • 简单TB的编写
    • 1.1 initial语句
    • 1.2 时钟,复位的写法
      • 1.2.1普通时钟信号
      • 1.2.2 占空比非50%的时钟信号
      • 1.2.3 固定数目的时钟信号
      • 1.2.4 相移始终信号
      • 1.2.5 异步复位信号
      • 1.2.6 同步复位信号

简单TB的编写

1.1 initial语句

被动检测响应使用always语句,主动产生激励时使用initial语句,且initial语句只执行一次

1.2 时钟,复位的写法

其中 # 的含义是推迟后面的语句;

1.2.1普通时钟信号

// 周期为10的信号
parameter FAST_PERIOD =10;
reg Clock;
initial
beginClock =0;forever#( FAST_PERIOD/2) Clock =~ Clock; //每5个周期取反
end

1.2.2 占空比非50%的时钟信号

parameter h_time = 5,l_time = 10;
reg clk;alwaysbegin# h_time clk = 0;# l_time clk = 1;
end

1.2.3 固定数目的时钟信号

parameter pulsecount = 4,period = 10;
reg clk;
initial
begin
clk = 0;
repeat(pulsecount)#(period/2) clk = ~clk;
end

1.2.4 相移始终信号

parameter high =5 ,low=10, shift = 2;
reg absolute_clk;
wire derived_clk; //有点没明白为什么用线网类型
always
begin#high absolute_clk=0;#low  absolute_clk=1;
end
assign #shift derived_clk = absolute_clk;

1.2.5 异步复位信号

parameter period = 10;
reg rst;
initial
begin
rst = 1# period rst=0;#(5*period)rst =1;
end

从第10ns开始复位,持续50s;

1.2.6 同步复位信号

initial
beginrst=1;@(negedge clk)rst = 0;# 30;@(negedge clk)rst = 1;
end

复位的产生和撤销都避开了时钟的有效上升沿,可以认为是同步复位,

TIPS:

  1. 在待仿真文件中,输入类型的信号,在TB文件中要设为reg型;
  2. 在待仿真文件中,输出类型的信号,在TB文件中要设为wire型;

TestBench写法相关推荐

  1. FPGA实现序列检测(训练testbench写法)

    电路设计与状态机 FPGA的基础概念 Cyclone IV器件采用了M9K的嵌入式块RAM,即每个嵌入式存储器块的容量为9216bit.4个PLL,一个PLL可以最多支持5路输出. cyclone I ...

  2. Verilog的常用testbench模板分享

      楼主在初学verilog的时候就一直对testbench该怎么写感到困惑,之后的学习过程中也陆陆续续地看过一些testbench文件,其中有一些其实相当于就在testbench里重写了一下要验证地 ...

  3. Xilinx FPGA平台GTX简易使用教程(五)GTX收发测试及示例工程介绍

    GTX IP配置完了,你不得搞个回环测试一番? 汇总篇: Xilinx FPGA平台GTX简易使用教程(汇总篇) 目录 前言 一.示例工程Example Design 1.1 gtx_support模 ...

  4. verilog基础-状态机之FPGA独立按键消抖设计与验证(熟练testbench的写法)

    独立按键消抖设计与验证 本实验主要是为了锻炼状态机的思维模式以及熟练掌握TB的写法 本节主要收获了:define的用法,另外就是,顶层的input在TB中是reg的真正含义,其实就是把激励当做寄存器来 ...

  5. HDLBits 系列(40)如何写 TestBench 文件?

    目录 序言 变量定义 时钟设计 设计输入 模块例化 实战演练 序言 由于入门的测试文件很简单,所以一直以来也都是直接给出测试文件,直到今天才想着去总结一个测试文件的写法.这篇博客将根据HDLBits的 ...

  6. 按键抖动仿真Testbench(repeat、task、random)的用法

    文章目录 一.关键字的用法 1.random的用法 2.task的用法 3.repeat的用法 二.按键随机抖动仿真(testbench训练) 之前一讲,我们是用了简单的TB的写法,产生的是固定的抖动 ...

  7. Xilinx Vivado的使用详细介绍(1):创建工程、编写代码、行为仿真、Testbench

    新建工程 打开Vivado软件,直接在欢迎界面点击Create New Project,或在开始菜单中选择File - New Project即可新建工程. 点击Next 输入工程名称和路径. 选择R ...

  8. testbench——文件读入输出

    注:仿真工具为ISE自带simulation 1.读入.txt中的文件 待读入文件为photo.txt,位于所建工程文件夹中. 代码: integer cnt,i; reg [7:0] mem[31: ...

  9. 数字集成电路设计-12-状态机的四种写法

    引言 在实际的数字电路设计中,状态机是最常用的逻辑,而且往往是全部逻辑的核心部分,所以状态机的质量,会在比较大的程度上影响整个电路的质量. 本小节我们通过一个简单的例子(三进制脉动计数器)来说明一下状 ...

最新文章

  1. golang 简单tls协议 使用实例
  2. golang协程介绍和理解
  3. c支限界算法语言n皇后问题分,算法(八)-回溯法-N皇后问题
  4. 520这天,我突然意识到,她根本配不上我这么聪明的男人!
  5. 在Python,Java和Kotlin中标记参数和重载
  6. 正则表达式的\b与\B总结
  7. php中socket的使用
  8. python文本内容怎么转换成字典_怎么把照片上的文字转换成文本?照片转换文字神器来了...
  9. SAP License:SAP HANA CLOUD MM 实施的坑
  10. mybatis开启二级缓存和懒加载,类型别名,类都简称
  11. SmartRoute之远程接口调用和负载
  12. 增大表名最大长度_全球最大室内滑雪场结构技术解密!
  13. 前端页面怎么办啊一条长的信息换行展示_前端入门!不容错过!HTML基本标签知识大盘点...
  14. python实现微信自动回复_python实现微信自动回复功能
  15. c语言程序经过编译以后生成的文件名的后缀为,c语言源文件经过编译后生成文件的后缀是什么...
  16. win10一根网线连接linux,win10系统使用一根网线连接两台电脑的操作方法
  17. 高中计算机基础知识课件,5.1.2 信息资源管理的方式方法
  18. 商务协同办公市场有「后浪」
  19. 解决Ubuntu16.04耳机没声音问题
  20. java如何调用驱动程序_使用Java驱动程序查找和上载

热门文章

  1. 嗯,倒数日,开发了一个多月的倒数日 桌面应用 上线啦,简单暴力的显示方式,专注于显眼
  2. 438. 找到字符串中所有字母异位词【我亦无他唯手熟尔】
  3. 【数学】函数极限(宇哥笔记)
  4. APIO20152014题解
  5. APIO2020 蒟蒻游记
  6. jq修改input、textarea只读,不可修改
  7. mysql 如何创建自定义函数
  8. modbus 协议基础知识
  9. 小程序 vant-piker或则vant-area不显示标题和确认取消按钮
  10. 高德纳(Knuth)谈计算机程序设计艺术(下)