版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 vhdl 设计初步设计初步唐英姿唐英姿编编制制教学内容教学内容o设计举例设计举例: 2选选1多路选择器多路选择器ovhdl相关语法相关语法结束结束o教学导入教学导入o课堂练习课堂练习o小结小结现代电子设计新技术现代电子设计新技术:eda技术技术oeda:电子设计自动化:电子设计自动化nelectronic design automationneda技术就是:技术就是:o依赖依赖 功能强大的功能强大的计算机计算机在在 eda工具软工具软件件 平台上,用平台上,用 硬件描述语言(硬件描述语言(hdl)作作为系统逻辑描述手段来完成为系统逻辑描述手段来完成 电子线路设电子线路设计文件计文件。o最终实
2、现最终实现 特定电子线路的硬件(芯特定电子线路的硬件(芯片或者电路板)片或者电路板)目录目录结束结束关于关于vhdlo什么是什么是vhdl? nvery high speed integrated hardware description language (vhdl)n是是ieee、工业标准硬件描述语言、工业标准硬件描述语言n用语言的方式而非图形等方式描述硬件电用语言的方式而非图形等方式描述硬件电路路n容易修改容易修改n容易保存容易保存目录目录结束结束关于关于vhdlo特别适合于设计的特别适合于设计的电路有:电路有:n复杂组合逻辑电复杂组合逻辑电路,如:路,如: 译码器、编码器、译码器、编码
3、器、加减法器、多路加减法器、多路选择器、地址译选择器、地址译码器码器.n状态机状态机nx等等等等.目录目录结束结束关于关于vhdlovhdl的功能和标准的功能和标准nvhdl 描述描述n输入端口输入端口n输出端口输出端口n电路的行为和功能电路的行为和功能nvhdl有过两个标准:有过两个标准:nieee std 1076-1987 (called vhdl 1987)nieee std 1076-1993 (called vhdl 1993)目录目录结束结束4.1 多路选择器多路选择器vhdl描述描述o设计设计: 2选选1多路选择器多路选择器y=as+bss y0 a1 b目录目录结束结束【例【
4、例4-1】entity mux21a is port( a, b : in bit ; s : in bit; y : out bit ) ;end entity mux21a ;architecture one of mux21a is begin y = a when s = 0 else b ;end architecture one ;实体实体结构体结构体4.1 多路选择器多路选择器vhdl描述描述图图4-1 mux21a实体实体图图4-2 mux21a结构体结构体mux21a.vhd4.1.1 24.1.1 2选选1 1多路选择器的多路选择器的vhdlvhdl描述描述目录目录结束结束
5、4.1.1 2选选1多路选择器的多路选择器的vhdl描述描述o电路的电路的vhdlvhdl描述由两大部分组成:描述由两大部分组成:n以关键词以关键词entity 引导,引导,end entity mux21a 结尾的语句部分,称为结尾的语句部分,称为实体实体。vhdl 的实体描述了电路器件的外部情况的实体描述了电路器件的外部情况及各信号端口的基本性质,如信号流动的及各信号端口的基本性质,如信号流动的方向,流动在其上的信号结构方式和数据方向,流动在其上的信号结构方式和数据类型等。类型等。n以关键词以关键词architecture 引导,引导,end architecture one 结尾的语句部
6、分,结尾的语句部分,称为称为结构体结构体。结构体负责描述电路器件的。结构体负责描述电路器件的内部逻辑功能和电路结构。内部逻辑功能和电路结构。目录目录结束结束目录目录结束结束【例例4-2】 entity mux21a is port ( a, b : in bit; s : in bit; y : out bit ); end entity mux21a;architecture one of mux21a is signal d,e : bit; begind = a and (not s) ;e = b and s ;y = d or e ; end architecture one ;【例
7、【例4-3】 . . . architecture one of mux21a is begin y = (a and (not s) or (b and s) ; end architecture one;4.1.1 2选选1多路选择器的多路选择器的vhdl描述描述用其他的语句用其他的语句形式来描述相形式来描述相同的逻辑行为同的逻辑行为目录目录结束结束【例【例4-4】 entity mux21a is port ( a, b, s: in bit; y : out bit );end entity mux21a;architecture one of mux21a is begin proc
8、ess (a,b,s) begin if s = 0 then y = a ; else y = b ;end if; end process;end architecture one ;4.1.1 2选选1多路选择器的多路选择器的vhdl描述描述目录目录结束结束 例例4 41 1、4 42 2、4 43 3中的中的vhdlvhdl功能描功能描述语句都是并行语句,例述语句都是并行语句,例4 44 4则是用则是用if_then_elseif_then_else顺序语句描述功能。顺序语句描述功能。注意:同一逻辑功能的同一描述方法,对注意:同一逻辑功能的同一描述方法,对于不同的约束条件,将综合出不同
9、的电路于不同的约束条件,将综合出不同的电路结构。结构。4.1.1 2选选1多路选择器的多路选择器的vhdl描述描述4.1.2 vhdl相关语法说明相关语法说明1.1.实体表达实体表达【例【例4-5】entity e_name is port ( p_name : port_m data_type; . p_namei : port_mi data_type );end entity e_name;或:或:【例【例5-6】entity e_name is port ( p_name : port_m data_type; . p_namei : port_mi data_type );end e
10、_name;实体名实体名端口信号名端口信号名端口模式端口模式数据类型数据类型1993版本版本1987版本版本entity、is、port和和 end entity是关键词,不区分是关键词,不区分大小。大小。目录目录结束结束4.1.2 vhdl相关语法说明相关语法说明o2.2.实体实体名名ne_name 是实体名,是标识符,具体取名是实体名,是标识符,具体取名由设计者自定。由于实体名实际上表达的由设计者自定。由于实体名实际上表达的应该设计电路的器件名,所以最好根据相应该设计电路的器件名,所以最好根据相应电路的功能来确定,如应电路的功能来确定,如n4 位二进制计数器位二进制计数器counter4b
11、;n8 位二进制加法器位二进制加法器adder8b,等等,等等n注意:不应用数字或中文定义实体名,也注意:不应用数字或中文定义实体名,也不应用与不应用与eda 工具库中已定义好的元件工具库中已定义好的元件名作为实体名,如名作为实体名,如or2、latch 等,且不能等,且不能用数字起头的实体名,如用数字起头的实体名,如74lsxx。【例【例4-1】entity mux21a is port( a, b : in bit ; s : in bit; y : out bit ) ;end entity mux21a ;目录目录结束结束4.1.2 vhdl相关语法说明相关语法说明4.4.端口模式端口
12、模式inoutinoutbuffer3.3.端口端口语句和端口信号名语句和端口信号名n描述电路的端口及其端口信号必须用端口描述电路的端口及其端口信号必须用端口语句语句port( )引导,并在语句结尾处加分引导,并在语句结尾处加分号号“;”。【例【例4-1】entity mux21a is port( a, b : in bit ; s : in bit; y : out bit ) ;end entity mux21a ;【例【例4-1】entity mux21a is port( a, b : in bit ; s : in bit; y : out bit ) ;end entity mu
13、x21a ;目录目录结束结束4.1.2 vhdl相关语法说明相关语法说明oin:输入端口输入端口,定义的通道为单向只读模式。,定义的通道为单向只读模式。规定数据只能由此端口被读入实体。规定数据只能由此端口被读入实体。oout:输出端口输出端口,定义的通道为单向输出模式。,定义的通道为单向输出模式。规定数据只能通过此端口从实体向外流出。规定数据只能通过此端口从实体向外流出。oinout:定义的通道确定为:定义的通道确定为输入输出双向端口输入输出双向端口。obuffer:缓冲端口缓冲端口,其功能与,其功能与inout 类似。类似。o区别:在于当需要输入数据时,区别:在于当需要输入数据时, buff
14、er只允只允许内部回读输出的信号,即允许反馈。许内部回读输出的信号,即允许反馈。inout由外部输入的。由外部输入的。目录目录结束结束4.1.2 vhdl相关语法说明相关语法说明o5.5.数据类型数据类型ndata_typedata_type 是数据类型名。是数据类型名。nvhdl vhdl 中任何一种数据对象的应用都必须中任何一种数据对象的应用都必须严格限定其取值范围和数值类型严格限定其取值范围和数值类型n相关的数据类型:有相关的数据类型:有integer integer 类型、类型、boolean boolean 类型、类型、std_logic std_logic 类型和类型和bit bi
15、t 类类型等。型等。nbit bit 数据类型(位数据类型)的信号规定数据类型(位数据类型)的信号规定的取值范围是逻辑位的取值范围是逻辑位11和和00。在。在vhdl vhdl 中,逻辑位中,逻辑位0 0 和和1 1 的表达必须加单引号,的表达必须加单引号,否则否则vhdlvhdl综合器将综合器将0 0 和和1 1 解释为整数数据解释为整数数据类型类型integerinteger。【例【例4-1】entity mux21a is port( a, b : in bit ; s : in bit; y : out bit ) ;end entity mux21a ;目录目录结束结束4.1.2 v
16、hdl相关语句说明相关语句说明6. 6. 结构体表达结构体表达【例【例4-6】architecture arch_name of e_name is (说明语句说明语句)begin (功能描述语句功能描述语句)end architecture arch_name ;或:或:architecture arch_name of e_name isbeginend arch_name ;architecture、of、is、begin 和和end architecture 都是描述结构体的关键词,都是描述结构体的关键词,在在描述中必须包含它们。描述中必须包含它们。arch_name 是结构体名,是结
17、构体名,是标识符。是标识符。目录目录结束结束4.1.2 vhdl相关语句说明相关语句说明o说明语句说明语句包括在结构体中,用以说明和定包括在结构体中,用以说明和定义数据对象、数据类型、元件调用声明等。义数据对象、数据类型、元件调用声明等。说明语句说明语句并非是必须的,并非是必须的,o功能描述语句功能描述语句则不同,结构体中必须给出则不同,结构体中必须给出相应的电路功能描述语句,可以是并行语句,相应的电路功能描述语句,可以是并行语句,顺序语句或它们的混合。顺序语句或它们的混合。o一般设计实体中,首先出现的是各类库及其一般设计实体中,首先出现的是各类库及其程序包的使用声明,然后是实体描述,最后程序
18、包的使用声明,然后是实体描述,最后是结构体描述,而在结构体中可以含有不同是结构体描述,而在结构体中可以含有不同的逻辑表达语句结构。的逻辑表达语句结构。目录目录结束结束4.1.2 vhdl相关语句说明相关语句说明o7. 赋值符号和数据比较符号赋值符号和数据比较符号n赋值符号赋值符号“= ” ,vhdl 要求赋值符要求赋值符“=”两边的信号的数据类型必须一致。两边的信号的数据类型必须一致。n比较等号比较等号“=”没有赋值的含义,只是一种数没有赋值的含义,只是一种数据比较符号。其表式输出结果的数据类型是据比较符号。其表式输出结果的数据类型是布尔数据类型布尔数据类型boolean,布尔数据不是值,布尔
19、数据不是值,只能用于逻辑操作或条件判断。只能用于逻辑操作或条件判断。n如:如:nif a then . - 注意,注意,a 的数据类型必须是的数据类型必须是booleannif (s1=0)and(s2=1)or(cb+1) then .begin y = a when s = 0 else b ;目录目录结束结束4.1.2 vhdl相关语句说明相关语句说明o8. 逻辑操作符逻辑操作符nvhdl 共有共有7 种基本逻辑操作符,它们是种基本逻辑操作符,它们是and(与与)、or(或或)、nand(与非与非)、nor(或非或非)、xor(异或异或)、xnor(同或同或)和和not(取反取反)。n操
20、作数操作数(操作对象操作对象)的数据类型有的数据类型有3 种,即种,即bit、boolean 和和std_logic。n注意,与其他注意,与其他hdl 用某种符号表达逻辑用某种符号表达逻辑操作符不同,操作符不同,vhdl 中直接用对应的英语中直接用对应的英语文字。文字。begin y = (a and (not s) or (b and s) ;目录目录结束结束4.1.2 vhdl相关语句说明相关语句说明o9. 条件语句条件语句n利用利用if_then_else 表达的表达的vhdl 顺序顺序语句的方式,可以描述电路行为。语句的方式,可以描述电路行为。n语句同样能描述并行运行的组合电路。语句同
21、样能描述并行运行的组合电路。n注意,注意,if 语句必须以语句语句必须以语句“end if;”结束。结束。begin if s = 0 then y = a ; else y = b ;end if;目录目录结束结束4.1.2 vhdl相关语句说明相关语句说明o10. when_else 条件信号赋值语句条件信号赋值语句n赋值目标赋值目标 = 表达式表达式 when 赋值条件赋值条件 elsen表达式表达式 when 赋值条件赋值条件 elsen.n是一种并行赋值语句,功能与在进程中的是一种并行赋值语句,功能与在进程中的if 语句相同,在执行条件信号语句时,每语句相同,在执行条件信号语句时,每
22、一一“赋值条件赋值条件”是按书写的先后关系逐项是按书写的先后关系逐项测定的,测定的,nz = a when p1 = 1 elsen b when p2 = 1 elsenc ;目录目录结束结束4.1.2 vhdl相关语句说明相关语句说明o11. 进程语句和顺序语句进程语句和顺序语句n由由process 引导的语句称为进程语句。在引导的语句称为进程语句。在vhdl 中,所有合法的顺序描述语句都必须中,所有合法的顺序描述语句都必须放在进程语句中。放在进程语句中。nprocess 旁的旁的(a,b,s)称为进程的敏感信称为进程的敏感信号表,通常要求将进程中所有的输入信号都号表,通常要求将进程中所有
23、的输入信号都放在敏感信号表中。放在敏感信号表中。process 语句的执行语句的执行依赖于敏感信号的变化。依赖于敏感信号的变化。n在一个结构体中可以包含任意个进程语句,在一个结构体中可以包含任意个进程语句,所有的进程语句都是并行语句,而由任一进所有的进程语句都是并行语句,而由任一进程程process 引导的语句(包含在其中的语引导的语句(包含在其中的语句)结构属于顺序语句。句)结构属于顺序语句。process (a,b,s) begin if s = 0 then y = a ; else y = b ;end if; end process;process (a,b,s) begin if
24、s = 0 then y = a ; else y = b ;end if; end process;目录目录结束结束4.1.2 vhdl相关语句说明相关语句说明o12. 文件取名和存盘文件取名和存盘n用用vhdl 文本编辑器编辑文本编辑器编辑vhdl 代码文件,代码文件,在保存文件时,必须赋给一个正确的文件在保存文件时,必须赋给一个正确的文件名。一般地,文件名可以由设计者任意给名。一般地,文件名可以由设计者任意给定,但文件后缀扩展名必须是定,但文件后缀扩展名必须是“.vhd”,如如adder_f.vhd。n建议程序的文件名尽可能与该程序的实体建议程序的文件名尽可能与该程序的实体名一致,如:名
25、一致,如:mux21a.vhd。原则上文件。原则上文件名不分大小写,但推荐使用小写,特别是名不分大小写,但推荐使用小写,特别是后缀。后缀。目录目录结束结束课堂思考题课堂思考题:o如图所示的是如图所示的是4 选选1 多路选择器,试设计该多路选择器,试设计该电路的电路的vhdl程序。程序。o选择控制的信号选择控制的信号s1 和和s0 的数据类型为的数据类型为bit;当当s1=0,s0=0;s1=0,s0=1;s1=1,s0=0和和s1=1,s0=1分别执行分别执行y=a、y=b、y=c、y=d。目录目录结束结束2选选1数据选择器数据选择器vhdl程序:程序:entity mux21a isport
26、( a, b : in bit ; s : in bit; y : out bit ) ;end entity mux21a ;architecture one of mux21a is begin y = a when s = 0 else b ;end architecture one ;目录目录结束结束library ieee;use ieee.std_logic_1164.all;entity mux4_1 is port(a,b,c,d: in std_logic; s0,s1: in std_logic; y: out std_logic);end entity mux4_1;architecture archmux of mux4_1 issignal s1s0:std_logic_vector(1 downto 0);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 雅安市高2022级(2025届)高三“零诊”考试 语文试卷(含标准答案)
- 养老护理员初级培训
- 中考数学二轮复习专项选择题题组集训二课件
- 防疫培训幼儿园
- 2024-2025学年贵州省六盘水市水城区高二上学期期中质量监测数学试卷(含答案)
- T-ZFDSA 20-2024 蜂蜜蒸梨制作标准
- 山东省菏泽市郓城一中2024-2025学年九年级上学期第一次月考数学试题
- 03Z028安全环保部安全管理员工作标准
- 人教版六年级语文下册两小儿辩日
- 高中语文第5单元散而不乱气脉中贯3祭十二郞文课件新人教版选修中国古代诗歌散文欣赏
- YS/T 73-2011副产品氧化锌
- GB/T 23858-2009检查井盖
- 工伤职工停工留薪期目录
- 2023年博雅学校雅思阅读模拟题及答案三ver.5
- 2高铁AB料路基填筑施工技术
- T-NTRPTA 0030-2020 无人机精准测绘技术规范
- 漏(中国民间故事)
- 工程制图与CAD2021年春学期期末考试试卷
- 骨科护理查房骨牵引病人护理实用课件
- 运动损伤的预防和处理 医学知识讲座
- 《新能源汽车故障诊断和维修研究(论文)8200字》
评论
0/150
提交评论