- 1、本文档共124页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
七基本逻辑电路设计.ppt
常用的预定义的程序包有四种。 1) STD_LOGIC_1164程序包 它是IEEE库中最常用的程序包,是IEEE的标准程序包。其中包含了一些数据类型、子类型和函数的定义,这些定义将VHDL扩展为一个能描述多值逻辑(即除具有“0”和“1”以外还有其他的逻辑量,如高阻态“Z”、不定态“X”等)的硬件描述语言,很好地满足了实际数字系统的设计需求。 2) STD_LOGIC_ARITH程序包 它预先编译在IEEE库中,是Synopsys公司的程序包。此程序包在STD_LOGIC_1164程序包的基础上扩展了三个数据类型:UNSIGNED、SIGNED和SMALL_INT,并为其定义了相关的算术运算符和转换函数。 3) STD_LOGIC_UNSIGNED和STD_LOGIC_SIGNED程序包 这两个程序包都是Synopsys公司的程序包,都预先编译在IEEE库中。这些程序包重载了可用于INTEGER型及STD_LOGIC和STD_ LOGIC_VECTOR型混合运算的运算符,并定义了一个由STD_LOGIC_VECTOR型到INTEGER型的转换函数。 4) STANDARD和TEXTIO程序包 这两个程序包是STD库中的预编译程序包。STANDARD程序包中定义了许多基本的数据类型、子类型和函数。 表7-7 D锁存器真值表 【例7-16】 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY dff1 IS PORT (clk,d:IN STD_LOGIC; q:OUT STD_LOGIC); END dff1; ARCHITECTURE rtl OF dff1 IS BEGIN PROCESS (clk) BEGIN IF (clkEVENT AND clk=1) THEN q=d; END IF; END PROCESS; END rtl; 【例7-17】 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY dff1 IS PORT (clk,d:IN STD_LOGIC; q:OUT STD_LOGIC); END dff1; ARCHITECTURE rtl OF dff1 IS BEGIN PROCESS BEGIN WAIT UNTIL clk EVENT AND clk=1; q=d; END PROCESS; END rtl; 例7-16和例7-17是对时钟信号边沿分别用前述不同方法进行描述时所得到的两个不同的程序。程序中描述的是正沿触发,如果要改成下降沿触发,只要对条件作如下改动就行了: IF (clk EVENT AND clk=0) (2) 非同步复位D锁存器。非同步复位的D锁存器的电路符号如图7-8 所示。它和一般D锁存器的区别是多了一个复位输入端clr。当clr=“0”时,其输出端q被强迫置为“0”。clr 又称清零输入端。用VHDL语言描述的非同步复位的D锁存器的程序实例如例7-18所示。 【例7-18】 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY dff2 IS PORT (clk,d,clr:IN STD_LOGIC; q:OUT STD_LOGIC); END dff2; ARCHITECTURE rtl OF dff2 IS BEGIN PROCESS (clk,clr) BEGIN IF (clr=0) THEN q=0; ELSIF (clk EVENT AND clk=1) THEN q=d; END IF; END PROCESS; END rtl; 图7-8 非同步复位的D锁存器的电路符号 (3) 非同步复位/置位D锁存器。非同步复位/置位D锁存器的电路符号如图7-9 所示。除了前述的d,clk和q端外,还有clr和pset 的复位、置位端。当clr=“0”时复位,使q=“0”;当pset=“0”时置位,使q=“1”。 图7-9 非同步复位/置位D锁存器的电路符号 用VHDL语言描述的非同步复位/置位锁存器的程序实例如例7-19所示。 【例7-19】 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY dff3 IS PORT (clk,d,clr,pset:IN
文档评论(0)