EDA技术教程课件_第1页
EDA技术教程课件_第2页
EDA技术教程课件_第3页
EDA技术教程课件_第4页
EDA技术教程课件_第5页
已阅读5页,还剩334页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、电子技术电子技术 合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术教程1 电子技术 主讲教师:徐太龙 合肥学院电子信息与电气工程系 第3版 电子技术电子技术 合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术教程2 教学内容 半导体物理基础知识和数字电路相关的器件知识; VHDL硬件描述语言。 电子技术电子技术 合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术教程3 考核方式 学习总量:学习总量:140 理论:40 实验:40 自主学习:60 考核方式:考核方式:考核成绩=期终笔试(40%)+ 学习笔

2、记(10%)+ 实验 (15%)+ 过程考核N(35%) N=3【过程测试2次15%、设计项目20%】 合格要求:合格要求:各项成绩都以60分(及格)为合格,卷面考试未达60分参加 补考,其它各项通过重做,直到及格。 学习笔记学习笔记:重点检查学习过程中学生对学习内容的总结能力和领悟能力。 电子技术电子技术 合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术教程4 1潘松, 黄继业. EDA技术实用教程VHDL版(第五版). 科学出版社. 2Volnei A. Pedroni 著, 乔庐峰, 王志功 等译. VHDL数字电路设计教程. 电子工 业出版社. 3 百度

3、文库相关资料. 注:本课件部分内容源于百度文库中其他教师的工作 参考资料 电子技术电子技术 合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术教程5 1 王毓银. 数字电路逻辑设计(第2版). 高等教育出版社. 2 韩焱. 数字电子技术基础(第2版).电子工业出版社. 3冯军,谢嘉奎.电子线路(线性部分)第五版.高等教育出版社. 复习资料 电子技术电子技术 合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术教程6 第1讲 引言 电子技术电子技术 合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术教程7 本

4、章重点难点 使用硬件描述语言的原因; 使用EDA工具的原因; 数字集成电路设计流程; FPGA供应商及其EDA平台; 硬件描述语言与软件语言的区别; 英文缩略词的中英文含义。 电子技术电子技术 合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术教程8 低头族 手机控 人生三屏 电子技术电子技术 合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术教程9 电子信息类专业的目标之一 让电子设备系统工作 系统包括:软件和硬件 电子技术电子技术 合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术教程10 电子设备系

5、统的硬件部分 硬件部分包括:板级设计和芯片级设计 电子技术电子技术 合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术教程11 电子技术电子技术 合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术教程12 cm mm 电子技术电子技术 合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术教程13 um nm 电子技术电子技术 合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术教程14 电子技术电子技术 合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA

6、技术教程15 普通头发的直径60-90um 芯片内导线的宽度为28nm 电子技术电子技术 合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术教程16 微电子技术就是使电子元器件和电子设备微小型化的技术,其核心 是集成电路。因此,微电子技术通常也被称为集成电路技术。 微电子技术的兴起和迅猛发展促进和推动了计算机技术、通信技术 等信息技术的快速发展。可以毫不夸张地说,没有微电子技术,就没有 今天的信息社会。微电子技术是信息社会的基础。 电子技术电子技术 合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术教程17 集成电路(Integrat

7、ed Circuit, IC)就是通过一系列特定的加工工艺,将晶体 管等有源器件(简称器件)以及电阻、电容等无源器件(简称元件),按照一 定的电路互连关系,“集成”在一块半导体晶片上,封装在一个外壳内,执行 特定的电路或系统功能。集成电路通常也被称作芯片。一块半导体晶圆片可以 加工成千上万颗芯片,芯片很小,却可以用晶圆片加工的方式实现规模化生产。 集成电路具有元器件密度高、体积小、重量轻、功耗低、成本低以及可靠 性高等诸多优点,实现了元器件、电路和系统的完美结合。 集成电路的发明和应用,是人类二十世纪最重要的科技进步之一,它开辟 了电子元器件及电子设备微小型化的新纪元。集成电路对国民经济建设、

8、国防 建设以及社会发展具有至关重要的战略地位和不可替代的核心关键作用。如果 没有集成电路,就没有今天的信息社会,集成电路是信息社会的基础。它是现 代科学技术的重要组成部分,是改造和提升传统产业的核心技术。 电子技术电子技术 合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术教程18 芯片级设计 模拟电路设计数字电路设计 电子技术电子技术 合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术教程19 数字电路设计 传统手工组合逻辑电路设计流程 1. 根据逻辑功能要求,进行逻辑抽象,列出真值表。 2. 根据真值表写出逻辑函数表达式,或者直接

9、画出函数的卡诺图。 3. 把逻辑函数表达式化简或变换,得到所需的最简表达式或转换成需 要的形式。 4. 按照最简表达式或变换后的形式,画出逻辑电路图。 电子技术电子技术 合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术教程20 数字电路设计 传统手工同步时序逻辑电路设计流程 1. 建立原始状态转换图或状态转换表。 2. 状态化简。 3. 状态分配。 4. 选定触发器类型,求输出方程和驱动方程。 5. 检查自启动能力。 6. 根据输出方程和驱动方程画出逻辑电路图。 电子技术电子技术 合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术教

10、程21 数字电路设计 传统手工组合逻 辑电路设计 流程 传统手工设计流程传统手工设计流程 逻辑功能要求 真值表 逻辑函数表达式 化简与变换 逻辑图 以设计2选1数据选择器为例。当s等于1时,输出 y等于输入a;当s等于0时,输出y等于输入b。 0110 0011 00011110 0 1 ab s 与或表达式:y=as+bs 4选1数据选择器如何设计? 传统手工设计流程无能为力 引入现代EDA设计流程 电子技术电子技术 合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术教程22 解决思路 4选1数据选择器 如何设计? 1*9=9 99999*98567=? C语言

11、编程 硬件描述语言 计算机辅助 电子技术电子技术 合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术教程23 实体名,设计者自己取 ENTITY mux21a IS PORT ( a, b, s : IN BIT; y: OUT BIT); END ENTITY mux21a; ARCHITECTURE bhv OF mux21a IS BEGIN PROCESS (a, b, s) BEGIN IF (s=1) THEN y=a; ELSE y=b; END IF; END PROCESS; END ARCHITECTURE bhv; 进程语句起始 实体 结构体

12、 VHDL设计实例 2选选1多路选择器的多路选择器的VHDL描述描述 电子技术电子技术 合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术教程24 硬件描述语言 硬件描述语言硬件描述语言(Hardware Description Language, HDL)一种用于描述数字电 路功能或行为的语言。可以描述硬件电路的功能、信号连接关系及定时关 系的语言。它可以比电路原理图更有效地表示硬件电路的特性。目的是提 高电路设计效率,缩短设计周期,减小设计成本,可在芯片制造前进行有 效的仿真和错误检测。 优点优点: HDL设计的电路能获得非常抽象级的描述。如基于RTL(Reg

13、ister Transfer Level)描述的IC,可用于不同的工艺。 HDL设计的电路,在设计的前期,就可以完成电路的功能级的验证。 HDL设计的电路类似于计算机编程。 常用的HDL语言:VHDL和Verilog HDL 电子技术电子技术 合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术教程25 VHDL描述语言 VHDL:VHSIC Hardware Description Language。 VHSIC:Very High Speed Integrated Circuit VHDL是美国国防部在20世纪80年代初为实现其高速集成电路硬件VHSIC 计划提

14、出的描述语言; IEEE从1986年开始致力于VHDL标准化工作,融合了其它ASIC芯片制造商 开发的硬件描述语言的优点,先后有VHDL87 (IEEE.std_1164/87) , VHDL93 (IEEE.std_1164/93) 和含有多值逻辑的IEEE.std_1164标准。 1995年,我国国家技术监督局推荐VHDL作为电子设计自动化硬件描述语 言的国家标准。 电子技术电子技术 合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术教程26 VHDL描述语言 VHDL优点优点 覆盖面广,系统硬件描述能力强,是一个多层次的硬件描述语言; VHDL语言具有良好的

15、可读性,既可以被计算机接受,也容易被人们所理 解; VHDL语言可以与工艺无关编程。 VHDL语言已作为一种IEEE的工业标准,便于使用、交流和推广。 电子技术电子技术 合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术教程27 VHDL描述语言 VHDL设计硬件电路设计硬件电路 所谓用VHDL设计是指由设计者编写代码,然后用模拟器验证其 功能,再把这些代码综合成一个与工艺无关的网表,即翻译成 由门和触发器等基本逻辑原件组成的原理图(门级电路),最 后完成硬件设计。 电子技术电子技术 合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术

16、教程28 VHDL描述语言 VHDL与普通计算机软件语言的区别与普通计算机软件语言的区别 电子技术电子技术 合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术教程29 数字电路设计 EDA设计流程设计流程 自底向上设计方法 自顶向下设计方法 IP核:软核、固核 和硬核 电子技术电子技术 合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术教程30 FPGA FPGA(Field Programmable Gate Array)现场可编程门阵列,是一 种可编程的IC芯片。 FPGA的主要5大生产厂家: Altera阿尔特拉是世界老牌的可编

17、程逻辑器件的厂家,是可编程 逻辑器件的发明者; Xilinx赛灵思是FPGA的发明者,拥有世界一半以上的市场; Actel一直效力于美国军工和航空领域,并禁止对外出售。目前 开始逐渐转向民用和商用; Lattice莱迪思 Atmel艾特梅尔 电子技术电子技术 合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术教程31 FPGA 两大FPGA供应商的EDA工具开发平台: Altera:Quartus II Xilinx: ISE 电子技术电子技术 合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术教程32 作业 1-2 1-3 电子技术

18、电子技术 合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术教程33 第2讲 组合逻辑电路的VHDL描述 电子技术电子技术 合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术教程34 组合电路的组合电路的VHDL描述描述 2选选1数据选择器的数据选择器的VHDL描述描述 2选1数据选择器逻辑符号 VHDL代码的实体 2选1数据选择器逻辑图 VHDL代码的结构体 ENTITY mux21a IS PORT (a, b, s : IN BIT; y : OUT BIT); END ENTITY mux21a; ARCHITECTURE b

19、hv OF mux21a IS BEGIN PROCESS (a, b, s) BEGIN IF (s=1) THEN y=a; ELSE y=b; END IF; END PROCESS; END ARCHITECTURE bhv; 什么是数据 选择器? 实体 结构体 实体名,设计者自己取 进程语句起始 结构体名 赋值符号 电子技术电子技术 合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术教程35 组合电路的组合电路的VHDL描述描述 2选选1数据选择器的数据选择器的VHDL描述描述 在Altera公司的QuartusII 9.1 (32bit)平台下仿真的结

20、果 电子技术电子技术 合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术教程36 组合电路的组合电路的VHDL描述描述 半加器的半加器的VHDL描述描述 半加器的真值表 半加器的电路结构图 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY h_adder IS PORT ( a : IN STD_LOGIC; b : IN STD_LOGIC; so: OUT STD_LOGIC; co: OUT STD_LOGIC); END ENTITY h_adder; ARCHITECTURE bhv OF h_adder

21、 IS BEGIN SO=A XOR B; CO=A AND B; END ARCHITECTRUE bhv; 设计库 和程序 包调用 电 路 模 块 端 口 说 明 和 定 义 电 路 模 块 功 能 描述 VHDL 实体描 述部分 VHDL 结构体 描述部 分 VHDL 表述的 半加器 完整电 路模块 程序代 码 什么是半 加器? 逻辑操作符 电子技术电子技术 合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术教程37 组合电路的组合电路的VHDL描述描述 VHDL代码的组成代码的组成 库(LIBRARY)声明:列出当前设计中需要用到的所有库文件,如ieee,

22、 std和work等; 实体(ENTITY):定义了电路的输入/输出引脚; 结构体(ARCHITECTURE):包含的代码描述了电路要实现的功能。 电子技术电子技术 合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术教程38 组合电路的组合电路的VHDL描述描述 VHDL代码的组成代码的组成 库声明库声明 库的基本组成部分 库是一些常用代码的集合,将电路设计中经常使用的一 些代码存放到库中有利于设计的重用和代码共享,同时 可以使代码结构更加清晰。 ieee库库 s t d _ l o g i c _ 11 6 4 : 定 义 S T D _ L O G I C (

23、 8 值 ) 和 STD_ULOGIC(9值)多值逻辑系统。 std_logic_arith:定义SIGNED(有符号)和UNSIGNED(无符号)数据类型和相关的算 术运算和比较运算操作。包含数据类型转换函数。 电子技术电子技术 合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术教程39 VHDL代码的组成代码的组成 库声明库声明 组合电路的组合电路的VHDL描述描述 std库库:VHDL设计环境的标准资源库,包括数据类型和输入/输出文本等内容。std库 中存放有standard和textio。使用std库不需要进行任何声明。 work库库:当前工作库,存放当前

24、设计的所有代码,使用work库不需要进行任何声明。 std_logic_signed:内部包含一些函数,这些函数可以使STD_LOGIC_VECTOR类型 的数据像SIGNED类型的数据一样进行运算操作。 std_logic_unsigned:内部包含一些函数,这些函数可以使STD_LOGIC_VECTOR类 型的数据像UNSIGNED类型的数据一样进行运算操作。 电子技术电子技术 合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术教程40 组合电路的组合电路的VHDL描述描述 VHDL代码的组成代码的组成 库声明库声明 库声明的格式: LIBRARY libra

25、ry_name; USE library_name.package_name.package_parts; 例如: LIBRARY ieee; USE ieee.std_logic_1164.all; ; 表示一个语句和声明的结束。表示一个语句和声明的结束。 - 表示注释。表示注释。 注意注意VHDL不分大小写,建议关键字(不分大小写,建议关键字(Keyword)大写,其余小写。)大写,其余小写。 电子技术电子技术 合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术教程41 组合电路的组合电路的VHDL描述描述 VHDL代码的组成代码的组成 实体实体 实体(ENT

26、ITY)用来描述电路的所有输入/输出引脚,其语法格式如下: ENTITY entity_name IS PORT ( port_name: signal_mode signal-type; port_name: signal_mode signal-type; .); END ENTITY entity_name 标识符,取名规则 端口模式:IN,OUT,INOUT,BUFFER四种 信号类型:BIT,STD_LOGIC等 电子技术电子技术 合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术教程42 组合电路的组合电路的VHDL描述描述 VHDL代码的组成代码的组

27、成 结构体结构体 结构体(ARCHITECTURE)中的代码用来描述电路行为和功能,其语法格式如下: ARCHITECTURE architecture_name OF entity_name IS declarations BEGIN (code) END ARCHITECTURE architecture_name ; 声明部分,用于常量、信号和元件例 化等声明。 代码部分,用于描述电路的行为功能。 电子技术电子技术 合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术教程43 组合电路的组合电路的VHDL描述描述 VHDL代码文件的存盘与书写格式要求代码文件的

28、存盘与书写格式要求 文件存盘文件存盘 在Quartus II中,要求VHDL程序的文件名必须与该程序的模块名(实 体名)一致,文件取名大小写不敏感,且必须以.vhd结尾。文件存放路径 不要包含中文字符,也不要放在根目录内或桌面上。 书写格式书写格式 合理使用键盘上面的Tab键,同一层次的语句对齐,低一层次向右缩 进。做到层次分明、条理清晰。注意加入注释提高可读性。 电子技术电子技术 合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术教程44 组合电路的组合电路的VHDL描述描述 VHDL预定义的数据类型预定义的数据类型 预定义数据类型经常使用,所以放在库的包集中,

29、方便重复使用预定义数据类型经常使用,所以放在库的包集中,方便重复使用 std库的standard包集:定义了位(BIT)、布尔(BOOLEAN)、整数(INTEGER)和实 数(REAL)数据类型。 ieee库的std_logic_1164包集:定义了标准逻辑STD_LOGIC和STD_ULOGIC数据 类型。 ieee库的std_logic_arith包集:定义了SIGNED和UNSIGNED数据类型,还有数据 类型转换函数。 ieee库的std_logic_signed和std_logic_unsigned包集:包含一些函数,这些函数可以 使STD_LOGIC_VECTOR类型的数据像SI

30、GNED和UNSIGNED数据类型一样进行 运算操作。 电子技术电子技术 合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术教程45 组合电路的组合电路的VHDL描述描述 VHDL预定义的数据类型预定义的数据类型 位位(BIT)和位矢量和位矢量(BIT_VECTOR) 例如例如 SIGNAL x: BIT; -将x声明为一个位宽为1的BIT类型的信号 SIGNAL y: BIT_VECTOR(3 DOWNTO 0); -将y声明为一个位宽为4的位矢量,其中最左边的一位是最高位(MSB: Most Significant Bit) 使用=操作符给信号赋值 x=1;

31、-x是位宽为1,值为1的信号。注意,当位宽为1时,位值放在单引号中 y=“0111”; -y是位宽为4,值为“0111”的信号。注意,当位宽大于1时,位矢量值放 在双引号中, (MSB为0) 位值只能取0 或1 电子技术电子技术 合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术教程46 组合电路的组合电路的VHDL描述描述 VHDL预定义的数据类型预定义的数据类型 标准逻辑标准逻辑(STD_LOGIC)和和 标准逻辑矢量标准逻辑矢量(STD_LOGIC_VECTOR) 例如例如 SIGNAL x: STD_LOGIC; -将x声明为一个位宽为1的STD_LOGI

32、C类型的信号 SIGNAL y: STD_LOGIC _VECTOR(3 DOWNTO 0):= “0111”; -将y声明为一个位宽为4的位矢量,其中最左边的一位是MSB 使用:=操作符给信号赋初始值 八种取值:三种可综合 X表示强未知的;0表示强逻辑0; 1表示强逻辑1;Z表示高阻态; W表示弱未知的;L表示弱逻辑0; H表示弱逻辑1; -表示忽略。 电子技术电子技术 合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术教程47 组合电路的组合电路的VHDL描述描述 VHDL预定义的数据类型预定义的数据类型 有符号数有符号数(SIGNED)和无符号数和无符号数(

33、UNSIGNED) 例如例如 SIGNAL x: SIGNED (3 DOWNTO 0) ;-可以表示整数和负数。 SIGNAL y: UNSIGNED (3 DOWNTO 0) ;-只能表示大于等于零的数。 x=“0101”;-表示十进制数5 x=“1101”;-表示十进制数-3 y=“0101”;-表示十进制数5 y=“1101”;-表示十进制数13 注:只有在代码开始部分声明ieee库中的包集std_logic_arith,才能使用有符号和无符 号数;有符号和无符号数主要是为了进行算术运算,也支持比较运算操作,但不支 持逻辑运算。 电子技术电子技术 合肥学院电子信息与电气工程系徐太龙合肥

34、学院电子信息与电气工程系徐太龙 EDA技术教程48 组合电路的组合电路的VHDL描述描述 VHDL预定义的数据类型预定义的数据类型 有符号数有符号数(SIGNED)和无符号数和无符号数(UNSIGNED) 例如例如 LIBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.std_logic_arith.all;-必须声明这个包集才能使用有符号和无符号数 . SIGNAL a: IN SIGNED (3 DOWNTO 0); SIGNAL b: IN SIGNED (3 DOWNTO 0); SIGNAL y: OUT SIGNED (3 DOWN

35、TO 0); y=a+b; -合法(支持算术运算) y=a AND b; -不合法(不支持逻辑运算) 电子技术电子技术 合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术教程49 组合电路的组合电路的VHDL描述描述 VHDL预定义的数据类型预定义的数据类型 有符号数有符号数(SIGNED)和无符号数和无符号数(UNSIGNED) 例如例如 LIBRARY ieee; USE ieee.std_logic_1164.all; -不需要声明其他包集 . SIGNAL a: IN STD_LOGIC _VECTOR (3 DOWNTO 0); SIGNAL b: IN

36、 STD_LOGIC _VECTOR (3 DOWNTO 0); SIGNAL y: OUT STD_LOGIC _VECTOR (3 DOWNTO 0); y=a+b; -不合法( STD_LOGIC _VECTOR不支持算术运算) y=a AND b; -合法 (支持逻辑运算) 电子技术电子技术 合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术教程50 组合电路的组合电路的VHDL描述描述 VHDL预定义的数据类型预定义的数据类型 有符号数有符号数(SIGNED)和无符号数和无符号数(UNSIGNED) 例如例如 LIBRARY ieee; USE ieee

37、.std_logic_1164.all; USE ieee.std_logic_unsigned.all; -必须声明这个包集 . SIGNAL a: IN STD_LOGIC _VECTOR (3 DOWNTO 0); SIGNAL b: IN STD_LOGIC _VECTOR (3 DOWNTO 0); SIGNAL y: OUT STD_LOGIC _VECTOR (3 DOWNTO 0); y=a+b; -合法(声明std_logic_unsigned和std_logic_signed后支持算术运算) y=a AND b; -合法(支持逻辑运算) 电子技术电子技术 合肥学院电子信息与

38、电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术教程51 组合电路的组合电路的VHDL描描 述述 VHDL预定义的数据类型预定义的数据类型 其他数据类型其他数据类型 布尔类型(BOOLEAN):只有两种取值,“真”(1)True或“假”(0)False; 整数( INTEGER ) :32位的整数(取值范围从-2147483647到2147483647 ) 自然数(NATURAL):非负的整数(取值范围从0到2147483647 ) 实数(REAL):实数的取值范围从-1.0 1038到1.0 1038,它是不可综合的。 物理量字符(Physical literal):用来表示诸

39、如时间和电压等物理量。在仿真时可以使 用,但不可综合。 字符型(CHARACTER):可以是单个或一串ASCII字符。 电子技术电子技术 合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术教程52 组合电路的组合电路的VHDL描述描述 单个位和位矢量单个位和位矢量 BIT和BIT_VECTOR,STD_LOGIC和STD_LOGIC_VECTOR的区别 ENTITY and2 IS PORT (a, b: IN BIT_VECTOR(0 TO 3); x: OUT BITBIT_VECTOR(0 TO 3); END and2; ARCHITECTURE and2

40、 OF and2 IS BEGIN x=a AND b; END and2; ENTITY and2 IS PORT (a, b: IN BIT; x: OUT BIT); END and2; ARCHITECTURE and2 OF and2 IS BEGIN x=a AND b; END and2; 电子技术电子技术 合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术教程53 组合电路的组合电路的VHDL描描 述述 运算操作符运算操作符 赋值运算符 逻辑运算符 算术运算符 关系运算符 移位运算符 并置运算符 电子技术电子技术 合肥学院电子信息与电气工程系徐太龙

41、合肥学院电子信息与电气工程系徐太龙 EDA技术教程54 组合电路的组合电路的VHDL描描 述述 赋值运算符赋值运算符 给矢量中的某些位赋值,或对某些位之外的其他位(常用OTHERS表示)赋值。 例如例如 SIGNAL x: STD_LOGIC; VARIABLE y: STD_LOGIC_VECTOR(3 DOWNTO 0); -最左边的位是MSB SIGNAL w: STD_LOGIC_VECTOR(0 TO 7); -最右边的位是MSB x=1; -通过=将值 1赋给信号x y:=“0000”; -通过:=将值“0000”赋给变量y w=“10000000”; -最低位是1,其他位是0 w

42、 1, OTHER = 0); -最低位是1,其他位是0 区别区别 运算操作符运算操作符 电子技术电子技术 合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术教程55 组合电路的组合电路的VHDL描描 述述 逻辑运算符逻辑运算符 操作数操作数 BIT BIT_VECTOR STD_LOGIC STD_LOGIC_VECTOR NOT 取反 AND 与 OR 或 NAND 与非 NOR 或非 XOR 异或 XNOR 同或 优先级优先级 运算操作符运算操作符 例如例如 y=NOT a AND b; - a b y=NOT (a AND b) ; - a b y= a

43、NAND b ; - a b 电子技术电子技术 合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术教程56 组合电路的组合电路的VHDL描描 述述 算术运算符算术运算符 操作数操作数 INTEGER SIGNED UNSIGNED REAL + 加 - 减 * 乘 / 除 * 指数运算 MOD 取模 REM 取余 ABS 取绝对值 注意注意 如果声明了ieee库中的包集std_logic_signed和std_logic_unsigned就可以对 STD_LOGIC_VECTOR类型的数据进行加法和减法运算。 运算操作符运算操作符 电子技术电子技术 合肥学院电子信

44、息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术教程57 组合电路的组合电路的VHDL描描 述述 关系运算符关系运算符 两边操作数的数据类型必须相同,适用于所有数据类型两边操作数的数据类型必须相同,适用于所有数据类型 = 等于 /= 不等于 大于 = 大于等于 运算操作符运算操作符 电子技术电子技术 合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术教程58 组合电路的组合电路的VHDL描描 述述 移位操作符移位操作符 sll 逻辑左移 -数据左移,右端空出来的位置填充 0 srl 逻辑右移 -数据右移,左端空出来的位置填充 0 sla 算术左移

45、 -数据左移,同时赋值最右端的位,在数据左移操作后填充在右端 空出的位置上 sra 算术右移 -数据右移,同时赋值最左端的位,在数据右移操作后填充在左 端空出的位置上 rol 循环逻辑左移 -数据左移,同时从左端移出的位填充在右端空出的位置上 ror 循环逻辑右移 -数据右移,同时从右端移出的位填充在左端空出的位置上 必须是必须是BIT_VECTOR 必须是必须是INTEGER 运算操作符运算操作符 电子技术电子技术 合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术教程59 组合电路的组合电路的VHDL描描 述述 移位操作符移位操作符 例例 令令x=“01001

46、”, 那么那么 y = x sll 2; -逻辑左移两位: y =“00100” y = x sla 2; -算术左移两位: y =“00111” y = x srl 3; -逻辑右移三位: y =“00001” y = x sra 3; -算术右移三位: y =“00001” y = x rol 2; -循环逻辑左移两位: y =“00101” y = x ror 2; -循环逻辑右移两位: y =“01010” 运算操作符运算操作符 电子技术电子技术 合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术教程60 组合电路的组合电路的VHDL描描 述述 并置并置运

47、算符运算符 用于位的拼接,其操作数和逻辑运算操作数一致用于位的拼接,其操作数和逻辑运算操作数一致 那么 z= “11000000” z= (1 , 1, 0, 0, 0, 0, 0, 0 ); 那么 z= “11000000” 运算操作符运算操作符 电子技术电子技术 合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术教程61 组合电路的组合电路的VHDL描描 述述 运算操作符运算操作符 操作符类型操作符类型操作符操作符操作数类型操作数类型 赋值运算任意数据类型 逻辑运算NOT, AND, NAND, OR, NOR, XOR, XNOR BIT, BIT_VECT

48、OR, STD_LOGIC, STD_LOGIC_VECTOR 算术运算+, -, *, /, *, mod, rem, abs(不可综合) INTEGER, SIGNED, UNSIGNED 比较运算=, /=, , =任意数据类型 移位运算sll, srl, sla, sra, rol, ror BIT_VECTOR 并置运算 USE IEEE.STD_LOGIC_1164.ALL; ENTITY mux41a IS PORT (a, b, c, d, s0, s1: IN STD_LOGIC; y: OUT STD_LOGIC); END ENTITY mux41a; ARCHITECT

49、URE bhv OF mux41a IS SIGNAL s: STD_LOGIC _VECTOR (1 DOWNTO 0); BEGIN s=s1 PROCESS (s) BEGIN IF ( s=“00”) THEN y=a; ELSIF (s=“01”) THEN y=b; ELSIF (s=“10”) THEN y=c; ELSE y=d; END IF; END PROCESS; END ARCHITECTURE bhv; 有进程语句有进程语句 注意每句结尾的符号注意每句结尾的符号 电子技术电子技术 合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术教程6

50、6 组合电路的组合电路的VHDL描述描述 4选选1数据选择器的数据选择器的VHDL描述描述 CASE语句语句 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY mux41a IS PORT (a, b, c, d, s0, s1: IN STD_LOGIC; y: OUT STD_LOGIC); END ENTITY mux41a; ARCHITECTURE bhv OF mux41a IS SIGNAL s: STD_LOGIC _VECTOR (1 DOWNTO 0); BEGIN s y y y y NULL; END CASE; END

51、 PROCESS; END ARCHITECTURE bhv; 有进程语句有进程语句 注意每句结尾的符号注意每句结尾的符号 电子技术电子技术 合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术教程67 组合电路的组合电路的VHDL描述描述 4选选1数据选择器的数据选择器的VHDL描述描述 WHEN_ELSE条件信号赋值语句条件信号赋值语句 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY mux41a IS PORT (a, b, c, d, s0, s1: IN STD_LOGIC; y: OUT STD_LOG

52、IC); END ENTITY mux41a ; ARCHITECTURE bhv OF mux41a IS SIGNAL s: STD_LOGIC _VECTOR (1 DOWNTO 0); BEGIN s=s1 y=a WHEN s= “00” ELSE b WHEN s= “01” ELSE c WHEN s=“10” ELSE d ; END ARCHITECTURE bhv; 无进程语句无进程语句 注意每句结尾的符号注意每句结尾的符号 电子技术电子技术 合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术教程68 组合电路的组合电路的VHDL描述描述 4选

53、选1数据选择器的数据选择器的VHDL描述描述 选择信号赋值语句选择信号赋值语句 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY mux41a IS PORT (a, b, c, d, s0, s1: IN STD_LOGIC; y: OUT STD_LOGIC); END ENTITY mux41a; ARCHITECTURE bhv OF mux41a IS SIGNAL s: STD_LOGIC _VECTOR (1 DOWNTO 0); BEGIN s=s1 WITH S SELECT y=a WHEN s= “00” , b WHEN

54、 s= “01” , c WHEN s=“10” , d WHEN s=“11” ; END ARCHITECTURE bhv; 无进程语句无进程语句 注意每句结尾的符号注意每句结尾的符号 电子技术电子技术 合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术教程69 组合电路的组合电路的VHDL描描 述述 顺序代码和并发代码顺序代码和并发代码 在C语言中,语句都是逐行顺序执行的,称之为程序。 硬件描述语言为了能反映实际电路的功能,本质上是并发执行的,称之 为代码。 但是,在VHDL硬件描述语言的PROCESS, FUNCTION, PROCEDURE之 内的代码都

55、是顺序执行的,称之为顺序代码(语句)。然而,当作为一个 整体时它们与外部的其他代码之间又都是并发执行的。 VHDL代码分为代码分为:顺序代码(语句)和并行(发)代码(语句)也称数据流代码 电子技术电子技术 合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术教程70 组合电路的组合电路的VHDL描描 述述 顺序代码顺序代码 顺序代码,也就是在PROCESS、FUNCTION和PROCEDURE内部出现的 语句。包括IF、CASE、WAIT和LOOP语句。 进程(进程(PROCESS):): 在VHDL中,进程(PROCESS)内部的语句是一种顺序描述语句,其 内部经

56、常使用IF、CASE、WAIT和LOOP语句。 PROCESS具有敏感信号列表(sensitivity list),或使用WAIT语句进行 执行条件的判断。 PROCESS必须包含在主代码段中,当敏感信号列表中的某个信号发生 变化时(或当WAIT语句的条件得到满足时),其内部的代码就顺序执 行一次。 电子技术电子技术 合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术教程71 组合电路的组合电路的VHDL描描 述述 进程(进程(PROCESS) label: PROCESS (sensitivity list) VARIABLE name: type range

57、:=initial_value BEGIN (顺序执行的代码) END PROCESS label; 变量声明部变量声明部 分是可选的,分是可选的, 必须定义在必须定义在 该位置处该位置处 变量的初始值是不可综变量的初始值是不可综 合的,只是在仿真过程合的,只是在仿真过程 中使用。中使用。 可选,主要是增强代码的可读性。标识符的命名规则。可选,主要是增强代码的可读性。标识符的命名规则。 表示可选,表示可选,( )表示必须有。表示必须有。 顺序代码顺序代码 电子技术电子技术 合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术教程72 组合电路的组合电路的VHDL描描

58、 述述 IF语句语句 必须放在进程中必须放在进程中 IF 条件句 THEN 顺序语句 END IF; IF 条件句 THEN 顺序语句 ELSE 顺序语句 END IF; IF 条件句 THEN IF 条件句 THEN . . END IF; END IF; IF 条件句 THEN 顺序语句 ELSIF 条件句 THEN 顺序语句 ELSE 顺序语句 END IF; 顺序代码顺序代码 电子技术电子技术 合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术教程73 组合电路的组合电路的VHDL描述描述 4选选1数据选择器的数据选择器的VHDL描述描述 IF语句语句 L

59、IBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY mux41a IS PORT (a, b, c, d, s0, s1: IN STD_LOGIC; y: OUT STD_LOGIC); END ENTITY mux41a ); ARCHITECTURE bhv OF mux41a IS SIGNAL s: STD_LOGIC _VECTOR (1 DOWNTO 0); BEGIN s=s1 PROCESS (s) BEGIN IF ( s=“00”) THEN y=a; ELSIF (s=“01”) THEN y=b; ELSIF (s=“10

60、”) THEN y=c; ELSE y 顺序语句;顺序语句;顺序语 句; WHEN 条件表达式 = 顺序语句;顺序语句;顺序语 句; . WHEN OTHERS = 顺序语句; NULL的使用的使用 顺序代码顺序代码 电子技术电子技术 合肥学院电子信息与电气工程系徐太龙合肥学院电子信息与电气工程系徐太龙 EDA技术教程75 组合电路的组合电路的VHDL描述描述 4选选1数据选择器的数据选择器的VHDL描述描述 CASE语句语句 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY mux41a IS PORT (a, b, c, d, s0, s1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论