




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、主主 讲讲 人:蔡剑华人:蔡剑华单单 位:物电学院位:物电学院22 Identifiers,spaces and comments VHDL is not case-sensitive, however,that usual software engineering rules about identifiers should be appliedMeaningful,non-cryptic names should be used,based on English wordsUse mixed-case with consistent use of caseDont use excessiv
2、ely long identifiers(15 characters or fewer)Dont use identifiers that may be confused (e.g. two identifiers that differ by an underscore)Dont redefine predefined identifiers,such as Bit or Time Identifiers may consist of letters,numbers and underscores(_),but the first character must be a letter , a
3、nd two underscores in succession are not allowed Extended identifiers may consist of any character, provided that the entire identifier is enclosed in backslashes(),e.g.0$#&The strings in extended identifiers are case-sensitiveUse extended identifiers with extreme caution 2.2.1 Identifiers2.2.2
4、spaces Whitespace (spaces,carriage returns) should be used to make models more readable. There is no difference between one whitespace character and many2.2.3 comments Comments may be included in a VHDL description by putting two hyphens on a line(-)All text between the hyphens and the end of the li
5、ne is ignored配置配置配置语句的一般格式如下:配置语句的一般格式如下:CONFIGURATION 配置名配置名 OF 实体名实体名 IS 配置说明配置说明 END 配置名配置名; 配置可以把特定的结构体配置可以把特定的结构体关联到(指定给)一个确定的实体。关联到(指定给)一个确定的实体。组合逻辑电路的概念组合逻辑电路的概念1.任一时刻的输出仅仅取决于当时的输入,与电任一时刻的输出仅仅取决于当时的输入,与电路原来的状态无关,这样的数字电路叫做组合路原来的状态无关,这样的数字电路叫做组合逻辑电路。逻辑电路。2.与时序电路最大的区别就是,与时序电路最大的区别就是,组合逻辑电路不组合逻辑电
6、路不含有存储部件含有存储部件。3.常用的组合逻辑器件包括编码器、译码器、数常用的组合逻辑器件包括编码器、译码器、数据选择器、数值比较器、加法器等。据选择器、数值比较器、加法器等。3.1 基本逻辑门电路基本逻辑门电路基本逻辑门电路基本逻辑门电路 基本逻辑门电路是数字逻辑电路的基本电路。包基本逻辑门电路是数字逻辑电路的基本电路。包括与门、或门、与非门、或非门、反相器、异或括与门、或门、与非门、或非门、反相器、异或门等等。门等等。 下面用下面用VHDL语言来描述二输入与非门。语言来描述二输入与非门。二输入与非门二输入与非门Library IEEE;Use IEEE.std_logic_1164.al
7、l;Entity nand2 is port ( a, b: in std_logic; y: out std_logic);End nand2;Architecture behav of nand2 isBegin y=a nand b;End behav;nand是逻辑操作符是逻辑操作符与非,把与非,把nand替换替换为为nor即可得到二输即可得到二输入或非门入或非门P433.2 译码器与编码器译码器与编码器 译码器译码器(Decoder) l 译码器分为几类:译码器分为几类: 1.变量译码器变量译码器: 把输入的二进制代码的各种组合状把输入的二进制代码的各种组合状态翻译成对应的输出信号。
8、态翻译成对应的输出信号。 2.码制变换译码器码制变换译码器 :将一种代码变换为另一种代码将一种代码变换为另一种代码的电路。的电路。 3.显示译码器显示译码器:如将数据显示在七段数码管上时的译如将数据显示在七段数码管上时的译码。码。 4.地址译码器地址译码器:将译码器输入端的输入地址信号翻译将译码器输入端的输入地址信号翻译成相应的输出控制信号。成相应的输出控制信号。 译码器译码器(Decoder)l 变量译码器又称二进制译码器,把输入的二进制变量译码器又称二进制译码器,把输入的二进制代码的各种组合状态翻译成对应的输出信号。如代码的各种组合状态翻译成对应的输出信号。如38译码器译码器74LS138
9、。 l 下面就以下面就以38译码器为例子介绍译码器为例子介绍VHDL语言描述语言描述的实现。的实现。38译码器译码器 如图所示,是一个如图所示,是一个3-8译码器译码器(74LS138)。 3个二进制输入端,对输入个二进制输入端,对输入a, b, c的值进行译码,就可以确定哪一的值进行译码,就可以确定哪一个输出端变为个输出端变为有效(低电平)。有效(低电平)。 g1, g2a, g2b是选通信号,只有当是选通信号,只有当g1=1, g2a=0和和g2b=0时,译时,译码器才正常译码。码器才正常译码。P4438译码器译码器Library IEEE;Use IEEE.std_logic_1164.
10、all;Entity decoder_38 is Port ( a, b , c, g1, g2a, g2b: in std_logic; y: out std_logic_vector (7 downto 0) );End decoder_38;Architecture behav of decoder_38 isSignal indata : std_logic_vector(2 downto 0);Begin indata y y y y y y y y y=“XXXXXXXX”; End case; Else y=“11111111”; End if; End process;End
11、behav;Case语句可用语句可用If语句语句进行改写进行改写38译码器译码器改写后的改写后的IF语句语句:If (g1=1and g2a=0 and g2b=0) then y=“11111111”;Elsif indata=“000” then y=“11111110”; Elsif indata=“001” then y=“11111101”;Elsif indata=“010” then y=“11111011”;Elsif indata=“011” then y=“11110111”;Elsif indata=“100” then y=“11101111”;Elsif indata
12、=“101” then y=“11011111”;Elsif indata=“110” then y=“10111111”;Elsif indata=“111” then y=“01111111”;End if;小结小结l 本例设计的是一个本例设计的是一个38线译码器,有使能端,低电平有线译码器,有使能端,低电平有效。效。l 这个程序的一、二句是库和程序包的语言。接下来是实这个程序的一、二句是库和程序包的语言。接下来是实体,主要是定义了一些输入、输出端口。需要注意的是体,主要是定义了一些输入、输出端口。需要注意的是要帮实体命名,如要帮实体命名,如“decoder_38”,并且工程名与实体,并且
13、工程名与实体名保持一致。还要有结束语,如名保持一致。还要有结束语,如“end decoder_38”。l 最后是结构体部分,其中最后是结构体部分,其中“=”是信号传输符号,是信号传输符号,“indata=c & b & a”表示把表示把c、b、a进行位合并并且赋进行位合并并且赋值给信号值给信号indata。进程语句是结构体的一种子程序,括。进程语句是结构体的一种子程序,括号内的信号量是号内的信号量是process的输入信号,这些信号无论哪的输入信号,这些信号无论哪个发生变化,都将启动个发生变化,都将启动process语句。语句。编码器编码器(Encoder) l 编码器可分为两
14、类编码器可分为两类 1. 普通编码器:在某一特定时刻,只能对一个输入普通编码器:在某一特定时刻,只能对一个输入信号进行编码,并且这种编码器的输入端不允许信号进行编码,并且这种编码器的输入端不允许同一时刻出现两个以上的有效输入信号,否则编同一时刻出现两个以上的有效输入信号,否则编码器输出将会出现混乱;码器输出将会出现混乱; 2. 优先编码器:是指将所有的输入信号按优先级顺优先编码器:是指将所有的输入信号按优先级顺序进行排队,当几个输入信号同时出现(有效)序进行排队,当几个输入信号同时出现(有效)时,只对其中优先级最高的一个输入信号进行编时,只对其中优先级最高的一个输入信号进行编码的编码器,码的编
15、码器,常用于中断的优先级控制。常用于中断的优先级控制。优先级编码器优先级编码器 如图,如图,74LS148是一个是一个8输入,输入,3位二进制码输出的优先级编码位二进制码输出的优先级编码器。器。 当某一个输入有效时(低电当某一个输入有效时(低电平),就可以输出一个对应的平),就可以输出一个对应的3位二进制编码。位二进制编码。 当同时有几个输入有效时,将当同时有几个输入有效时,将输出输出优先级最高优先级最高的那个输入对的那个输入对应的二进制编码。应的二进制编码。P45优先级编码器优先级编码器Library IEEE;Use IEEE.std_logic_1164.all;Entity prior
16、ityencoder is Port ( input : in std_logic_vector (7 downto 0 ); y: out std_logic_vector( 2 downto 0) );End priorityencoder;Architecture behav of priorityencoder isBegin Process(input) BeginP45优先级编码器优先级编码器If ( input(0)=0) then y=“111”; elsif ( input(1)=0) then y=“110”; elsif ( input(2)=0) then y=“101
17、”; elsif ( input(3)=0) then y=“100”; elsif ( input(4)=0) then y=“011”; elsif ( input(5)=0) then y=“010”; elsif ( input(6)=0) then y=“001”; elsif ( input(7)=0) then y=“000”; else y=“XXX”; end if; End process;End behav;当当input=“01011111”时,编码成?时,编码成?因为因为IF语句是一种语句是一种流流程控制语句程控制语句,判断条,判断条件有前后次序,所以件有前后次序,所
18、以应编码为应编码为“010”。P453.3 加法器加法器半加器(半加器(Half Adder) LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY halfadder IS PORT( X,Y :in std_logic; Sum,Carry :out std_logic); END halfadder; ARCHITECTURE a OF halfadder IS BEGIN Sum=X xor Y; Carry=X and Y; END a;Sum= X XOR Y;Carry= X AND Y;SumCarryXY全加器全加器 (Full
19、Adder) LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY full_add IS PORT ( X,Y,Z:in bit; Sum,Carry:out bit); END full_add; ARCHITECTURE a OF full_add IS BEGIN Sum = X xor Y xor Z; Carry=(X and Y) or (Y and Z) or (Z and X); END a; SumCarryXYZsum = (X xorY) xor Z ;cout = (X and Y) or (Y and Z) or (Z
20、and X);P48全加器全加器 (Full Adder) 当全加器设计完成后,采用模块化设计方法,将全加器作当全加器设计完成后,采用模块化设计方法,将全加器作为一个组件为一个组件(component)定义,加入名为定义,加入名为component的程序包中,以后可以统一将设计的组件放在这个程序包的程序包中,以后可以统一将设计的组件放在这个程序包中。中。 Library IEEE; Use IEEE.std_logic_1164.all; PACKAGE components IS COMPONENTS fadd IS Port(a,b,ci:IN std_logic; co,sum:OUT
21、std_logic); END components; End components;4位串行进位加法器位串行进位加法器l 根据模块化设计思想,将全加器作为一个基本组根据模块化设计思想,将全加器作为一个基本组件,如图所示。件,如图所示。l 本例使用本例使用Component语句,与语句,与Port Map语句结语句结合合可以可以让我们像堆积木让我们像堆积木一般一般搭建出较为复杂的电搭建出较为复杂的电路路。P494位串行进位加法器位串行进位加法器Library IEEE;Use IEEE.std_logic_1164.all;Use ponents.all ;Entity fadd4 is po
22、rt ( a , b : in std_logic_vector(3 downto 0) ; ci: in std_logic; co: out std_logic; sum: out std_logic_vector ( 3 downto 0) );End fadd4 ;Architecture stru of fadd4 is signal ci_ns : std_logic_vector(2 downto 0);Begin U0: fadd port map ( a(0), b(0) , ci, ci_ns(0), sum(0) ); U1: fadd port map ( a(1),
23、b(1) , ci_ns(0), ci_ns(1), sum(1) ); U2: fadd port map ( a(2), b(2) , ci_ns(1), ci_ns(2), sum(2) ); U3: fadd port map ( a(3), b(3) , ci_ns(2), co, sum(3) );End stru;Architecture behav of 实体名称实体名称 IS component 元件元件A port ( );end component;component 元件元件B port ( );end component; P494位并行进位加法器位并行进位加法器Li
24、brary IEEE;Use IEEE.std_logic_1164.all;Use IEEE.std_logic_unsigned.all;Entity fadd4 is port ( a , b : in std_logic_vector(3 downto 0) ; ci: in std_logic; co: out std_logic; sum: out std_logic_vector ( 3 downto 0) );End fadd4 ;P504位并行进位加法器位并行进位加法器Architecture behav of fadd4 is signal sint : std_logic
25、 _vector ( 4 downto 0); signal aa, bb: std_logic_vector ( 4 downto 0);Begin aa=0& a; -将将4位加数矢量扩为位加数矢量扩为5位,为进位提供位,为进位提供空间空间 bb=0& b; -将将4位被加数矢量扩为位被加数矢量扩为5位,为进位提供位,为进位提供空间空间 sint=aa+bb+ci; s=sint (3 dowto 0); co=sint(4);End behav;串行进位与并行进位加法器性能比较串行进位与并行进位加法器性能比较1.串行进位方式是将全加器级联构成多位加法器。串行进位方式是将全
26、加器级联构成多位加法器。2.并行进位加法器设有并行进位产生逻辑,运算速度较快。并行进位加法器设有并行进位产生逻辑,运算速度较快。3.并行进位加法器通常比串行级联加法器占用更多的资源,并行进位加法器通常比串行级联加法器占用更多的资源,随着位数的增加,相同位数的并行加法器与串行加法器随着位数的增加,相同位数的并行加法器与串行加法器的资源占用差距快速增大。因此,在工程中使用加法器的资源占用差距快速增大。因此,在工程中使用加法器时,要在速度和占用资源间寻找平衡。时,要在速度和占用资源间寻找平衡。4.实践表明,实践表明,4位并行加法器和串行级联加法器占用几乎位并行加法器和串行级联加法器占用几乎相同的资源
27、,所以多位加法器(例如相同的资源,所以多位加法器(例如8位)可以由位)可以由4位并位并行加法器级联构成。行加法器级联构成。8位加法器位加法器Library IEEE;Use IEEE.std_logic_1164.all;Use IEEE.std_logic_unsigned.all;Entity fadd8 is port ( a , b : in std_logic_vector(7 downto 0) ; ci: in std_logic; co: out std_logic; sum: out std_logic_vector ( 7downto 0) );End fadd8 ;P51
28、8位加法器位加法器Architecture stru of fadd8 is Component fadd4 port ( a , b : in std_logic_vector(3 downto 0) ; ci: in std_logic; co: out std_logic; sum: out std_logic_vector ( 3 downto 0) ); End component; -也可以放在程序包中定义也可以放在程序包中定义 Signal carry_out : std_logic ; Begin U1: fadd4 port map( a( 3 downto 0), b(3
29、downto 0), ci, carry_out, sun(3 downto 0); U2: fadd4 port map( a( 7 downto 4), b(7 downto 4), carry_out, co, sun(7 downto 4);End stru; 3.4 其它组合逻辑模块其它组合逻辑模块多路选择器多路选择器 多路选择器的逻辑功能是在地址选择信号的控制多路选择器的逻辑功能是在地址选择信号的控制下,从多路输入数据中选择一路数据作为输出端下,从多路输入数据中选择一路数据作为输出端口的输出数据口的输出数据.4选选1多路选择器多路选择器Library IEEE;Use IEEE.s
30、td_logic_1164.all;Entity mux4 is port ( input : in std_logic_vector (3 downto 0 ); a, b: in std_logic; y: out std_logic );End mux4;Architecture behav of mux4 is signal sel :std_logic_vector(1 downto 0);Begin sel=b & a; process(input , sel) begin信号需在结构信号需在结构体中说明,而体中说明,而变量可在进程变量可在进程中说明。中说明。P484选选1
31、多路选择器多路选择器 if (sel=“00”) then y=input(0); elsif (sel=“01”) then y=input(1); elsif (sel=“10”) then y=input(2); elsif (sel=“11”) then y=input(3); else y=Z; end if; End process;End behav;P48求补器求补器Library IEEE;Use IEEE.std_logic_1164.all;Use IEEE.std_logic_unsigned.all;Entity hosuu is port ( a : in std_
32、logic_vector ( 7 downto 0 ) ; b : out std_logic_vector ( 7 downto 0) );End hosuu;Architecture rtl of hosuu isBegin b= not a +1; End rtl;P46三态门三态门Library IEEE;Use IEEE.std_logic_1164.all;Entity tri_gate is port ( din , en : in std_logic; dout : out std_logic );End tri_gate ;Architecture behav of tri_gate isBegin process ( din ,en) begin if (en=1) then dout=din; else dout=Z; end if ; end process; End behav;采用防护式块语句来表示三态门:采用防护式块语句
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年垂盆草颗粒行业研究报告及未来行业发展趋势预测
- 密闭鼓风炉备料工协作考核试卷及答案
- 老板私家车无偿借给公司使用并规定使用及保养合同
- 光暴露对黑色素细胞损伤机制-洞察及研究
- 酒吧服务员劳动合同期限与续签规定
- 舞蹈培训机构舞蹈教师聘用与艺术教育创新合同
- 酒店客房部门员工聘用合同及服务流程优化协议
- 城市轨道交通项目监理合同管理与进度控制
- 钼钨冶炼辅料制备工效率提升考核试卷及答案
- 进口电力设备维修与性能优化合同范本
- 边坡作业安全教育培训
- 印染工厂设计
- ktv安全消防管理制度
- 公司贷款流程
- 血透患者高血钾的护理
- 医疗卫生机构安全生产标准化管理规范
- 心内科出科汇报
- 呼吸机与肺康复讲课件
- 生成式人工智能课件
- 2025年园林绿化养护管理方案范本(四)
- 2025年浙江宁波市北仑区现代服务业发展集团下属全资国企招聘笔试参考题库含答案解析
评论
0/150
提交评论