北理VHDL硬件描述语言实验(四次全)
北理工VHDL实验报告

本科实验报告实验名称:VHDL语言及集成电路设计实验课程名称:VHDL语言及集成电路设计实验时间:2014.5任课教师:桂小琰实验地点:4-427实验教师:任仕伟实验类型:□原理验证□综合设计□自主创新学生姓名:学号/班级:组号:学院:信息与电子学院同组搭档:专业:电子科学与技术成绩:实验一:带有异步复位端的D触发器一、实验目的(1)熟悉linux操作环境和modelsim软件环境(2)理解时序逻辑和组合逻辑电路的区别(3)理解并行语句和顺序语句(4)用VHDL语言编写一个带有异步复位端的D触发器及其测试文件二、实验原理(1)组合逻辑和时序逻辑○1组合逻辑电路当前输出的值仅取决于当前的输入,不需要触发器等具有存储能力的逻辑单元,仅仅使用组合逻辑门○2时序逻辑电路的当前输出不仅取决于当前的输入,还与以前的输入有关,这类电路中包括寄存器等元件,也包括组合逻辑电路,寄存器通过一个反馈环和组合逻辑模块相连。
触发器便是属于时序逻辑电路(2)并行和顺序代码从本质上讲,VHDL代码是并发执行的。
只有PROCESS,FUNCTION或PROCEDURE内的代码才是顺序执行的。
当它们作为一个整体时,与其他模块之间又是并发执行的。
以下是3个并发描述语句(stat1,stat2和stat3)的代码,会产生同样的电路结构。
stat1 stat3 stat1stat2 = stat2 = stat3 = 其他排列顺序stat3 stat1 stat2(3)并行语句——进程(PROCESS)○1语法结构:[进程名: ]PROCESS (敏感信号列表)[变量说明语句]…BEGIN…(顺序执行的代码)…END PROCESS [进程名];○2PROCESS 的特点1多进程之间是并行执行的;2进程结构内部的所有语句都是顺序执行的;3进程中可访问结构体或实体中所定义的信号;4进程的启动是由敏感信号列表所标明的信号来触发,也可以用WAIT语句等待一个触发条件的成立。
VHDL硬件描述语言

b. 类型参数说明 必须放在端口说明前面,用于指定参数。 c. 端口说明格式 PORT( 端口名{,端口名}: 方向 端口名{,端口名}: 方向 数据类型名; 数据类型名);
其中, 方向—— IN OUT INOUT BUFFER LINKAGE 输入 输出 双向 输出 不指定方向
注意: * OUT 结构选体中不能再用; * BUFFER 结构选体中能再用。
5
二、VHDL程序的基本结构
* 一个完整的VHDL语言程序通常包含: 实体、 结构体、库、包集合和配置五个部分 a. 实体(Entity) ——用于描述所设计系统或单元的外部接口信号; b. 结构体(Architecture) —— 用于描述所设计系统或单元内部的结构和行为。
6
c. 库(Librrary) —— 用于存放已经编译的实体、结构体、包集合和配置。 库可由用户生成或由ASIC芯片制造商提供,以便于 在设计中为大家所共享; d. 包集合(Package) —— 用于存放各设计模块都能共享的数据类型、常数和子 程序等; e. 配置(Configuration) —— 用于从库中选取所需单元来组成系统设计的不同版本; 这个部分有时可以没有。
实体
结构体
a b
&
y
16
3.库
—— 库(Library)是经编译后的数据的集合,它存放包 集合定义、实体定义、结构体定义和配置定义。 a. 在VHDL语言中,库的说明总是放在设计单元的最前面, 书写格式为: LIBRARY 库名 ; 注意:
- 在设计时可以直接使用库中的数据。 - 设计者可以共享已经编译过的设计结果。 - 库和库之间是独立的,不能互相嵌套。
12
i 结构描述: 描述该设计单元的硬件结构。主要用配置指定语句及元 件例化语句描述元件的类型及元件的互连关系。 ii 行为描述: 描述该设计单元的功能,主要用函数,过程和进程语句, 以算法形式描述数据的变换和传送。 iii 数据流方式/RTL描述: 以类似于寄存器传输级(RTL)的方式描述数据的传输 和变换,主要用并行信号赋值语句,显式表示该设计单 元的行为, 隐式表示了该设计单元的结构。
Verilog HDL硬件描述语言实验报告

Verilog HDL实验报告学院:应用科学学院班级:电科13-2班姓名:学号:实验一组合逻辑电路设计(1)实验目的(1)熟悉FPGA设计流程;(2)熟悉DE2开发板的基本元件使用(开关、发光二极管);(3)学习基本组合逻辑元件的Verilog HDL设计以及实现(数据选择器);(4)掌握连续赋值语句使用;实验内容本实验的目的是学习如何连接一个简单的外部输入、输出器件到FPGA 芯片以及如何在FPGA器件上实现逻辑电路控制简单外部器件。
考虑使用DE2开发板上拨动开关SW17-0(toggle Switch)作为电路的输入。
使用发光二极管(Light Emitt-ing Diodes,LEDs)和7段显示数码管(7-segment Display)作为电路的输出。
第1部分连续赋值语句步骤1、新建Quartus II工程,选择Cyclone II EP2C35F672C6作为目标芯片,该芯片是DE2开发板上的FPGA芯片;2、编写Verilog HDL代码加入到Quaruts II工程;3、引脚分配,并编译工程该工程;4、将编译好的电路下载到FPGA器件。
扳动拨动开关观察相应的发光二极管显示,验证电路功能是否正确;代码module part1(input wire[2:0]SW,output wire LEDR);wire r_g,s_g,qa,qb;and u1(r_g, SW[0], SW[1]);and u2(s_g, SW[1], SW[2]);nor u3(qa, r_g, qb);nor u4(qb, qa, s_g);assign LEDR = qa;endmodule第2部分简单的数据选择器步骤1 .新建Quartus II工程;2.在工程中加入8位宽的2选1数据选择器Verilog HDL代码。
使用DE2开发板上的SW17作为输入s,开关SW7-0作为输入X,SW15-8作为输入Y。
北理VHDL硬件描述语言实验(四次全)

clk_gen:PROCESS BEGIN clk<='0'; WAIT FOR clk_period/2; clk<='1'; WAIT FOR clk_period/2; END PROCESS; d_gen:PROCESS BEGIN d<='0'; WAIT FOR 100 ns; d<='1'; WAIT FOR 100 ns; END PROCESS; rst_gen:PROCESS BEGIN rst<='1'; WAIT FOR 150 ns; rst<='0'; WAIT FOR 150 ns; rst<='1'; WAIT FOR 150 ns; WAIT; END PROCESS; END behave;
1. linux 基本操作 · 登陆后,桌面右键“open terminal”,输入命令“vsim”打开 Modelsim 软件; · 右键“open terminal”,输入命令“gftp”,出现窗口,进行登录连接主机向 ftp 上传文 件。 2. Modelsim 基本操作流程 建立工程 创建文件 编写程序 保存并编译 仿真 3.设计编写 D 触发器
四、仿真结果及说明
实验仿真的图形如下
从激励文件可以看出,时钟是周期为 50ns 的方波,而复位端 rst 的信号设置为前 150ns 为高电平,接下来 150ns 为低电平,之后均为高电平。 D 触发器的 VHDL 语言中明确指出
也就是说,复位信号 rst 高有效,在激励文件中,rst=’0’时,复位端无效,D 触发器正常 工作。 在仿真图形中可以看到,在复位端无效的 150ns 中,每一次时钟的上升沿到来,输出 q
VHDL硬件描述语言实验报告

硬件描述语言实验附录姓名:xxx学号:xxx指导教师:xxx目录硬件描述语言实验附录 (1)实验1.三输入与门电路实验 (2)实验2. 三—八译码器实验 (3)实验3. D触发器实验 (4)实验4. 分频器实验 (5)实验5. 状态机实验 (8)实验1.三输入与门电路实验--三输入与门电路threeinput--姓名:王定--学号:1306034248--中北大学LIBRARY IEEE; --调用库USE IEEE.STD_LOGIC_1164.ALL;--库文件--------------------------------------------------------------ENTITY threeinput IS --定义实体名,其名称必须与VHDL文本文件名称相同PORT( A: IN STD_LOGIC; --输入端口,时钟输入B: IN STD_LOGIC; --输入端口,个位写入使能C: IN STD_LOGIC; --输入端口,十位写入使能CO: OUT STD_LOGIC); --输出端口,溢出标志END ENTITY threeinput; --结束端口定义--------------------------------------------------------------ARCHITECTURE RTL OF threeinput IS--定义结构体BEGINPROCESS(A,B,C) IS --开始,必须带上BEGINCO<=A AND B AND C ;END PROCESS;END ARCHITECTURE RTL; --结束结构体表1. 三输入与门电路VHDL实验代码图1. 三输入与门电路仿真波形图,A,B,C输入,CO输出实验2. 三—八译码器实验--王定--2015年11月25日--3线-8线译码器LIBRARYIEEE; --调用库USEIEEE.STD_LOGIC_1164.ALL; --库文件-------------------------------------------------------------ENTITYthreetoeightISPORT(DA TAIN:INSTD_LOGIC_VECTOR(2DOWNTO0);--数据输入DA TAOUT:OUTSTD_LOGIC_VECTOR(7DOWNTO0));--数据输出ENDENTITYthreetoeight; --结束实体-------------------------------------------------------------ARCHITECTUREBEHA VEOFthreetoeightIS--结构体BEGIN --不能漏掉PROCESS(DATAIN) --数据输入BEGIN --开始,不能漏掉CASEDATAINIS --情况判定WHEN"000"=>DA TAOUT<="00000001";WHEN"001"=>DA TAOUT<="00000010";WHEN"010"=>DA TAOUT<="00000100";WHEN"011"=>DATAOUT<="00001000";WHEN"100"=>DA TAOUT<="00010000";WHEN"101"=>DA TAOUT<="00100000";WHEN"110"=>DATAOUT<="01000000";WHEN"111"=>DA TAOUT<="10000000";WHENOTHERS=>null;ENDCASE;ENDPROCESS;ENDBEHA VE;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY decoder_3_to_8 ISPORT (a,b,c,g1,g2a,g2b:IN STD_LOGIC;y:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END decoder_3_to_8;ARCHITECTURE rtl OF decoder_3_to_8 ISSIGNAL indata:STD_LOGIC_VECTOR (2 DOWNTO 0);BEGINindata <= c & b & a;PROCESS (indata,g1,g2a,g2b)BEGINIF (g1 = '1' AND g2a = '0' AND g2b = '0' ) THENCASE indata ISWHEN "000" => y <= "11111110";WHEN "001" => y <= "11111101";WHEN "010" => y <= "11111011";WHEN "011" => y <= "11110111";WHEN "100" => y <= "11101111";WHEN "101" => y <= "11011111";WHEN "110" => y <= "10111111";WHEN "111" => y <= "01111111";WHEN OTHERS=>y<= "XXXXXXXX";END CASE;ELSEY <= "11111111";END IF;END PROCESS;END rtl;表2. 三—八译码器VHDL实验代码图2. 三—八译码器仿真波形图--异步复位/置位的D触发器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY dff3 ISPORT(clk,d,clr,pset:IN STD_LOGIC;q : OUT STD_LOGIC);END dff3;ARCHITECTURE rtl OF dff3 ISBEGINPROCESS (clk,pset,clr)BEGINIF (pset='0') THENq<='1';ELSIF (clr='0') THENq<='0';ELSIF (clk'EVENT AND clk='1') THENq<=d;END IF;END PROCESS ;END rtl; --同步复位的D触发器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; ENTITY dff4 ISPORT(clk,d,clr:IN STD_LOGIC;q : OUT STD_LOGIC );END dff4;ARCHITECTURE rtl OF dff4 ISBEGINPROCESS (clk)BEGINIF (clk'EVENT AND clk='1') THENIF (clr='0') THENq<='0';ELSEq<=d;END IF;END IF;END PROCESS ;END rtl;表3. 异步和同步D触发器VHDL实验代码图3. 异步触发器仿真波形图图4. 同步触发器仿真波形图--四分频器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;----------------------------------------------ENTITY clk_div ISPORT(clk: IN STD_LOGIC;--时钟输入clk_div2: OUT STD_LOGIC;clk_div4: OUT STD_LOGIC;clk_div8: OUT STD_LOGIC;clk_div16: OUT STD_LOGIC);END ENTITY clk_div;---------------------------------------------------ARCHITECTURE rtl OF clk_div ISSIGNAL count:STD_LOGIC_VECTOR(3 DOWNTO 0);--定义一个四位的信号BEGINPROCESS(clk)BEGINIF(clk' event AND clk ='1') THEN--上升沿到来IF (count="1111") THEN--达到最大计数值count<="0000"; --置零ELSEcount<=count+1; --计数END IF;END IF;END PROCESS;clk_div2<=count(0); --2分频clk_div4<=count(1); --4分频clk_div8<=count(2); --8分频clk_div16<=count(3); --16分频END rtl;表4. 四分频器VHDL实验代码图5. 四分频器仿真波形图TMP1<= '0'; --置0,带入语句滞后ELSETMP1<= '1'; --置1END IF;END IF;END IF;END PROCESS;---------------------------------------------PROCESS(CLKIN,RST)BEGINIF RST ='1'THEN --复位有效COUNT2 <= "00000000"; --立即清零TMP2<= '1';ELSIF CLKIN'EVENT AND CLKIN='0' THEN --下降沿到来IF COUNT2 = "00000100" THEN --100==4(5个数据)COUNT2 <= "00000000";ELSECOUNT2 <= COUNT2 + 1;IF COUNT2 < "00000010" THEN --10==2(三个下降沿),小于三个上升沿时,始终置0,三个下降沿对应6分频TMP2<= '1';ELSETMP2<= '0';END IF;END IF;END IF;END PROCESS;END RTL;--信号是等待整个进程结束完后,再赋值图6. 五分频器仿真波形图实验5. 状态机实验ST <= S3; END IF; OP <= '1'; WHEN S3=> IF X = '0' THEN ST <= S3; ELSE ST <= S0; END IF; OP <= '0'; END CASE; END IF; END PROCESS STATE_COMP;END ARCHITECTURE A;END IF; END CASE; END IF;END PROCESS state_comp; END a;表6. moore 与mealy 状态机VHDL 实验代码图7. moore 型状态机VHDL 实验代码图8. mealy 型状态机仿真波形图。
VHDL硬件描述语言实验指导书(部分)

目录第一部分 QuartusⅡ CPLD开发系统简介 (1)第二部分 基础验证实验 (16)实验1 译码器及译码显示电路设计 (16)实验2 编码器及数据选择器设计 (20)实验3 加法器设计 (23)实验4 乘法器设计 (26)实验5 触发器设计 (34)实验6 寄存器设计 (39)实验7 移位寄存器设计 (41)实验8 计数器设计 (44)实验9 可预置数的计数器设计.....错误!未定义书签。
第三部分 设计型实验...............错误!未定义书签。
实验1 频率计设计...............错误!未定义书签。
实验2 多功能数字钟设计.........错误!未定义书签。
实验3 彩灯控制器设计...........错误!未定义书签。
实验4 交通灯控制器设计.........错误!未定义书签。
第一部分 QuartusⅡ CPLD开发系统简介1.1 概述ALTERA公司的CPLD开发系统目前主要MAX+PLUSⅡ和QuartusⅡ两种,其中MAX+PLUSⅡ在前面几章内容已经做了详细介绍。
QuartusⅡ的用途与MAX+PLUSⅡ是一致的也是解决CPLD/FPGA开发过程中的编辑、编译、综合及仿真等内容。
目前最高版本为QuartusⅡ2.1,是目前CPLD/FPGA开发工具中较为理想的综合、仿真软件。
具有许多优良的特性。
1、承了MAX+PLUSⅡ的优点:图形输入依然形象,图形符号与MAX+PLUSⅡ符号一样符合数字电路的特点,大量74系列器件符号使初学者在较短的时间内利用图形编辑设计出需要的电路。
文本输入几乎与MAX+PLUSⅡ相同,而且在文本的每一行都有行号,使用语言编写的电路清晰易读。
底层编辑仍然采用Chipview方式,管脚排列位置映射了实际器件管脚,简单的鼠标拖放即可完成底层编辑。
2、持的器件更多:除了支持MAX3000、MAX7000、FLEX6000、FLEX10KE、ACEX1K等MAX+PLUSⅡ已支持的器件外,还支持PEX20K、APEX20KE,APEXⅡ、EXCALIBUR-ARM、Mercury、Stratix等MAX+PLUSⅡ下无法支持的大容量高性能的器件。
《VHDL硬件描述语言》课程教学大纲

《VHDL硬件描述语言》课程教学大纲课程代码:ABJD0414课程中文名称: VHDL硬件描述语言课程英文名称:Very-High-Speed Integrated Circuit HardwareDescription Language课程性质:必修课程学分数:2学分课程学时数:32学时授课对象:自动化专业本课程的前导课程:电路,模拟电子,C语言程序设计一、课程简介本课程是电类专业的专业基础课,要求学生通过本课程的学习和实验,初步掌握常用EDA工具的使用方法、FPGA的开发技术以及VHDL语言的编程方法。
能比较熟练地使用QuartusII等常用EDA软件对FPGA和CPLD作一些简单电路系统的设计,同时能较好地使用VHDL语言设计简单的逻辑电路和逻辑系统,学会行为仿真、时序仿真和硬件测试技术,为现代EDA工程技术的进一步学习,ASIC器件设计以及超大规模集成电路设计奠定基础。
作为一门专业基础课,除了为现代电子线路课程,软件无线电课程奠定理论和实践方面的基础外,还是其他一些课程的先修课,如微电子导论、现代ASIC设计、硬件描述语言仿真/综合器设计、大规模集成电路设计等。
二、教学基本内容和要求(一)概论介绍现代EDA技术,VHDL概况,介绍自顶向下的系统设计方法以及FPGA和CPLD的基本技术,要求对现代EDA技术及实现工具的使用方法和发展情况有一初步了解。
重点与难点:EDA技术的设计工具(二)EDA设计流程及工具首先介绍基于EDA软件的FPGA/CPLD开发流程和ASIC设计流程,然后分别介绍与这些设计流程中各环节密切相关的EDA工具软件,最后简述QuartusII的基本情况和IP。
重点与难点:EDA仿真设计流程。
(三)FPGA/CPLD结构与应用主要介绍几类常用的大规模可编程逻辑器件的结构和工作原理。
对CPLD的乘积项原理和FPGA的查找表原理分别进行剖析。
最后介绍相关的编程下载和测试技术。
重点与难点:FPGA/CPLD的工作作原理及编程技术。
数字电路设计实验vhdl语言实验报告

实验一秒表计数器的设计实验目的:本实验通过设计四种频率可选的数字时钟系统, 以达到熟悉VHDL 语言编程语法、设计思路和熟练掌握Quartus II 开发软件的目的。
二、实验内容:该数字时钟的显示格式如下所示: HH: MM: SS, 其中HH表示时计数的两位, MM表示分计数的两位, SS表示秒计数的两位。
本系统输入信号分别为复位信号rst(高有效)、sel(两位信号, 分别可以选择2分频、4分频8分频和16分频)、clk_in(时钟信号)、8位时输出、8位分输出、8位秒输出(其中高4为表示对应的高半字节、低4位表示的低半字节, 譬如当时间为08:59:30时, 时输出为”0000_1000”,分输出为”0101_1001”,秒输出为”0011_0000”)。
该时钟系统可以通过Sel信号时钟运行的快慢。
三、实验流程:通过对实验内容的分析: 可以考虑时钟系统的可由三部分组成: 1.分频器:分频器为时序电路并且通过《数字电路》理论课程的学习可知由计数器来实现, 同学可以回想一下实验1中是如何实现计数器电路的设计), 该模块主要产生2.4.8、16分频的时钟信号;2.多路选择器:在VHDL中多路选择器为组合逻辑, 可以有多种实现方法, 在这里主要选用了case语句来实现。
该模块的作用是从分频器中根据Sel信号选择适当的时钟信号;3.时钟控制器:该模块比较复杂, 主要实现功能是实现一个24小时的计时。
当时间为00:00:59的时候下一个时钟到来时状态的跳变为00:01:00, 计时中多数计数为加1操作, 有几个特殊状态需要重点考虑:当时间产生分进数时, 譬如上例。
当时间产生时进数时, 譬如00:01:59时刻的下一个状态为00:02:00;当时间产生时进数时, 譬如00:59:59是个的下一个状态为01:00:00。
当时间产生天进数时, 譬如23:59:59的下一个状态为00:00:00。
四、仿真要求:1、本次试验的结果全部采用功能仿真分析:在结果图中能够看到让复位信号rst为有效的情况下, 所有的输出为00:00:00;2.当频率选择输出分别为”00”、”01”、”10”、”11”时秒为的进数分别包含2.4.8、16倍clk_in的时钟周期;3.可以看到完整的计时周期00:00:00->23:59:59->00:00:00。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
四、仿真结果及说明
实验仿真的图形如下
从激励文件可以看出,时钟是周期为 50ns 的方波,而复位端 rst 的信号设置为前 150ns 为高电平,接下来 150ns 为低电平,之后均为高电平。 D 触发器的 VHDL 语言中明确指出
也就是说,复位信号 rst 高有效,在激励文件中,rst=’0’时,复位端无效,D 触发器正常 工作。 在仿真图形中可以看到,在复位端无效的 150ns 中,每一次时钟的上升沿到来,输出 q
本科实验报告
实验名称: VHDL 硬件描述语言实验
课程名称: 任课教师: 实验教师: 学生姓名: 学号/班级: 学 专 院: 业:
VHDL 硬件描述语言
实验时间: 实验地点:
□ 原理验证 实验类型: ■ 综合设计 □ 自主创新
组
号:
同组搭档: 成 绩:
目
录
D 触发器的设计与实现........................................................................................................................... 1 一、实验目的 .................................................................................................................................. 1 二、实验内容 .................................................................................................................................. 1 三、D 触发器的设计....................................................................................................................... 1 四、仿真结果及说明....................................................................................................................... 3 五、实验心得与体会....................................................................................................................... 4 步进电机控制器 ...................................................................................................................................... 5 一、实验目的 .................................................................................................................................. 5 二、状态机练习:BCD 计数器 ..................................................................................................... 5 三、步进电机控制器....................................................................................................................... 8 四、实验心得与体会..................................................................................................................... 11 16 位超前进位加法器............................................................................................................................ 12 一、实验目的 ................................................................................................................................ 12 二、设计 4 位超前进位加法器..................................................................................................... 12 三、16 位加法器的设计................................................................................................................ 14 四、仿真结果及说明..................................................................................................................... 16 五、实验心得与体会..................................................................................................................... 16 选择运算器 ............................................................................................................................................ 17 一、实验目的 ................................................................................................................................ 17 二、实验内容 ................................................................................................................................ 17 三、实验代码 ................................................................................................................................ 19 四、仿真结果及说明..................................................................................................................... 27 五、实验心得与体会..................................................................................................................... 28
1. linux 基本操作 · 登陆后,桌面右键“open terminal”,输入命令“vsim”打开 Modelsim 软件; · 右键“open terminal”,输入命令“gftp”,出现窗口,进行登录连接主机向 ftp 上传文 件。 2. Modelsim 基本操作流程 建立工程 创建文件 编写程序 保存并编译 仿真 3.设计编写 D 触发器
三、D 触发器的设计
1.设计说明 带有异步复位端的 D 触发器如图所示
真值表如下 d 0 1 clk ↑ ↑ ↓ rst 1 0 0 0 q 0 0 1 Qn-1
1
该触发器有 3 个输入端口,分别为 d、clk、rst,输出为 q(可能还有 q’) ,功能描述如 下: 复位信号无效时,遇到一个上升沿,输出 q 等于输入信号 d; 复位信号有效时,输出 q 置‘0’。 也就是说,复位信号 rst 应当优于时钟信号 clk 与输入信号 d 进行考虑,在编写代码时 需要首先判断复位信号的值。 2. 实验代码 1)D 触发器的 VHDL 描述 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY dff IS PORT (clk,d,rst:IN STD_LOGIC; q:OUT STD_LOGIC); END ENTITY dff; ARCHITECTURE behave OF dff IS BEGIN PROCESS (rst,clk) BEGIN IF (rst='1') THEN q<='0'; ELSIF (clk'EVENT AND clk='1') THEN q<=d; END IF; END PROCESS; END ARCHITECTURE behave; 2)D 触发器程序的 testbench 激励文件 LIBRARY IEEE; use IEEE.STD_LOGIC_1164.ALL; ENTITY dff_tb IS END ENTITY dff_tb; ARCHITECTURE behave OF dff_tb IS COMPONENT dff IS PORT(d,clk,rst:IN STD_LOGIC; q:OUT STD_LOGIC); END COMPONENT dff; CONSTANT clk_period:TIME:=50 ns; SIGNAL d,clk,rst,q:STD_LOGIC; BEGIN dut:dff PORT MAP(d,clk,rst,q);