VHDL 脉冲检测程序设计

VHDL 脉冲检测程序设计,第1张

VHDL不允许在一个进程中检测多个信号的边沿,只能检测某一个信号的边沿。if clk'event and clk='1'then if PUSH_IN'EVENT AND PUSH_IN='0' THEN 这种描述方式VHDL不认可。

本文介绍如何写testbench来仿真VHDL程序。 通常testbench完成如下的任务:1. 实例化需要测试的设计(DUT);2. 通过对DUT模型加载测试向量来仿真设计;3. 将输出结果到终端或波形窗口中加以视觉检视;4. 另外,将实际结果和预期结果进行比较。 一、构建Testbench 本文用VHDL来写,由于testbench只用来进行仿真,它们没有那些适用于综合的RTL语言子集的语法约束限制,而是所有的行为结构都可以使用。所有testbench包含了以下的基本程序段:Entity and Architecture Declaration Signal Declaration Instantiation of Top-level Design Provide Stimulus. 在ISE工程中添加source:VHDL Test Bench到顶层文件,在source for 选项中选择Behavioral Simulation。你会发现Test Bench中有很多已经自动写好,可根据自己的设计需要改写程序。其中Entity是空的,由于是仿真,不必有管脚的输入输出,只要写好激励信号就可以了。 二、双击Simulate Behavioral Model进行Modelsim仿真 我们在modelsim仿真的过程中,如果想改写激励程序,点击environment back(图中向左的箭头),回到激励程序的编写环境。可以利用其提供的模板直接改写testbench,点source->show language template,需要将read only取消掉,否则无法改写。本人建议,在这个环境中可以看到模板,你可以根据需要将相应的语句拷到VHDL Testbench中去。 这里只是简单介绍如何用test bench来仿真VHDL程序,其中各种激励信号的编写、时序的安排要依靠设计的需要,这些只能靠平时不断的积累。 这里介绍的是从ISE中直接调用modelsim进行仿真,因此关于ISE和modelsim的关联也是大家经常遇到的问题。这个下次再总结。

实体,结构体,库,程序包,配置

1、实体:用于描述所设计系统的外部接口特性;即该设计实体对外的输入、输出端口数量和端口特性。

2、结构体:用于描述实体所代表的系统内部的结构和行为;它描述设计实体的结构、行为、元件及内部连接关系。

3、库:存放已经编译的实体、构造体、程序包集合和配置。

4、程序包:存放各设计模块可以共享的数据类型、常数、子程序库。

5、配置实体对应多个结构体时,从与某个实体对应的多个结构体中选定一个作为具体实现。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/11113361.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-13
下一篇2023-05-13

发表评论

登录后才能评论

评论列表(0条)

    保存