第6章 VHDL程序设计

合集下载

VHDL课件

VHDL课件

2) 半加器的逻辑描述 LIBRARY IEEE; -- IEEE库的使用说明 USE IEEE.STD_LOGIC_1164.ALL; ENTITY h_adder IS --实体h_adder的说明 PORT(a,b:IN STD_LOGIC; co,so:OUT STD_LOGIC); END ENTITY h_adder; ARCHITECTURE art2 OF h_adder IS -- 实体h_adder的结构体art2的说明 BEGIN so<=(a OR b) AND (a NAND b); co<=NOT (a NAND b); END ARCHITECTURE art2;
(5) 在结构体art3中,COMPONENT→END COMPONENT 语句结构对所要调用的或门和半加器两元件 作了声明(COMPONENT DECLARATION),并由SIGNAL 语句定义了三个信号d、e和f,作为中间信号转存点,以利于 几个器件间的信号连接。 “PORT MAP( )”语句称为元件例化语句(COMPONENT INSTANTIATION)。所谓例化,在电路板上,相当于往上 装配元器件;在逻辑原理图上,相当于从元件库中取了一个 元件符号放在电路原理图上,并对此符号的各引脚进行连线。 例化也可理解为元件映射或元件连接,MAP是映射的意思。 例如,语句“U2:h_adder PORT MAP(a=>e,b=>cin, co=>f,so=>sum)”表示将实体h_adder描述的元件U2的 引脚信号a、b、co和so分别连向外部信号e、cin、f和sum。 符号“=>”表示信号连接。
3.1.3 VHDL程序设计约定 为了便于程序的阅读和调试,对VHDL程序设计特作如下约 定: (1) 语句结构描述中方括号“[ ]”内的内容为可选内容。 (2) 对于VHDL的编译器和综合器来说,程序文字的大小 写是不加区分的。 (3) 程序中的注释使用双横线“--”。在VHDL程序的任何 一行中,双横线“--”后的文字都不参加编译和综合。 (4) 为了便于程序的阅读与调试,书写和输入程序时,使 用层次缩进格式,同一层次的对齐,低层次的较高层次的缩 进两个字符。 (5) 考虑到MAX+plusII要求源程序文件的名字与实体名 必须一致,因此为了使同一个VHDL源程序文件能适应各个 EDA开发软件上的使用要求,建议各个源程序文件的命名均 与其实体名一致。

项目六 数码管显示译码器的VHDL设计

项目六  数码管显示译码器的VHDL设计
点击鼠标右键,菜单中 选择Insert Template
四、项目实施——1. QuartusⅡ VHDL设计输入法
(3) 项目编译
分析综合
点击Quartus Ⅱ软件工具条上的快捷按钮 进行分析综合。
,对抢答器工程
根据提示信息,处理错误,直至无误为止。
四、项目实施——1. QuartusⅡ VHDL设计输入法
四、项目实施
硬件平台准备
微机一台(Windows XP系统、安装好 Quartus Ⅱ5.0等相关软件)
EDA学习开发板一块 USB电源线一条 ISP下载线一条。
四、项目实施——1. QuartusⅡ VHDL设计输入法
(1) 创建工程
在D:\altera\Quartus50\example\seg7下建立项目seg7 选择EPM240T100C5作为目标器件
三、项目分析
VHDL源程序
--****************************************************** --seg7.vhd library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; --********************************************** entity seg7 is
输入端 ABCD 0000 0001 0010 0011 0100 0101 0110 0111
输出端 abcdefgh 11111100 01100000 11110010 11110010 01100110 10110110 10111110 11100000

2023年大学_EDA技术与VHDL第二版(潘松著)课后习题答案下载

2023年大学_EDA技术与VHDL第二版(潘松著)课后习题答案下载

2023年EDA技术与VHDL第二版(潘松著)课后习题答案下载EDA技术与VHDL第二版(潘松著)课后答案下载第1章 EDA技术概述1.1 EDA技术及其发展1.1.1 EDA技术的发展1.1.2 EDA技术的涵义1.1.3 EDA技术的基本特征1.2 EDA技术的主要内容及主要的EDA厂商1.2.1 EDA技术的主要内容1.2.2 主要EDA厂商概述1.3 EDA技术实现目标1.3.1 超大规模可编程逻辑器件1.3.2 半定制或全定制ASIC1.3.3 混合ASIC1.4 EDA技术应用1.4.1 EDA技术应用形式1.4.2 EDA技术应用场合1.5 EDA技术的发展趋势1.5.1 可编程器件的发展趋势1.5.2 软件开发工具的发展趋势1.5.3 输入方式的发展趋势__小结思考题和习题第2章大规模可编程逻辑器件2.1 可编程逻辑器件概述2.1.1 PLD的'发展进程2.1.2 PLD的种类及分类方法2.2 简单可编程逻辑器件2.2.1 PLD电路的表示方法及有关符号 2.2.2 PROM基本结构2.2.3 PLA基本结构2.2.4 PAL基本结构2.2.5 GAL基本结构2.3 复杂可编程逻辑器件2.3.1 CPLD基本结构2.3.2 Altera公司器件2.4 现场可编程逻辑器件2.4.1 FPGA整体结构2.4.2 Xilinx公司FPGA器件2.5 在系统可编程逻辑器件2.5.1 ispLSl/pLSl的结构2.5.2 Lattice公司ispLSI系列器件 2.6 FPGA和CPLD的开发应用2.6.1 CPLD和FPGA的编程与配置2.6.2 FPGA和CPLD的性能比较2.6.3 FPGA和CPLD的应用选择__小结思考题和习题第3章 EDA设计流程与开发3.1 EDA设计流程3.1.1 设计输入3.1.2 综合3.1.3 适配3.1.4 时序仿真与功能仿真3.1.5 编程下载3.1.6 硬件测试3.2 ASIC及其设计流程3.2.1 ASIC设计方法3.2.2 一般的ASIC设计流程3.3 可编程逻辑器件的开发环境 3.4 硬件描述语言3.5 IP核__小结思考题和习题第4章硬件描述语言VHDL4.1 VHDL概述4.1.1 VHDL的发展历程4.1.2 VHDL的特点4.2 VHDL程序基本结构4.2.1 实体4.2.2 结构体4.2.3 库4.2.4 程序包4.2.5 配置4.3 VHDL基本要素4.3.1 文字规则4.3.2 数据对象4.3.3 数据类型4.3.4 运算操作符4.3.5 VHDL结构体描述方式 4.4 VHDL顺序语句4.4.1 赋值语句4.4.2 IF语句4.4.3 等待和断言语句4.4.4 cASE语句4.4.5 LOOP语句4.4.6 RETIARN语句4.4.7 过程调用语句4.4.8 REPORT语句4.5 VHDL并行语句4.5.1 进程语句4.5.2 块语句4.5.3 并行信号代人语句4.5.4 并行过程调用语句4.5.5 并行断言语句4.5.6 参数传递语句4.5.7 元件例化语句__小结思考题和习题第5章 QuartusⅡ软件及其应用5.1 基本设计流程5.1.1 建立工作库文件夹和编辑设计文件 5.1.2 创建工程5.1.3 编译前设计5.1.4 全程编译5.1.5 时序仿真5.1.6 应用RTL电路图观察器5.2 引脚设置和下载5.2.1 引脚锁定5.2.2 配置文件下载5.2.3 AS模式编程配置器件5.2.4 JTAG间接模式编程配置器件5.2.5 USBBlaster编程配置器件使用方法 __小结思考题和习题第6章 VHDL应用实例6.1 组合逻辑电路设计6.1.1 基本门电路设计6.1.2 译码器设计6.1.3 数据选择器设计6.1.4 三态门设计6.1.5 编码器设计6.1.6 数值比较器设计6.2 时序逻辑电路设计6.2.1 时钟信号和复位信号6.2.2 触发器设计6.2.3 寄存器和移位寄存器设计6.2.4 计数器设计6.2.5 存储器设计6.3 综合实例——数字秒表的设计__小结思考题和习题第7章状态机设计7.1 一般有限状态机7.1.1 数据类型定义语句7.1.2 为什么要使用状态机 7.1.3 一般有限状态机的设计 7.2 Moore型有限状态机设计 7.2.1 多进程有限状态机7.2.2 单进程有限状态机7.3 Mealy型有限状态机7.4 状态编码7.4.1 状态位直接输出型编码 7.4.2 顺序编码7.4.3 一位热码编码7.5 状态机处理__小结思考题和习题第8章 EDlA实验开发系统8.1 GW48型实验开发系统原理与应用8.1.1 系统性能及使用注意事项8.1.2 GW48系统主板结构与使用方法8.2 实验电路结构图8.2.1 实验电路信号资源符号图说明8.2.2 各实验电路结构图特点与适用范围简述8.3 GW48CK/GK/EK/PK2系统信号名与芯片引脚对照表 __小结思考题和习题第9章 EnA技术实验实验一:全加器的设计实验二:4位加减法器的设计实验三:基本D触发器的设计实验四:同步清零计数器的设计实验五:基本移位寄存器的设计串人/串出移位寄存器实验六:同步预置数串行输出移位寄存器的设计实验七:半整数分频器的设计实验八:音乐发生器的设计实验九:交通灯控制器的设计实验十:数字时钟的设计EDA技术与VHDL第二版(潘松著):内容简介《EDA技术与VHDL》主要内容有Altera公司可编程器件及器件的选用、QuartusⅡ开发工具的使用;VHDL硬件描述语言及丰富的数字电路和电子数字系统EDA设计实例。

等精度频率计设计VHDL程序

等精度频率计设计VHDL程序

等精度频率计设计VHDL程序下面是一个基于VHDL的精度频率计设计程序:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.NUMERIC_STD.ALL;entity Frequency_Counter isgenericTOLERANCE : integer := 1; --容差范围REF_FREQ : natural := 100; --参考频率BIT_WIDTH : integer := 16 --输出频率计数器宽度portclk : in std_logic;reset : in std_logic;frequency : out std_logic_vector(BIT_WIDTH - 1 downto 0) --计数器输出值end entity Frequency_Counter;architecture Behavioral of Frequency_Counter issignal count : unsigned(BIT_WIDTH - 1 downto 0); --计数器signal count_enable : std_logic; --计数使能信号signal ref_counter : unsigned(ceil(log2(real(REF_FREQ * CLK_FREQ) / TOLERANCE)) - 1 downto 0); --参考计数器beginprocess(clk, reset)beginif reset = '1' thencount <= (others => '0'); --复位为0count_enable <= '0';ref_counter <= (others => '0');elsif rising_edge(clk) thencount <= count + 1; --计数信号递增end if;if ref_counter = REF_FREQ - 1 thenelseref_counter <= ref_counter + 1; --参考计数器递增end if;end if;end process;process(clk, reset)beginif reset = '1' thencount_enable <= '0';elsif rising_edge(clk) thencount_enable <= '1'; --参考频率达到后启用计数信号elsecount_enable <= '0';end if;end if;end process;frequency <= std_logic_vector(count);end architecture Behavioral;在此设计中,我们定义了一个Frequency_Counter实体,它有几个泛型参数,包括CLK_FREQ(输入时钟频率),TOLERANCE(容差范围),REF_FREQ(参考频率)和BIT_WIDTH(输出频率计数器的宽度)。

VHDL第六讲_VHDL元件例化语句最新版

VHDL第六讲_VHDL元件例化语句最新版
FOR- GENERATE 模式的生成语句
FOR- GENERATE 模优选式文档生成语句的书写格16
其中循环变量的值在每次的循环中都将发生变化;离散范围用来指定 循环变量的取值范围,循环变量的取值将从取值范围最左边的值开场并且 递增到取值范围最右边的值,实际上也就限制了循环的次数;循环变量每 取一个值就要执行一次GENERATE语句体中的并行处理语句;最后FORGENERATE模式生成语句以保存字END GENERATE [标号:];来完毕 GENERATE语句的循环.
u1:nand_2 port map(a,b,y1);--元件例化 u2:nand_2 port map(c,d,y2); u3:nand_2 port map(y1,y2,y); end one;
优选文档
7
例1:利用2输入与非门元件,设计4输入的与 非与非电路.
方法2:将元件声明放在程序包里进展说明
优选文档
19
思考题
设计一位二进制全加器,然后利用forgenerate生成语句实现4位二进制全加器, 并仿真验证设计结果.
优选文档
优选文档
14
1位D触发器的VHDL程序文件: library ieee; use ieee.std_logic_1164.all; entity shift_reg1 is
port(clk:in std_logic; D:in std_logic; Q:out std_logic);
end entity; architecture one of shift_reg1 is begin
end mynand_4; architecture one of mynand_4 is signal y1,y2:std_logic; begin

第6章(486)

第6章(486)

第6章 VHDL程序设计实验 图6.3 工程属性参数
第6章 VHDL程序设计实验
2.逻辑门的RTL描述 编写MY_AND2实体的VHDL代码。 (1) 选择菜单栏中的 Project→New Source。 (2) 在 Select Source Type 窗口中,选择左侧VHDL Module,在右侧 File Name栏中填入文件名MY_AND2,单 击Next按钮后弹出Define Module窗口,如图6.4所示。
entity MY_AND2 is port ( A: in STD_LOGIC; B: in STD_LOGIC; C: out STD_LOGIC);
end MY_AND2;
architecture BEHAVIORAL of MY_AND2 is begin
C <= A and B; end BEHAVIORAL;
(2) 将AND_OR.VHD的输入定义为一个总线,即STD_ LOGIC_VECTOR类型。
(3) 在AND_OR模块中,必须声明和例化被调用的下层 模块MY_AND2和MY_OR2。
(4) 在AND_OR模块中,必须显式地定义用于下层模块 互联的连线信号。
(5) MY_OR2和AND_OR模块的代码可以参照本实验后 面给出的代码实例。
本实验中会用到3个文件,文件对应的代码分别下:
MY_AND2.VH D
library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.STD_LOGIC_ARITH. all; use IEEE.STD_LOGIC_UNSIGNED. all;
第6章 VHDL程序设计实验
end MY_AND2;
第6章 VHDL程序设计实验

VHDL

VHDL

1.3 VHDL的作用
HDL打破软、硬件的界限 传统的数字系统设计分为:
硬件设计(硬件设计人员)
软件设计(软件设计人员) 是硬件设计者和 EDA工具之间的界面
EDA工具及 HDL的流行,使电子系 统向集成化、大规模和高速度等方向发 展。 美国硅谷约有80%的 ASIC和 FPGA/CPLD已采用 HDL进行设计。
一般情况下 USE定义区的格式写成
LIBRARY IEEE; USE IEE.STD_LOGIC_1164.ALL; USE IEE.STD_LOGIC_ARITH.ALL; USE IEE.STD_LOGIC_UNSIGNED.ALL;
2.2 实体声明
实体声明:定义系统的输入输出端口
语法:
ENTITY <entity_name> IS Generic Declarations(类属表); Port Declarations(端口表); END <entity_name>; (1076-1987 version) END ENTITY <entity_name> ; ( 1076-1993 version)
子类型声明;常量声明。
END <包名> ; (1076-1987) END PACKAGE BODY <包名> ; (1076-1993)
例:程序包声明
2、 库
含义:存放预先完成的程序包和数据集合体 的仓库,包含了包或包的汇集 格式:LIBRARY 库名; 种类: STD 库(默认库) IEEE库 WORK库(默认库) 面向ASIC的库 用户定义库
硬件描述语言VHDL
1 概述
1.1 什么是VHDL(HDL)?

vhdl 程序的基本结构 vhdl程序一般由5个部分组成

vhdl 程序的基本结构 vhdl程序一般由5个部分组成

块语句
块标号:BLOCK[保护表达式] [类属子句;] [端口子句;] [块说明部分;] BEGIN <块语句部分;> END BLOCK 块标号;
类属子句用于参数的定义;端口子句用于信号的定义; 块说明部分对该块要用到的信号、常数、元件和子程序 等进行说明;块语句部分对该块的功能进行描述,块语 句部分的语句是并行执行的,和书写顺序无关。
IEEE: IEEE认可的标准库 std_logic_1164:定义了 std_logic, std_logic_vector, std_ulogic, std_ulogic_vector 等数据类型
VHDL 程序的基本结构
VHDL程序一般由5个部分组成: Library(库) Package(程序包)
CONFIGURATION small_count OF counter IS FOR count_255 END FOR; END small_count; CONFIGURATION big_count OF counter IS FOR count_64K END FOR; END big_count;

Library(程序库) Package(程序包)
Entity(实体) Architecture(构造体) Configuration(配置)

库和程序包
库 :存放已编译过的实体、构造体、 程序包和配置 程序包:由一组对外可见的信号、常量、 数据类型、子程序、属性等组成 的程序集合
库和程序包的使用
子程序调用语句 过程名(参数表);
子程序调用语句若位于 “构造体” 或 “块语句” 中,它就是并发语句; 若位于 “进程语句” 或 另一个“子 程序”中,它就是顺序语句;
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第六章:VHDL程序设计§6.1 VHDL描述风格·描述风格:VHDL的构造体用于描述整个设计实体的逻辑功能。

对于相同的电路功能行为,可以用不同的描述方式来表达;对于相同的逻辑行为,可以用不同的语句来描述。

·类型:行为描述;寄存器传递(数据流)描述;结构描述。

1.行为描述方式·含义:是对系统数学模型的描述。

·特点:①只表示输入与输出间转换的行为,而不包含任何结构信息;②主要使用函数、过程和进程语句,以算法形式描述数据的变换和传送;③比寄存器传递和结构描述具有更高的抽象性;④行为描述是VHDL编程的核心,可以说,没有行为描述就没有VHDL。

⑤通常不能直接进行逻辑综合,需要转化成RTL描述或结构描述。

·用途:主要用于系统数学模型的仿真或系统工作原理的仿真。

[例6-1]用行为描述方式描述“二选一”电路功能。

LIBRARY IEEE;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY mux2 IS i1PROT( i0, i1, sel : IN STD_LOGIC;q: OUT STD_LOGIC ); selEND mux2;ARCHITECTURE behav OF mux2 ISBEGINCASE sel ISWHEN 0 =>q<=i0 AFTER 10ns;WHEN 1 =>q<=i1 AFTER 10ns;WHEN OTHERS=>q<=‘X‘ AFTER 10ns;END CASEEND behav;2.寄存器传递描述(RTL)方式·含义:是一种明确规定寄存器描述的方法。

·分类:①采用寄存器之间的功能描述(类似行为描述);②采用寄存器硬件直接描述(一一对应)。

·特点:①RTL功能描述编程效率高、难度低,但可用的VHDL语句受限;②RTL硬件描述编程难度大、要求高,但可用的VHDL语句多。

[例6-2] 用RTL硬件方式描述“二选一”电路功能。

LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY mux2 ISPROT( i0, i1, sel : IN STD_LOGIC;q: OUT STD_LOGIC );END mux2;ARCHITECTURE rtl OF mux2 ISSIGNAL temp1, temp2, temp3, : STD_LOGIC;BEGINTemp1<=i0 AND sel;Temp2<=i1 AND (NOT sel);Temp3<=temp1 OR temp2;q<=temp3;END rtl;3.结构描述方式·含义:在分层设计中,通过高层次的设计模块调用低层次的设计模块来构成一个复杂的逻辑电路的描述方法。

·特点:①结构清晰,与硬件层层对应,如:系统→板→元件;②设计效率高,可方便地将已有设计成果用到新的设计中。

[例6-3]用结构描述方式描述“二选一”电路功能。

U3d0d1LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY mux2 ISPROT(d0, d1, sel : IN BIT;q: OUT BIT );END mux2;ARCHITECTURE struct OF mux2 ISCOMPONENT and2PROT(a, b : IN BIT;c: OUT BIT );END COMPONET;COMPONENT or2PROT(a, b : IN BIT;c: OUT BIT );END COMPONET;COMPONENT invPROT(a : IN BIT;c: OUT BIT );END COMPONET;SIGNAL aa, bb, nsel: BIT;BEGINU1: inv PORT MAP(sel, nsel);U2: and2 PORT MAP(d1, nsel, bb);U3: and2 PORT MAP(d0, sel, aa);U4: or2 PORT MAP(aa, bb, q);END struct;说明:①COMPONENT语句用来说明在该电路中所使用的已生成的模块and2,…;②PORT MAP( ) 语句将已生成模块的端口与所设计的各模块U1,U2…的端口连接起来。

§6.2 组合逻辑电路设计1.基本门电路[例6-4] 用VHDL程序描述二输入“异或”门电路。

LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY xor2 ISPORT (a, b: IN STD_LOGIC;y: OUT STD_LOGIC);END xor2;ARCHITECTURE xor2_1 OF xor2 ISBEGINy<=a XOR b;END xor2_1;[例6-5] 用VHDL 程序描述二输入“异或”门电路。

LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY xor2 ISPORT (a, b: IN STD_LOGIC;y: OUT STD_LOGIC);END xor2;ARCHITECTURE xor2_2 OF xor2 ISBEGINPROCESS(a, b)V ARIABLE comb:STD_LOGIC VECTOR( 1 DOWNTO 0 );BEGINComb:= a & b;CASE comb isWHEN ―00‖=> y <=‘0‘;WHEN ―01‖=> y <=‘1‘;WHEN ―10‖=> y <=‘1‘;WHEN ―11‖=> y <=‘0‘;WHEN OTHERS=> y <=‘X‘;END CASE;END PROCESS;END xor2_2;2.加法器(1) 半加器真值表 电路符号二进制输入 和进位b a s co0 0 0 00 1 1 0 1 0 1 01 1 0 1逻辑表达式: S = (a + b)·/(a·b)C0 = /(a·b)[例6-6] 用VHDL 程序描述半加器电路功能。

LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY half_adder ISPORT (a, b: IN STD_LOGIC;s, co: OUT STD_LOGIC);END half_adder;ARCHITECTURE half1 OF half_adder ISSIGNAL c, d: STD_LOGIC;BEGINc<=a OR b;d<=a NAND b;s<=c AND d;co<=NOT d;END half1;(2)全加器[例6-7] 用VHDL程序描述全加器电路功能。

ab分析:·用两个半加器构成一个全加器;·原理电路图示意;:·采用元件例化语句COMPONET---PORT MAP( )。

LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY full_adder ISPORT (a, b, ci: IN STD_LOGIC;s, co: OUT STD_LOGIC);END full_adder;ARCHITECTURE full1 OF full_adder ISCOMPONENT half_adderPORT (a, b: IN STD_LOGIC;s, co: OUT STD_LOGIC);END COMPONENT;SIGNAL u0_s, u0_co, u1_s, u1_co: STD_LOGIC;BEGINU0:half_adder PORT MAP(a, b, u0_s,u0_co);U1:half_adder PORT MAP(ci, u0_s, u1_s, u1_co);s<=u1_s;co<=u0_co OR u1_co;END fall1;3.其它编码器(优先级)/译码器(3-8)/选择器(四选一)/缓冲器(单/双)等(自学)§6.3 时序电路设计1.时钟信号(1) 含义:周期性系列脉冲(2) 作用:是描述时序电路的VHDL程序执行的条件。

(3) 描述方式:以进程的形式描述时序电路。

①时钟信号是进程的敏感信号如:PROCESS (clk_signal)BEGINIF (clock_edge_condition) THENSignal_out <= signal_in…END IF;END PROCESS;②时钟信号是进程中的激活信号如:PROCESSBEGINWAIT ON (clock_signal) UNTIL (clock_edge_condition)Signal_out<=signal_in…END PROCESS;(4) 边沿触发①上升沿·图形描述:·语句描述:IF clk=‘1‘AND clk‘LAST_V ALUE=‘0‘AND clk‘EVENT;②下升沿·图形描述:·语句描述:IF clk=‘0‘AND clk‘LAST_V ALUE=‘1‘AND clk‘EVENT;2.复位信号(1) 类型:·同步复位:当复位信号有效且给定时钟边沿到来时,触发器才被复位。

·非同步复位(异步复位):一旦复位信号有效,触发器就被复位。

(2) 描述方式:①同步复位:一定在以时钟为敏感信号的进程中定义,且用IF语句来描述必要的复位条件。

如:PROCESS (clock_signal)BEGINIF (clock_edge_condition) THENIF (reset_condition) THENSignal_out<= reset_value;ELSESignal_out<= signal_in;…END IF;END IF;END PROCESS;②异步复位:在进程的敏感信号中,时钟和复位信号同时存在,用IF语句描述复位条件,用ELSE语句描述时钟事件。

如:PROCESS (reset_signal,clock_signal)BEGINIF (reset_condition) THENSignal_out<= reset_value;ELSIF (clock_event AND clock_edge_condition) THENSignal_out<= signal_in;…END IF;END PROCESS;说明:若没有ELSIF语句,当复位信号变化但复位条件不满足时…。

相关文档
最新文档