第3章VHDL设计初步修改EDA_第1页
第3章VHDL设计初步修改EDA_第2页
第3章VHDL设计初步修改EDA_第3页
第3章VHDL设计初步修改EDA_第4页
第3章VHDL设计初步修改EDA_第5页
已阅读5页,还剩70页未读 继续免费阅读

下载本文档

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

文档简介

EDA技术实用教程第3章

VHDL设计初步

3.1组合电路的VHDL描述

3.1.12选1多路选择器及其VHDL描述1

3.1组合电路的VHDL描述

3.1.12选1多路选择器及其VHDL描述1

3.1组合电路的VHDL描述

3.1.12选1多路选择器及其VHDL描述1

3.1组合电路的VHDL描述

3.1.12选1多路选择器及其VHDL描述1

1.实体表达设计流程简介3.1组合电路的VHDL描述

2.实体名

e_name表示实体名,是标识符,可由设计者自定。

最好根据相应电路功能确定。用英文字母开头,后面可以用数字和下划线(_)。3.端口语句和端口信号名

PORT();p_name为端口名,可由设计者自定。3.1组合电路的VHDL描述

4.端口模式(1)IN:输入端口。(2)OUT:输出端口。(3)INOUT:双向端口。(4)BUFFER:缓冲端口。5.数据类型

VHDL为强类型语言。任何一种数据对象的应用都必须严格限定其取值范围和数值类型。相关的数据类型有INTEGER类型、BOOLEAN类型,STD_LOGIC类型和BIT类型等。3.1组合电路的VHDL描述

6.结构体表达

7.赋值符号和数据比较符号

y<=a中,“<=”表示输入端口a的数据项输出端口y输出,或解释为信号a向信号y赋值。VHDL要求赋值符号“<=”两边的信号的数据类型必须一致。3.1组合电路的VHDL描述

8.WHEN_ELSE条件信号赋值语句9.关键字

VHDL中预定义的有特殊含义的英文语句,一般会以特定颜色显示。3.1组合电路的VHDL描述

10.标识符

设计者在VHDL程序中自定义的,例如实体名、端口名、结构体名等11.规范的程序书写格式可以一行写多条语句,也可以分行书写。良好的、规范的源程序书写习惯是高效的电路设计者所必备的。规范的书写格式能使自己或别人更容易阅读和检查错误。规范的书写格式参照例3-1。12.文件取名和存盘文件名可以由设计者任意给定,但文件后缀扩展名必须是“.vhd”,建议程序的文件名尽量与该程序的模块名一致。对于QuartusII,则必须满足这一规定!此外,VHDL程序必须存入某文件夹中(非中文文件夹名)。不能存在根目录或桌面上。3.1组合电路的VHDL描述

3.1.22选1多路选择器及其VHDL描述2

3.1组合电路的VHDL描述

3.1.22选1多路选择器及其VHDL描述2

1.逻辑操作符3.1组合电路的VHDL描述

3.1.22选1多路选择器及其VHDL描述2

2.标准逻辑位数据类型STD_LOGIC

3.1组合电路的VHDL描述

3.1.22选1多路选择器及其VHDL描述2

3.设计库和标准程序包4.信号定义和数据对象

signalname:数据类型;相当于电路中的节点或连线。STD_LOGIC类型在IEEE库中的STD_LOGIC_1164程序包中定义,需要声明。3.1组合电路的VHDL描述

3.1.32选1多路选择器及其VHDL描述3

3.1组合电路的VHDL描述

3.1.32选1多路选择器及其VHDL描述3

1.条件语句2.进程语句和顺序语句

IF_THEN_ELSE_ENDIF;顺序语句必须放在进程语句中PROCESS(敏感信号)…ENDPROCESS

3.1组合电路的VHDL描述

3.1.4半加器及其VHDL的描述

3.1组合电路的VHDL描述

3.1.4半加器及其VHDL的描述

3.1组合电路的VHDL描述

3.1.4半加器及其VHDL的描述

3.1组合电路的VHDL描述

3.1.4半加器及其VHDL的描述

1.CASE语句3.1组合电路的VHDL描述

3.1.4半加器及其VHDL的描述

2.标准逻辑矢量数据类型

3.1组合电路的VHDL描述

3.1.4半加器及其VHDL的描述

3.并置操作符

3.1组合电路的VHDL描述

3.1.5一位二进制全加器及其VHDL描述3.并置操作符

3.1组合电路的VHDL描述

3.1.5一位二进制全加器及其VHDL描述3.并置操作符

3.1组合电路的VHDL描述

3.1.5一位二进制全加器及其VHDL描述3.并置操作符

3.1组合电路的VHDL描述

3.1.6VHDL例化语句

3.2基本时序电路的VHDL描述3.2.1D触发器的VHDL描述

3.2基本时序电路的VHDL描述3.2.1D触发器的VHDL描述

1.上升沿检测表达式和信号属性函数EVENT2.不完整条件语句与时序电路3.2基本时序电路的VHDL描述3.2基本时序电路的VHDL描述3.2基本时序电路的VHDL描述3.2.2VHDL实现时序电路的不同表述

3.2基本时序电路的VHDL描述3.2.2VHDL实现时序电路的不同表述

3.2基本时序电路的VHDL描述3.2.2VHDL实现时序电路的不同表述

3.2基本时序电路的VHDL描述3.2.2VHDL实现时序电路的不同表述

3.2基本时序电路的VHDL描述3.2.3异步时序电路设计3.2基本时序电路的VHDL描述3.2.3异步时序电路设计3.3计数器的VHDL设计

3.3计数器的VHDL设计

3.3.14位二进制加法计数器设计Buffer只接收内部信号,不接收外部信号Out类型端口不能在与内部信号运算

3.3.2整数类型3.3计数器的VHDL设计

3.3.3计数器的其他VHDL表达方式3.3计数器的VHDL设计

3.3.3计数器的其他VHDL表达方式3.3计数器的VHDL设计

3.3.3计数器的其他VHDL表达方式3.4实用计数器的VHDL设计3.3.3计数器的其他VHDL表达方式接下页3.4实用计数器的VHDL设计接上页tipsRst,clk,en,load控制端口优先级高=>低

clk之前的为异步控制,clk之后的为同步控制,用if语句实现优先级的排列Q1:当四个控制信号分别取什么值时计数器正常计数?Variable:变量(与signal做比较)位置?赋值符号?Q:=Q+1+号左右两边数据类型不同需要调用重载函数

useieee.std_logic_unsigned.all;分析vwf文件中控制信号的功能,特别是异步控制和同步控制

load信号什么时候起作用?作业:分析RTL电路图。下次上课时交作业3.4实用计数器的VHDL设计3.3.3计数器的其他VHDL表达方式1.十进制计数器相关语法3.4实用计数器的VHDL设计3.3.3计数器的其他VHDL表达方式2.程序分析3.4实用计数器的VHDL设计3.3.3计数器的其他VHDL表达方式2.程序分析3.4实用计数器的VHDL设计3.3.3计数器的其他VHDL表达方式3.时序模块中的同步控制信号和异步控制信号的构建

4.另一种描述方式3.4实用计数器的VHDL设计3.3.3计数器的其他VHDL表达方式3.时序模块中的同步控制信号和异步控制信号的构建

4.另一种描述方式七段(八段)数码管示意图七段(八段)数码管实物图对应的引脚给出相应的编码,即可发光。以共阴极数码管为例,如右图所示。数码管静态显示数码管动态显示把所有数码管的8个笔划段a-h同名端共阳极连在一起,而每一个数码管的公阴极是各自独立地控制。数码管动态显示所有数码管接收到相同的字形码。所有数码管的8个笔划段a-h同名端连在一起,同一个瞬间所有的数码管显示都是相同的。那么在一个屏幕上如何显示0,1,2,3,4,5这样不同的数字呢?数码管动态显示首先显示一个数,然后关掉.然后显示第二个数,又关掉,那么将看到连续的数字显示,轮流点亮扫描过程中,每位数码管的点亮时间是极为短暂的(约1ms),由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。例如数码管显示01234567这么8个数,在实际的工作流程如下:先打开一个数码管送0,然后关掉。打开第二个数码管送1,再关掉,依次向下,由于速度足够快,那么我们将连续的看到01234567。casejsis when"0000"=>seg<="11111100";--abcdefgdp0 when"0001"=>seg<="01100000";--1 when"0010"=>seg<="11011010";--2 when"0011"=>seg<="11110010";--3 when"0100"=>seg<="01100110";--4 when"0101"=>seg<="10110110";--5 when"0110"=>seg<="10111110";--6 when"0111"=>seg<="11100000";--7 when"1000"=>seg<="11111110";--8 when"1001"=>seg<="11110110";--9 when"1010"=>seg<="11101110";--a when"1011"=>seg<="00111110";--b when"1100"=>seg<="10011100";--c when"1101"=>seg<="01111010";--d when"1110"=>seg<="10011110";--e when"1111"=>seg<="10001110";--f whenothers=>null;endcase;习题3-1画出与以下实体描述对应的原理图符号元件:习题3-2图3-16所示的是4选1多路选择器,试分别用IF_THEN语句、WHEN_ELSE和CASE语句的表达方式写出此电路的VHDL程序,要求选择控制信号s1和s0的数据类型为STD_LOGIC;当s1='0',s0='0';s1='0',s0='1';s1='1',s0='0'和s1='1',s0='1'时,分别执行y<=a、y<=b、y<=c、y<=d。

习题3-3图3-17所示的是双2选1多路选择器构成的电路MUXK,对于其中MUX21A,当s='0'和s='1'时,分别有y<='a'和y<='b'。试在一个结构体中用两个进程来表达此电路,每个进程中用CASE语句描述一个2选1多路选择器MUX21A。习题3-4将3-20程序的计数器改为12进制计数器,程序用例3-21的方式表述,并且将复位RST改为同步清0控制,加载信号LOAD改为异步控制方式。讨论例3-20与例3-21的异同点。3-5设计含有异步清零和计数使能的16位二进制加减可控计数器。3-6图3-18是一个含有上升沿触发的D触发器的时序电路,试写出此电路的VHDL设计文件。

习题3-7给出1位全减器的VHDL描述。要求:(1)首先设计1位半减器,然后用例化语句将它们连接起来,图3-19中h_suber是半减器,diff是输出差,s_out是借位输出,sub_in是借位输入。(2)根据图3-19设计1位全减器。以1位全减器为基本硬件,构成串行借位的8位减法器,要求用例化语句来完成此项设计(减法运算是x–y–sun_in=diffr)。

习题3-8给出一个4选1多路选择器的VHDL描述。选通控制端有4个输入:S0、S1、S2、S3。当且仅当S0=0时:Y=A;S1=0时:Y=B;S2=0时:Y=C;S3=0时:Y=D。3-9分频方法有多种,最简单的是二分频和偶数分频甚至奇数分频,这用触发器或指定计数模的计数器即可办到。但对于现场实现指定分频比或小数分频率的分频电路的设计就不是很简单了。试对例3-20的设计稍作修改,将其进位输出COUT与异步加载控制LOAD连在一起,构成一个自动加载型16位二进制数计数器,也即一个16位可控的分频器,给出其VHDL表述,并说明工作原理。设输入频率fi=4MHz,输出频率fo=516.5±1Hz(允许误差±0.1Hz),16位加载数值=?。3-10用VHDL设计一个功能类似74LS160的计数器。3-11给出含有异步清零和计数使能的16位二进制加减可控计数器的VHDL描述。

习题3-12分别给出以下2个RTL图的VHDL描述,注意其中的D触发器和锁存器的表述。

KHF-5型FPGA实验开发系统简介芯片简介:1、FPGA芯片型号:EP1K100QC208-32、ALTERA公司生产3、集成10万门4、引脚数为208系统资源50MHz、22.1184MHz、1~1MHz时钟16个数据开关、4个脉冲开关、16个LED10个数码管:右边两个为静态显示,其他8个为动态显示A/D转换:ADC0809(8位)、MAX196(12位)D/A转换:DAC08004×4键盘、RS

温馨提示

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

评论

0/150

提交评论