![[工学]VHDL程序设计语言.ppt_第1页](http://file.renrendoc.com/FileRoot1/2019-1/3/2988b12e-cda9-4ced-9ba7-f679ff6515e0/2988b12e-cda9-4ced-9ba7-f679ff6515e01.gif)
![[工学]VHDL程序设计语言.ppt_第2页](http://file.renrendoc.com/FileRoot1/2019-1/3/2988b12e-cda9-4ced-9ba7-f679ff6515e0/2988b12e-cda9-4ced-9ba7-f679ff6515e02.gif)
![[工学]VHDL程序设计语言.ppt_第3页](http://file.renrendoc.com/FileRoot1/2019-1/3/2988b12e-cda9-4ced-9ba7-f679ff6515e0/2988b12e-cda9-4ced-9ba7-f679ff6515e03.gif)
![[工学]VHDL程序设计语言.ppt_第4页](http://file.renrendoc.com/FileRoot1/2019-1/3/2988b12e-cda9-4ced-9ba7-f679ff6515e0/2988b12e-cda9-4ced-9ba7-f679ff6515e04.gif)
![[工学]VHDL程序设计语言.ppt_第5页](http://file.renrendoc.com/FileRoot1/2019-1/3/2988b12e-cda9-4ced-9ba7-f679ff6515e0/2988b12e-cda9-4ced-9ba7-f679ff6515e05.gif)
已阅读5页,还剩194页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程简介 数字系统与VHDL程序设计语言 引例 : VHDL原理 : VHDL语言 非常高速硬件描述语言, 也就是一种硬件(数字电路)设计语 言. 其最大特点是对电路的行为与结构进行高度抽象化规范 化,并对设计进行模拟验证与综合优化,使分析和设计高 度自动化。 支持VHDL语言的软件平台 Max+PlusII 由软件设计到硬件实现之间的媒介 CPLD / FPGA (可编程器件) 在Max+PlusII编写VHDL程序 存盘 (文件名为实体名,后缀为 .VHD) 编译 软件仿真 管脚安排 下载 由 软 件 设 计 到 硬 件 实 现 的 流 程 基本顺序语句 (1)Process语句 (2)If-Else语句 (3)Case-When语句 (4)Null语句 (5)Wait until语句 (6)变量赋值语句 (7)For-Loop语句 (8)过程调用语句 基本的并行语句 (1)直接赋值语句 (2) Process语句 (3)When-Else (4)With-Select-When (5)元件例化语句 (6)For-Generate 常用数字电路回顾 (1)编码器 输入 信号 输出 信号 使能端口 注:EN为1时编码器工作 举例 参看EWB辅助电路 (2)译码器 1 1 1 1 译码器 VHDLVHDL与数字电路设计与数字电路设计 引引 言言 VHDLVHDL简介简介 一、由来 VHDL是Very High speed Integrated Circuit Hardware Description Language (非常高速集成电路硬件描述语言) 的英文缩写。它是由美国国防部支持的一项研究计划,于 1983年创建,目的是以文字化方法描述电子电路与系统。至 今VHDL约有40年的发展历史,1987年,VHDL成为IEEE标准, 即IEEE1076标准,1993年修改为IEEE1164标准,1996年, IEEE又将电路合成的标准程序与规格加入到VHDL语言中,称 为1076.3标准。之后,又有1076.4标准和1076.6标准。 第一章 VHDL的程序结构和软件操作 1-1 VHDL程序的基本结构 1-2软件操作Max+plus的操作 第一章 VHDL的程序结构和软件操作 1-1 VHDL程序的基本结构 (1)LIBRARY和PACHAGE的声明部分 作用:库(Library)是用于存放预先编译好的程序包 (Package),程序包中定义了数据集合体、逻 辑操作和元件等。主要是声明在设计或实体中 将用到的常数,数据类型,元件及子程序等。 使用格式:LIBRARY 库名; USE 库名. 程序包名. All; (2)ENTITY定义 作用:定义本设计的输入/出端口,即定义电路的外观, 即I/O接口的类型和数量使用格式: 端口名 :端口模式 数据类型;); ENTITY 实体名 Is End 实体名; 格式格式: : Port ( 端口名 :端口模式 数据类型; (3)ARCHITECTURE定义 作用:定义实体的实现。即电路的具体描述,说明电路执 行什么动作或实现功能。 ARCHITECTURE 结构体名 Of 实体名 Is Begin 描述语句; End 结构体名; 使用格式使用格式: : 在Max+plus系统中有4个库能支持VHDL语言,它们分 别是Std库、IEEE库、Altera库和Lpm库。Std库和IEEE库 提供基本的逻辑运算函数及数据类型转换函数等。IEEE 库中的程序包std_logic_1164定义了std_logic和 std_logic_vector等数据类型。 举例举例: : 设计一个与门电路设计一个与门电路 逻辑符号逻辑符号 真值表真值表 Library IEEE; Use std.standard.all; Entity and2 is Port( A: in bit; B: in bit; Y:out bit); End and2; -首先定义输入输出端口名字, 模式(Mode),信号类型 -注意最后语句的分号在括号外 实体定义: Architecture Na of and2 is Begin Y(大于), =(大于等于)。 注 1.等于和不等于的操作对象可以是任何数据类型构成的操作数 。 2.其它关系运算符对数据类型有一定的限制。(整数,枚举型 ) 3. =、 /= 在实现硬件电路时比其它的关系运算符对芯片的利用率 要高 ENTITY my1 is PORT(a,b : in bit_vector(0 to 3) m : out boolean ) ; END my1 ; ARCHITECTURE a1 of my1 BEGIN m= b) ; END a1; 以上两程序最终所实现的硬件电路见课本P78 END my1 ; 2.4.3 算术运算符 一、分类及功能 求和运算符、求积运算符、符号运算符、混合运算符、移位运算符 二. 运用 1.求和运算符 VHDL中的求和运算符包括加减运算和并置运算,操作 数的数据类型为整型。 例1:Variable a,b,c,d,e,f : integer range 0 to 255; a := b + c ; d := e f ; 例2:Signal a : std_logic_vector(4 to 0); Signal b : std_logic_vector(2 to 0); Signal c : std_logic_vector(1 to 0); a (大于), =(大于等于)。 1.等于和不等于的操作对象可以是任何数据类型构成的操作数。 2.其它关系运算符对数据类型有一定的限制。(整数,枚举型) 三、算术运算符 求和运算符、求积运算符、符号运算符、混合运算符、移位运算符 VHDL中的求和运算符包括加减运算和并置运算,操作数的数据类型 为整型。 Signal a : std_logic_vector(4 downto 0); Signal b : std_logic_vector(2 downto 0); Signal c : std_logic_vector(1 downto 0); b c a 3, f=4, g(1)=2, g(2)=1); 名称关联 结果: h的值为 1010 3.3 流程控制语句 3.3.1 IF语句 语法格式: If expression Then statement; Elsif expression Then statement; Elsif Then statement; else statement; End if; 根 据 条 件 进 行 相 应 赋 值 操 作 例1: Process(A) Begin If A=”00” then fb ) THEN outb ) THEN out顺序语句 When 选择值 =顺序语句 End case; CASE 语句根据满足的条件直接选择多项顺序语句的一项执行 =不是信号赋值符号,其意思等价于 “THEN” 注 例题1: 用CASE语句设计四选一数据选择器 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL ENTITY mux41 IS PORT ( s1, s2 : in std_logic; a,b,c,d: in std_logic; z: out std_logic); END ENTITY mux41; ARCHITECTURE activ OF mux41 IS SIGNAL s :std_logic_vector(1 downto 0); BEGIN S z z z z zz; ELSIF s=“01” then b=z; ELSIF s=“10” then c=z; ELSE d=z; END IF; END ARCHITECTURE activ; ARCHITECTURE activ OF mux41 IS SIGNAL s :std_logic_vector(1 downto 0); BEGIN S z z z z z Z1 Z2 Z3Z4 Y Y Y Y Y Y Y Y Y Y10; END LOOP L2; 二、FOR_LOOP语句 LOOP标号: FOR 循环变量 IN 循环次数范围 LOOP 顺序语句; END LOOP LOOP 标号 ; 例:试设计一个八位奇偶校验器 注: 0 XOR a = a LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY JIOU IS PORT (a : IN STD_LOGIC_VECTOR(7DOWNTO 0); y: OUT STD_LOGIC); END JIOU; ARCHITECTURE OPT OF JIOU IS SIGNAL tmp : STD_LOGIC; BEGIN PROCESS (a) BEGIN tmp Return “1100”; When “0101”Return “1100”; When OthersReturn “1111”; End Case; End Function trans; 3.4.3 过程(Procedure) 过程首 Procedure 过程名 (参数表) Procedure 过程名 (参数表) IS 说明部分 Begin 顺序语句 END Procedure 过程名; 过程体 注:参数表中参量可以时变量、信号、常数(默认) 参数的方向可以是 IN、OUT、INOUT 例 Procedure prg1 (variable value:inout bit_vector(0 to 3) ) Begin Case value IS When “0000”Return “1100”; When “0101”Return “0000”; When OthersReturn “1111”; End Case; End Procedure Prg1; 3.4.4 子程序调用 例题 ENTITY liti IS PORT (a,b,c,d:in bit_vector(0 to 3); ra,rb,rc,rd:our bit_vector(0 to 3); END liti; ARCHITECTURE muxes OF liti is Procedure sort(x,y:inout bit_vector(0 to 3) is variable tmp:bit_vector(0 to 3); Begin If xy then tmp:=x;x:=y;y:=tmp; END IF; END SORT; Begin Process (a,b,c,d) Begin sort (a,c); sort (b,d); sort (a,b); sort (c,d); sort (b,c); END process; ra tmp:=rega and regb; WHEN “101” = tmp:=rega or regb; WHEN “110” = tmp:=NOT rega; WHEN OTHERS = NULL; END CASE; 注:NULL语句有时会造成不必要的寄存器 3. 7 其它语句 clock EVENT and clock =1; 功能 : clock EVENT 就是对信号在当前的一个极小 的时间段内电平是否发生变化进行检测。 例1: Process (clock) If (clockEVENT and clock=1) then Q0); 信号A的每一位的值都为0。 B0) ; 信号B的第一位为1,其它位的值为0。 下面举一个应用示例,如下面电路: 用VHDL对电路的描述如下: library ieee; use ieee.std_logic_1164.all; Entity exam1 is port (a,b : in std_logic; c,d : out std_logic); End exam1; Architecture m1 of exam1 is Begin cc1,c=y,b=d1);U2 : nd2 port map (a=c1,c=y,b=d1); U3 : nd2 port map (a=x,y,c=z1)U3 : nd2 port map (a=x,y,c=z1) Signal x,y:std_logic ; (存储结点) begin End architecture ord41behv; Library ieee; Use ieee.std_logic_1164.all; Entity ord41 is U1 : nd2 port map(a1,b1,x);U1 : nd2 port map(a1,b1,x); U2 : nd2 port map (a=c1,c=y,b=d1);U2 : nd2 port map (a=c1,c=y,b=d1); U3 : nd2 port map (x,y,c=z1);U3 : nd2 port map (x,y,c=z1); U1U1 使用格式 第一步:元件声明 Component 元件名 IS Port Clause End Component 元件名 ; 元件端口信息,与该元件 实现时的实体的port部分相 同并在结构体开始之前进 行声明 第二步:元件例化 例化名 : 元件名 Port Map(端口映射); 将元件端口和要描述的 电路的实际端口具体对 应,在结构体开始后进 行例化 元件例化时端口映射方式: a.位置对应方式 直接由输入信号和元件信号的对应位置进行映射。即: 元件标号:元件名 Port Map(信号A1, 信号B1,); b.名字直接对应 元件标号:元件名 Port Map(组件信号A=信号A1, 组件信号B=信号B1,); U1 : nd2 port map(a1,b1,x);U1 : nd2 port map(a1,b1,x); U2 : nd2 port map (a=c1,c=y,b=d1);U2 : nd2 port map (a=c1,c=y,b=d1); U3 : nd2 port map (a=x,y,c=z1)U3 : nd2 port map (a=x,y,c=z1) 位置对应方式 名字直接对应 例: 设计一个一位全加器 Library ieee; Use ieee.std_logic_1164.all; Use ieee.std_logic_unsigned.all; Entity fulladder is Port (Ci : in std_logic; a,b : in std_logic; s : out std_logic; Co : out std_logic); End fulladder; Architecture m1 of fulladder is Signal tmp: std_logic_vector(1 downto 0); Begin tmpc(0),a=x(0),b=y(0),s=sum(0),co=c(1); U2: fulladder Port map(ci=c(1),a=x(1),b=y(1),s=sum(1),co=c(2); U3: fulladder Port map(ci=c(2),a=x(2),b=y(2),s=sum(2),co=c(3); U4: fulladder Port map(ci=c(3),a=x(3),b=y(3),s=sum(3),co=c(4); 并行语句,元件同时产生 (7)For-Generate语句 作用:For-Generate语句用于重复性的信号设置或重复性的元件例化。 上面的四位加法器可以这样来实现: For i In 0 to 3 Generate Bitadder: fulladder Port map(c(i),x(i),y(i),sum(i),c(i+1); End generate; 元件例化循环管脚映射语句 第五章 组合逻辑电路的设计和分析 5.1 概述 5.2 编码器 5.3 译码器 5.4 简单数字显示系统 5.5 其它 定义:任一时刻的输出仅仅取决于当时的输入,与电路原来的状态 无关,这样的数字电路叫做组合逻辑电路。 常用组合逻辑电路有以下几种: (1)编码器 (2)译码器 (3)比较器 (4)数据选择器 (5)三态输出电路 (6)加法器 5.1 概述 5.2 编码器 5.2.1 8-3编码器 5.2.2 二十进制编码器 编码器有普通编码器和优先编码器,我们设计一个普通的8-3编码器。 输入 信号 输出 信号 使能端口 一、外观及功能 5.2.1 8-3编码器 注:EN为1时编码器工作 二、其VHDL程序 结构体 1 实体 architecture m2 of bmq is begin process(a) begin if en=1 then case a is when “00000001“ = Y Y Y Y Y Y Y Y y AAAAAAAAAb else 0; Y3 qn qn qnnull; End case; End if; End Process; q 一个3 bits的计数器,它所能计数的范围为07(=23-1)。同理,n bits的计 数器所能计数范围为02n-1。 Q0、Q1、Q2的波形频率分别为时钟脉冲信号Clk的1/2、1/4、1/8,由此可以 知道,n bits的计数器可获得的最低分频频率为时钟脉冲信号Clk的1/2n。 对于4MHz频率信号,若作为加法计数器电路的时钟脉冲信号Clk,则电路不 同输出脚位获得的分频频率如下表所示。 Clk=4MHz Q02MHzQ101.953125kHzQ201.907348Hz Q11MHzQ11976.5625HzQ210.953674Hz Q2500kHzQ12488.28125HzQ220.476837Hz Q3250kHzQ13244.14063HzQ230.238418Hz Q4125kHzQ14122.070312HzQ240.119209Hz Q562.5kHzQ1561.035156HzQ250.059604Hz Q631.25kHzQ1630.517578HzQ260.029802Hz Q715.625kHzQ1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大连东软信息学院《工程造价与招投标》2024-2025学年第一学期期末试卷
- 昆明铁道职业技术学院《国际商法导论》2024-2025学年第一学期期末试卷
- 武汉航海职业技术学院《土壤与生物地理学实验》2024-2025学年第一学期期末试卷
- 南开大学滨海学院《排水工程课程设计》2024-2025学年第一学期期末试卷
- 长江艺术工程职业学院《大数据分析》2024-2025学年第一学期期末试卷
- 2025年地理信息系统专业知识点模拟题集
- 男幼师缺失的成因分析
- 西双版纳职业技术学院《客户画像管理》2024-2025学年第一学期期末试卷
- 2025年物业管理案例分析实战中级面试模拟题集萃与解析
- 石家庄经济职业学院《建筑意匠》2024-2025学年第一学期期末试卷
- 《电器火灾的防范》课件
- 路灯CJJ检验批范表
- 农村厕所改造合同书完整版
- 建筑工程安全管理提升方案
- 对新员工保密基本培训
- 民用无人机操控员执照(CAAC)考试复习重点题库500题(含答案)
- GB/T 6553-2024严酷环境条件下使用的电气绝缘材料评定耐电痕化和蚀损的试验方法
- 2024年苏教版四年级数学上册全册教案
- 2024新科普版英语七年级上单词默写表
- 金融行业高质量发展专题研究报告
- 知识题库-人社练兵比武竞赛测试题及答案(五)
评论
0/150
提交评论