EDA技术与VHDL设计(西电版)第7章 程序包和子程序
EDA技术与VHDL设计(西电版)第7章 程序包和子程序_OK
L6
TYPE state IS ( st1, st2, st3, st4);
--数据类型 state
L7
CONSTANT a : STD_LOGIC_VECTOR( 7 DOWNTO 0) := "11111111"; --常数 a
L8 END my_package;
L9 -------------------------------------------------------------------------------------------------------------------------
例7-3例举了一个利用VHDL语言描述的2输入与门,例 7-4是将与门作为元件在程序包中声明的示例,例7-5则使用 该程序包中的与门元件实现一个三输入逻辑与的电路。如果 将程序包保存于当前工程同一文件夹内编译,相当于放入工 作库WORK中,则通过使用语句“USE work.my_component.all;”就可打开该程序包中的所有内容(由 于WORK库是默认打开的,所以不需要“LIBRARY work;” 语句)。图7-2是综合后的RTL电路结构,图7-3是仿真结果。
2021/7/24
7
7
第7章 程序包和子程序
【例7-3】
L1 -------------------------------------------------------------------------------------------------------------------------
L5 PACKAGE my_component IS --程序包首,程序包名 my_component
L6
COMPONENT my_and IS --声明元件 my_and
EDA技术与VHDL语言课程设计
EDA技术与VHDL语言课程设计课程设计EDA技术与VHDL语言课程设计报告班级: 电信11-2班姓名: 董元伟学号: 1106110205指导教师: 李铁成绩:电子与信息工程学院信息与通信工程系- 2 - 课程设计;数字密码锁目录摘要 ..................................................................... .......................................... - 3 - 一、设计目的 ..................................................................... ............................ - 4 - 二、设计内容和要求 ..................................................................... .................. - 4 -1、用户开锁 ..................................................................... ......................... - 5 -2、管理员解除警报 ..................................................................... .............. - 5 -3、管理员修改密码 ..................................................................... .............. - 5 -4、定时返回 ..................................................................... ......................... - 6 - 三、设计思路和系统结构...................................................................... ............ - 6 -1、设计模块 ..................................................................... ......................... - 6 -2、系统结构和数字密码锁原理图 .............................................................. - 7 -3、设计思路 ..................................................................... ......................... - 8 - 四、实验设计程序如 ..................................................................... ................... - 9 - 五、创建测试平台仿真结果 ..................................................................... ....... - 21 - 参考文献 ..................................................................... ................................... - 24 -- 2 -- 3 - 课程设计;数字密码锁摘要本文介绍一种利用 EDA 技术和 VHDL 语言,在 MAX+PLUS?环境下,设计了一种新型的智能密码锁。
EDA技术与VHDL程序设计基础教程
PCB系统
三、EDA技术的应用 PCB设计
PCB(Printed Circuit Board)印制电路板主要用作电子系统的载体,工程师 通常将集成电路元件焊接在PCB板上完成整个电子系统的搭建、控制、通信等 功能
点阵系 统的原 理图和 版图
点阵系 统的版 图
三、EDA技术的应用
ASIC设计
第2章
重点内容:
CPLD结构和工作原理 FPGA结构和工作原理 FPGA配置方式 CPLD/FPGA应用选型
一、可编程逻辑器件概述
可编程逻辑器件 PROM、PLA和PAL的原理和特性
PROM
基于二极管和三极管 的一次可编程PROM单 字线
元
二极管
上拉电阻
熔丝
数据比特线
(a)
字线 三极管
上拉电阻
FPGA/CPLD布线和适配 (Place & Route) 适配的自动优化 (Optimization)
编程下载 (Program & Download)
行为仿真 (Behaviour)
VHDL仿真器 (Simulator)
功能仿真 (Functional)
时序仿真 (Timing Analysis)
三、EDA技术的应用
EDA技术的应用范畴很广 主要有: 1、PCB印制电路板的设计 2、ASIC全定制数字电路
的设计 3、FPGA/CPLD等可编程器
件上的电子系统设计
波形输入 (Wave)
ASIC设计平台 硬件语言编译工具
逻辑综合工具 功能分析工具 布局布线工具 版图生成工具 形式验证工具
半导体IC产品
“与”阵列 “或”阵列
一、可编程逻辑器件概述
EDA技术与VHDL程序设计基础教程习题答案
EDA技术与VHDL程序设计基础教程习题答案第1章EDA习题答案1.8.1填空1.EDA的英文全称是Electronic Design Automation2.EDA技术经历了计算机辅助设计CAD阶段、计算机辅助工程设计CAE阶段、现代电子系统设计自动化EDA阶段三个发展阶段3. EDA技术的应用可概括为PCB设计、ASIC设计、CPLD/FPGA设计三个方向4.目前比较流行的主流厂家的EDA软件有Quartus II、ISE、ModelSim、ispLEVER5.常用的设计输入方式有原理图输入、文本输入、状态机输入6.常用的硬件描述语言有VHDL、Verilog7.逻辑综合后生成的网表文件为EDIF8.布局布线主要完成将综合器生成的网表文件转换成所需的下载文件9.时序仿真较功能仿真多考虑了器件的物理模型参数10.常用的第三方EDA工具软件有Synplify/Synplify Pro、Leonardo Spectrum1.8.2选择1.EDA技术发展历程的正确描述为(A)A CAD->CAE->EDAB EDA->CAD->CAEC EDA->CAE->CADD CAE->CAD->EDA2.Altera的第四代EDA集成开发环境为(C)A ModelsimB MUX+Plus IIC Quartus IID ISE3.下列EDA工具中,支持状态图输入方式的是(B)A Quartus IIB ISEC ispDesignEXPERTD Syplify Pro4.下列几种仿真中考虑了物理模型参数的仿真是(A)A 时序仿真B 功能仿真C 行为仿真D 逻辑仿真5.下列描述EDA工程设计流程正确的是(C)A输入->综合->布线->下载->仿真B布线->仿真->下载->输入->综合C输入->综合->布线->仿真->下载D输入->仿真->综合->布线->下载6.下列编程语言中不属于硬件描述语言的是(D)A VHDLB VerilogC ABELD PHP1.8.3问答1.结合本章学习的知识,简述什么是EDA技术?谈谈自己对EDA技术的认识?答:EDA(Electronic Design Automation)工程是现代电子信息工程领域中一门发展迅速的新技术。
第七讲VHDL子程序
1
第7讲 VHDL子程序 第7讲 VHDL子程序
函数(Function)
函数的语法格式: 函数首(一般放在程序包的说明部分): FUNCTION 函数名 (输入参数表) RETURN
数据类型 ;
函数体: FUNCTION 函数名 (输入参数表) RETURN 数据类型 IS [说明语句]; BEGIN 顺序处理语句; RETURN 返回变量名; END FUNCTION 函数名 ; 其中输入参数表中的每个参数均应表示为:参数名:数据类型;
EDA技术——VHDL子程序
9
第7讲 VHDL子程序 第7讲 VHDL子程序
子程序重载
子程序重载的语言特性使得能够声明多个名字相同但参数表不完全 相同的函数和过程。在具有不同数据类型操作数构成的同名函数中,以 运算符重载式函数最为常用,这种函数为不同数据类型间的运算带来极 大的方便。
EDA技术——VHDL子程序
第7讲 VHDL子程序
子程序和进程(Process)一样,采用顺序描述来定义算法。和进程不 同的是,子程序不可以直接从结构体的其他部分对信号进行读写操作, 所有的通信都必须通过子程序的接口完成。由于可以在结构体的不同部 分调用子程序完成重复的计算,因此子程序显得非常的实用。和元件例 化语句不同的是,当子程序被实体或者其他子程序调用的时候,并不会 产生新的设计层次,但是可以通过手工定义的方法增加设计层次。 子程序由过程(PROCEDURE)和函数(FUNCTION)组成。函 数只能用以计算数值,而不能用以改变与函数形参相关的对象的值。因 此,函数的参量只能是方式为IN的信号与常量;而过程的参量可以为 IN, OUT, INOUT方式(注意:不能为BUFFER方式)。过程没有返回值, 但是可以通过改变过程参数值的方法向过程的调用者传递信息。 函数和过程常见于面向逻辑综合的设计中,主要进行高层次的数值 运算或类型转换、运算符重载,也可用来元件例化。
EDA技术与VHDL_汇总
EDA技术与VHDL_汇总EDA(电子设计自动化)技术与VHDL(可编程硬件描述语言)是在电子设计领域中广泛应用的两种技术。
EDA技术是指利用计算机辅助设计软件来帮助工程师进行电子电路的设计和验证,提高设计效率和降低成本。
而VHDL是一种硬件描述语言,用于描述电子系统的行为和结构,是EDA技术的重要工具之一、本文将针对EDA技术和VHDL进行综述。
EDA技术是电子设计流程中的重要环节,包括电路设计、电路模拟、布局与布线、物理验证等多个方面。
其中,电路设计主要关注电路行为和结构的设计,通过EDA软件可以对电路进行逻辑综合、时序优化等操作,从而生成最终的电路结构。
电路模拟是对设计电路进行仿真和验证的过程,通过EDA软件可以模拟电路的工作状态,检查设计是否符合预期要求。
布局与布线是将逻辑电路转化为物理电路的过程,在电路板上布置元件并进行连线,以满足电路的功能和性能要求。
物理验证则是根据设计规则和约束对布局和布线结果进行验证,确保电路能够正常工作。
VHDL是一种硬件描述语言,用于描述电子系统的行为和结构。
VHDL提供了抽象层次,可以描述从逻辑门到整个系统的各个层次。
使用VHDL,设计者可以对系统进行模块化描述,将整个系统分解为多个模块并进行独立设计。
VHDL还提供了丰富的工具和语法,用于描述电路的结构、时序、数据流等信息。
通过VHDL描述的电路可以通过EDA软件进行综合、仿真、布局与布线等操作。
VHDL还具有良好的可移植性,设计者可以在不同EDA软件和不同平台上进行开发和验证。
EDA技术与VHDL的结合可以提高电子设计的效率和质量。
通过EDA软件,设计者可以利用图形界面进行电路设计,快速搭建和验证电路结构。
在设计过程中,VHDL可以使设计者在高层次上描述电路功能和结构,提高设计抽象和可重用性。
此外,通过EDA软件可以进行电路的仿真和验证,帮助设计者对电路进行性能、时序等方面的优化,减少设计错误的风险。
在布局与布线阶段,EDA软件可以自动完成复杂的布局与布线操作,优化电路的尺寸和信号传输路径,提高电路的可靠性和性能。
EDA技术与VHDL实用教程
EDA技术与VHDL实用教程
15
表0-1 EDA开发软件特性
厂商 EDA软件名称 软件适用器件系列 软件支持的描述方式
Altera
MAX+plusⅡ QuartusⅡ
MAX、FLEX等 MAX、FLEX、APEX等
逻辑图、波形图、 AHDL文本、VerilogHDL文本、VHDL文本 等
Xilinx
SX系列、MX系列 逻辑图、VHDL文本等
EDA技术与VHDL实用教计方法的缺点是: 1)复杂电路的设计、调试十分
困难。 2)如果某一过程存在错误,查 找和修改十分不便。 3)设计过程中产生大量文档, 不易管理。 4)对于集成电路设计而言,设 计实现过程与具体生产工艺直 接相关,因此可移植性差。 5)只有在设计出样机或生产出 芯片后才能进行实测。
EDA技术,电子设计师可以方便地实现IC 设计、电子电路设计和PCB设计等工作。
EDA技术与VHDL实用教程
3
广义的EDA技术,除了狭义的EDA技 术外,还包括计算机辅助分析CAA技术(如 PSPICE,EWB,MATLAB等),印刷电路 板计算机辅助设计PCB-CAD技术(如 PROTEL,ORCAD等)。
在广义的EDA技术中,CAA技术和 PCB-CAD技术不具备逻辑综合和逻辑适配 的功能,因此它并不能称为真正意义上的 EDA技术。
EDA技术与VHDL实用教程
4
狭义的EDA技术,就是以大规模可编 程逻辑器件为设计载体,以硬件描述语言 为系统逻辑描述的主要表达方式,以计算 机、大规模可编程逻辑器件的开发软件及 实验开发系统为设计开发工具的EDA技 术。
3、算法的实现
如:离散FFT变换、数字滤波器、浮点乘法器、高速宽位加法器、数字 振荡器、数字锁相环、调制解调器、图象DSP等电路的设计,时钟频 率一般在50MHz以上
EDA技术及应用-VHDL版(第三版)(潭会生)第7章详解
第7章 EDA技术实验
CLK CLR ENA
CNT10
CLK
U0
CLR
ENA
CQ[3..0] CO
DOUT[3..0] S0
CNT10
CLK
U1
CLR
ENA
CQ[3..0] CO
DOUT[7..4] S1
CNT10
CLK CLR ENA
U2 CQ[3..0] CO
DOUT[11..8] S2
CNT10 U3
第7章 EDA技术实验
ห้องสมุดไป่ตู้验证清零功能
验证使能有效
验证计数功能
预计可能结果
图7.2 CNT10仿真输入设置及可能结果估计图
第7章 EDA技术实验
4) 管脚锁定文件 根据图7.1所示的CNT9999电路原理图,本设计实体的 输入有时钟信号CLK、清零信号CLR和计数使能信号ENA, 输出为DOUT[15..0],据此可选择实验电路结构图NO.0,对 应实验模式0。 根据图7.5所示的实验电路结构图NO.0和图7.1确定引脚 的锁定。选用EPM7128S-PL84芯片,其引脚锁定过程如表 7.1所示,其中CLK接CLOCK2,CLR接键3,ENA接键4, 计数结果DOUT[3..0]、DOUT[7..4]、DOUT[11..8]、 DOUT[15..12]经外部译码器译码后,分别在数码管1、数码 管2、数码管3、数码管4上显示。
第7章 EDA技术实验
3.实验要求 (1) 画出系统的原理框图,说明系统中各主要组成部分 的功能。 (2) 编写各个VHDL源程序。 (3) 根据系统的功能,选好测试用例,画出测试输入信 号波形或编好测试程序。 (4) 根据选用的EDA实验开发装置编好用于硬件验证的 管脚锁定表格或文件。 (5) 记录系统仿真、逻辑综合及硬件验证结果。 (6) 记录实验过程中出现的问题及解决办法。
VHDL子程序
END;
--结束PACKAGE BODY语句
接下页
接上页
LIBRARY IEEE; -- 函数应用实例
USE IEEE.STD_LOGIC_1164.ALL;
USE WORK.packexp.ALL ;
ENTITY axamp IS
PORT(dat1,dat2 : IN STD_LOGIC_VECTOR(3 DOWNTO 0);
FUNCTION max( a,b : IN STD_LOGIC_VECTOR) --定义函数体
RETURN STD_LOGIC_VECTOR IS
BEGIN
IF a > b THEN RETURN a;
ELSE
RETURN b;
END IF;
END FUNCTION max;
--结束FUNCTION语句
PROCEDURE 过程名(参数表) IS [说明部分]
BIGIN 顺序语句;
END PROCEDURE 过程名;
-- 过程体
PROCEDURE pro1 (VARIABLE a, b : INOUT REAL) ; PROCEDURE pro2 (CONSTANT a1 : IN INTEGER ;
return STD_LOGIC_VECTOR ;
function "+" (L : INTEGER; R : STD_LOGIC_VECTOR)
return STD_LOGIC_VECTOR ;
function "+" (L : STD_LOGIC_VECTOR ; R : STD_LOGIC )
begin
if L R then return L;
VHDL的子程序
BEGIN
IF (S'EVENT) AND (S = '1') AND
--
line 3
(S'LAST_VALUE = '0') THEN
-- line 4
RETURN TRUE; -- line 5
ELSE RETURN FALSE;
-- line 6 END IF;
END rising_edge; END dff;
u1 convert4val(clk)a,(3)
a(3)
convert4val(clr),
clk convert4value(q) => q(2));
clr U4 : dff PORT MAP(convert4val(a(3)), convert4val(clk), convert4val(clr), convert4value(q) => q(3)); END structure;
函数
USE WORK.std_logic_1164.ALL; PACKAGE num_types IS
TYPE log8 IS ARRAY (0 TO 7) OF std_logic; -- line 1 END num_types;
USE WORK.std_logic_1164.ALL; USE WORK.num_types.ALL; ENTITY convert IS
-- line 4
和返回值
RETURN INTEGER is
-- line 5
函数说明区它能说明变量、常量和类型,但不
VARIABLE result能:说I明N信TE号GER := 0;
-- line 6
BEGIN FOR
《EDA技术与VHDL》教案
变量和信号的赋值
变量和信号的用法
进程中的变量和信号的赋值
本次课主体教学方式、方法:
多媒体教室
第六讲
第3章
VHDL基础
教学目的:初步IF语句的语法规则及使用,总结归纳进程语句,并行赋值语句的深入理解
教学重点:
进程语句以及并行赋值语句
讲授主要内容:
复习回顾本章内容,通过阅读教材上的程序来理解和巩固本章所学知识
本次课主体教学方式、方法:
多媒体教室
第 十七讲
第5章
VHDL状态机
教学目的:理解状态机的概念,学习状态机的设计,区别两种状态机
教学重点:
状态机的概念及设计方法
教学难点:
状态机的概念及设计方法、两种状态机的设计
讲授主要内容:
状态机设计的相关语句
应用程序设计实例的分析,算法乘法器的实现方法、除法的实现方法
本次课主体教学方式、方法:
多媒体教室
第 二一 讲
第9章
DSP Builder的设计初步
教学目的:了解MATLAB/DSP Builder及其设计的流程、了解使用该工具设计正弦信号发生器的方法
教学重点:
MATLAB/DSP Builder及其设计的流程
4 IEEE预定义标准逻辑位与矢量
VHDL数组类型,定义格式及使用方法
5 操作符,逻辑操作符,关系操作符、算术操作符
本次课主体教学方式、方法:
多媒体教室
第 十六讲
第8章
VHDL结构
教学目的:复习本章知识
教学重点:
教材上程序的阅读,本章难点复习
教学难点:
VHDL过程重载、子程序调用、并行过程调用、重载函数、转换函数、决断函数、过程
EDA 第7章 7.1
7.1 顺序语句
7.1.7 WAIT语句
【例7-11】 PROCESS BEGIN WAIT UNTIL clk ='1'; ave <= a; WAIT UNTIL clk ='1'; ave <= ave + a; WAIT UNTIL clk ='1'; ave <= ave + a; WAIT UNTIL clk ='1'; ave <= (ave + a)/4 ; END PROCESS ;
7.1.7 WAIT语句
7.1 顺序语句
WAIT ON 信号表;
对于第二种语句格式:
【例7-9】
SIGNAL s1,s2 : STD_LOGIC; ...
PROCESS
BEGIN ... WAIT ON s1,s2 ; END PROCESS ;
注:已列出敏感量的进程中不能使用任何形式的 WAIT语句。
7.1 顺序语句
7.1.7 WAIT语句
【例7-12】 PROCESS BEGIN rst_loop : LOOP WAIT UNTIL clock ='1' AND clock’EVENT; -- 等待时钟信号
NEXT rst_loop WHEN (rst='1');
x <= a ;
-- 检测复位信号rst
END LOOP [ LOOP标号 ];
例: ... L2 : LOOP a := a+1; EXIT L2 WHEN a >10 ; END LOOP L2; ... -- 当a大于10时跳出循环
7.1 顺序语句
VHDL程序包及函数
VHDL 程序包及函数程序包VHDL引入程序包的结构,使一些通用的对象、数据类型及子程序能被其他程序的实体共同使用一个程序包由两大部分组成:程序包说明和程序包体。
程序包体是一个可选项一般情况,程序包说明列出所有项的名称,而程序包体给出各项的细节。
程序包说明通常的常量、信号数据类型及子类型的数据范围、函数和过程等说明的集合,称程序包说明。
下述内容中只要是通用的全局量,都可以在程序包中加以说明。
对象(常量、变量、信号)的数据类型说明对象(常量、变量、信号)子类型的数值范围说明函数与过程说明元件语句说明信号连接说明延时常量说明文件说明设计者自定义的属性说明程序包说明格式如下:package程序包名is说明语句;end程序包名;程序包名:设计者自定义便于记忆的标识符说明语句:包括各种类型的说明语句程序包体描述函数和过程功能的函数体与过程等的集合称程序包体程序包说明中,定义了数据类型和子程序中的函数、过程说明,而程序包体中才具体地描述该函数、过程功能的语句和数据的赋值。
程序包体格式:package body程序包名is顺序语句;end程序包名;程序包名:与程序包说明中的程序包名相同顺序语句:描述函数、过程及其他功能的程序流子程序--过程VHDL中,所谓子程序指主程序调用它后能将处理结果返回主程序的程序模块。
VHDL语言中,子程序有两种类型,过程(procedure)和函数(function)。
他们的区别:1、过程可具有多个返回值,而函数只能有一个2、过程通常用来定义一个算法,而函数往往用来产生一个特定的值3、过程中的参数可具有3种端口模式:in、out、inout,而函数中的参数只能具有一直端口模式:in过程的书写结构对于VHDL子程序来说,它通常包括子程序说明部分和子程序定义部分。
其中,子程序说明部分定义了其他设计调用子程序的接口;子程序定义部分则描述该子程序具体功能的实现。
因此,通常将子程序说明部分和子程序定义部分的书写结构分别介绍在VHDL中,过程说明部分的书写结构:procedure:过程名(对象类型1参数名1:端口模式1数据类型1;对象类型2参数名2:端口模式2数据类型2;.);过程说明部分以保留字"procedure"开始,紧跟着的是过程名;然后是过程的参数列表。
EDA技术与VHDL程序开发教程课程设计
EDA技术与VHDL程序开发教程课程设计1. 课程设计介绍本课程设计是针对电子电路设计与自动化专业的本科生开设的EDA技术与VHDL 程序开发教程。
本课程的目的是让学生学会使用EDA工具设计数字电路,以及用VHDL语言编写数字电路程序。
本课程设计的教学模式为理论教学与实践相结合,学生将在课程学习中完成与数字电路设计相关的实验任务,学习并掌握EDA工具的使用和VHDL语言的应用。
2. 课程设计内容2.1 EDA技术的应用EDA技术是电路设计的重要工具,它包含了原理图输入、仿真、综合、布局、布线等多个方面,可以大大缩短电路设计的时间和成本。
本课程将通过EDA工具的实验任务让学生了解和掌握以下内容:•学习使用EDA工具进行电路设计的基本流程•使用EDA工具进行原理图输入和仿真•了解EDA工具中的基本元件库和模型库•学习使用EDA工具进行电路综合、布局和布线2.2 VHDL程序的开发VHDL是一种数字逻辑设计语言,具有结构化编程和行为描述的特点。
本课程将通过VHDL程序设计的实验任务让学生了解和掌握以下内容:•VHDL程序设计基本语法和结构•VHDL程序的仿真和调试•VHDL程序升级、维护与管理•VHDL程序在FPGA器件上的应用3. 实验任务设计本课程的实验任务是在EDA工具和VHDL语言的指导下,完成数字电路的设计和程序编写。
具体的实验任务包括以下内容:3.1 实验任务一:基本数字逻辑电路设计与仿真根据给定的数字电路需求,学生应使用EDA工具进行数字电路的设计和仿真,并输出仿真结果报告。
3.2 实验任务二:进阶数字电路设计与布局根据给定的数字电路需求和器件参数,学生应使用EDA工具进行数字电路的设计和布局,并输出设计报告。
3.3 实验任务三:VHDL程序编写与仿真根据给定的数字电路需求,学生应使用VHDL语言编写对应的数字电路程序,并进行仿真和调试,输出仿真结果报告和程序调试报告。
3.4 实验任务四:VHDL程序升级与维护学生需要从已有的VHDL程序中进行修改和升级,以适应新的数字电路需求,并保持指定的电路性能。
EDA技术与VHDL基础课后习题答案
《EDA技术与VHDL基础》课后习题答案第一章EDA技术概述一、填空题一、电子设计自动化二、超级高速集成芯片硬件描述语言3、CAD、CAE、EDA4、原理图输入、状态图输入、文本输入五、VHDL、Verilog HDL六、硬件特性二、选择题一、A二、C3、A4、D五、C六、D7、A第二章可编程逻辑器件基础一、填空题一、PLD二、Altera公司、Xilinx公司、Lattice公司3、基于反熔丝编程的FPGA4、配置芯片二、选择题一、D二、C3、C4、D第三章VHDL程序初步——程序结构一、填空题一、结构、行为、功能、接口二、库和程序包、实体、结构体、配置3、实体名、类型表、端口表、实体说明部份4、结构体说明语句、功能语句五、端口的大小、实体中子元件的数量、实体的按时特性六、设计库7、元件、函数八、进程PROCESS、进程PROCEDURE九、顺序语句、并行语句二、选择题一、D二、C3、C4、B五、D六、B7、A八、C三、简答题二、LIBRARY IEEE;USE nand_3in ISPORT(a,b,c:IN STD_LOGIC;y:OUT STD_LOGIC); END;ARCHITECTURE bhv OF nand_3in IS BEGINy<=NOT(a AND b AND c);END bhv;五、0000六、(247)第四章VHDL基础一、填空题一、顺序语句、并行语句二、跳出本次循环3、等待、信号发生转变时4、函数、进程五、值类属性、函数类属性、信号类属性、数据类型类属性、数据范围类属性六、程序调试、时序仿真7、子程序、子程序二、选择题一、B二、A3、A4、C五、B六、C7、D三、判定题一、√二、√3、√4、√五、×六、×四、简答题九、修更正确如下所示:LIBRARY IEEE;USE count ISPORT(clk:IN BIT;q:OUT BIT_VECTOR(7 DOWNTO 0));END count;ARCHITECTURE a OF count ISBEGINPROCESS(clk)IF clk'EVENT AND clk='1' THENq<=q+1;END PROCESS;END a;10、修更正确如下所示:…SIGNAL invalue:IN INTEGER RANGE 0 TO 15; SIGNAL outvalue:OUT STD_LOGIC;…CASE invalue ISWHEN 0=>outvalue<='1';WHEN 1=>outvalue<='0';WHEN OTHERS=>NULL;END CASE;…1一、修更正确如下所示:ARCHITECTURE bhv OF com1 ISBEGINSIGNAL a,b,c:STD_LOGIC;pro1:PROCESS(clk)BEGINIF NOT (clk'EVENT AND clk='1') THENx<=a XOR b OR c;END IF;END PROCESS;END;1二、(1) PROCESS(…) --此题中两条IF语句均为信号c进行可能赋值,VHDL语言不许诺IF a=b THENc<=d;END IF;IF a=4 THENc<=d+1;END IF;END PROCESS;(2)ARCHITECTURE behave OF mux IS --同时为q进行多次可能赋值,VHDL语言不许诺BEGINq<=i0 WHEN a='0' AND b='0' ELSE '0'; --WHEN ELSE语句语法错误q<=i1 WHEN a='0' AND b='1' ELSE '0';q<=i2 WHEN a='1' AND b='0' ELSE '0';q<=i3 WHEN a='1' AND b='1' ELSE '0';END behave;13、next1<=1101 WHEN (a='0' AND b='0') ELSEd WHEN a='0' ELSEc WHEN b='1' ELSE1011;1五、(1)、STD_LOGIC_UNSIGNED(2)、GENERIC(3)、IN(4)、width-1(7)(5)、counter_n(6)、“00000000”(7)、clk’EVENT AND clk=’1’(8)、ELSIF(9)、END IF(10)、q<= count1六、修更正确如下所示:LIBRARY IEEE;USE CNT10 ISPORT ( clk: IN STD_LOGIC;q: OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END CNT10;ARCHITECTURE bhv OF CNT10 ISSIGNAL q1 : STD_LOGIC_VECTOR(3 DOWNTO 0); BEGINPROCESS (clk)BEGINIF RISING_EDGE(clk) begin –begin修改成THENIF q1 < 9 THEN --q1为STD_LOGIC数据类型,而9为整型不可直接比较q1 <= q1 + 1; -- q1为STD_LOGIC数据类型,而1为整型不可直接相加ELSEq1 <= (OTHERS => '0');END IF;END IF;END PROCESS;q <= q1;END bhv;17、利用IF语句实现LIBRARY IEEE;USE mux21 ISPORT(ain,bin,sel:IN STD_LOGIC_VECTOR(1 DOWNTO 0);cout:OUT STD_LOGIC_VECTOR(1 DOWNTO 0));END;ARCHITECTURE bhv OF mux21 ISSIGNAL cout_tmp:STD_LOGIC_VECTOR(1 DOWNTO 0);BEGINPROCESS(ain,bin,sel)BEGINIF (sel="00") THEN cout_tmp<=ain OR bin;ELSIF (sel="01") THEN cout_tmp<=ain XOR bin;ELSIF (sel="10") THEN cout_tmp<=ain AND bin;ELSE cout_tmp<=ain NOR bin;END IF;END PROCESS;cout<=cout_tmp;END bhv;第五章QuartusⅡ集成开发软件初步一、填空题1、实体名二、FPGA、CPLD3、.vhd4、输入、综合、适配、仿真、下载五、RTL Viewer、Technology Map Viewer六、功能、参数含义、利用方式、硬件描述语言、模块参数设置7、mif、hex八、根目录二、选择题一、C二、D第七章有限状态机设计一、设计题1、LIBRARY IEEE;USE ztj ISPORT(clk,reset:IN STD_LOGIC;in_a:IN STD_LOGIC_VECTOR(1 DOWNTO 0);out_a:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END;ARCHITECTURE bhv OF ztj ISTYPE state IS(s0,s1,s2,s3); --用列举类型概念状态,简单直观SIGNAL current_state,next_state:state; --概念存储现态和次态的信号BEGINp1:PROCESS(clk) --状态更新进程BEGINIF clk'EVENT AND clk='1' THENIF reset='1' THEN current_state<=s0;ELSE current_state<=next_state;END IF;END IF;END PROCESS;p2:PROCESS(current_state,in_a) --次态产生进程BEGINCASE current_state ISWHEN s0=>IF in_a/=”00” THEN next_state<=s1;ELSE next_state<=s0;END IF;WHEN s1=>IF in_a=/'”01” THEN next_state<=s2;ELSE next_state<=s1;END IF;WHEN s2=>IF in_a=”11” THEN next_state<=s0ELSE next_state<=s3;END IF;WHEN s3=>IF in_a/='11' THEN next_state<=s0;ELSE next_state<=s3;END IF;WHEN OTHERS=>NULL;END CASE;END PROCESS;p3:PROCESS(current_state)BEGINCASE current_state ISWHEN s0=>out_a<='”0101”;WHEN s1=>out_a<=”1000”;WHEN s2=>out_a<=”1100”;WHEN s3=>out_a<=”1101”;WHEN OTHERS=>NULL;END CASE;END PROCESS;END;二、LIBRARY IEEE;USE ztj ISPORT(clk,reset:IN STD_LOGIC;ina:IN STD_LOGIC_VECTOR(2 DOWNTO 0);outa:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END;ARCHITECTURE bhv OF ztj ISTYPE state IS(s0,s1,s2,s3); --用列举类型概念状态,简单直观SIGNAL current_state,next_state:state;BEGINp1:PROCESS(clk) --状态更新进程BEGINIF clk'EVENT AND clk='1' THENIF reset='1' THEN current_state<=s0;ELSE current_state<=next_state;END IF;END IF;END PROCESS;p2:PROCESS(current_state,ina)BEGINCASE current_state ISWHEN s0=> IF ina =”101” THEN outa<=”0010”;ELSIF ina=”111” THEN outa <=”1100”;END IF;IF ina =”000” THEN next_state<=s1;ELSE next_state<=s0;END IF;WHEN s1=> outa<=”1001”;IF ina =”110” THEN next_state<=s2;ELSE next_state<=s1;END IF;WHEN s2=> outa<=”1111”;IF ina =”011” THEN next_state<=s1;ELSIF ina =”100” THEN next_state<=s2;ELSE next_state<=s3;END IF;WHEN s3=> IF ina =”101” THEN outa<=”1101”;ELSIF ina=”011” THEN outa <=”1100”;END IF;IF ina =”010” THEN next_state<=s0;ELSE next_state<=s1;END IF;WHEN OTHERS=>NULL;END CASE;END PROCESS;END;3、LIBRARY IEEE;USE ztj ISPORT(clk,reset:IN STD_LOGIC;ina:IN STD_LOGIC_VECTOR(1 DOWNTO 0);outa:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END;ARCHITECTURE bhv OF ztj ISTYPE state IS(s0,s1,s2,s3); --用列举类型概念状态,简单直观SIGNAL state:istate;BEGINp1:PROCESS(clk)BEGINIF clk'EVENT AND clk='1' THENIF reset='1' THEN state<=s0;result<='0';ELSECASE state ISWHEN s0=>outa<=”0000”;IF ina=”00” THEN state<=s1;ELSE state<=s0;END IF;WHEN s1=> outa <=”0001”;IF ina=”01” THEN state<=s2;ELSE state<=s1;END IF;WHEN s2=> outa <=”1100”;IF ina=”11” THEN state<=s3;ELSE state<=s0;END IF;WHEN s3=> outa <=”1111”;IF ina=”00” THEN state<=s0;ELSE state<=s3;END IF;WHEN OTHERS=>NULL;END CASE;END IF;END IF;END PROCESS;END;第九章VHDL大体逻辑电路设计一、填空题1、输入信号、所处状态二、组合逻辑、时序逻辑3、触发器、14、D触发器、RS触发器、JK触发器、T触发器二、选择题一、A二、C。
【EDA技术与VHDL课件】第7章 LPM参数化宏模块应用
EDA技术与VHDL第7章LPM参数化宏模块应用7.1 宏功能模块概述Altera提供的宏功能模块与LPM函数有:类型类型类型类型描述描述描述描述•算术组件:包括累加器、加法器、乘法器和LPM算术函数;•门电路:包括多路复用器和LPM门函数。
•I/O组件:包括时钟数据恢复(CDR)、锁相环(PLL)、双数据速率(DDR)、千兆位收发器块(GXB)、LVDS接收器和发送器、PLL重新配置和远程更新宏功能模块。
•存储器编译器:包括FIFO Partitioner、RAM和ROM宏功能模块。
•存储组件:包括存储器、移位寄存器宏模块和LPM存储器函数。
7.1 宏功能模块概述7.1.1 知识产权(IP)核的应用AMPP程序MegaCore函数OpenCore评估功能OpenCore Plus硬件评估功能7.1 宏功能模块概述7.1.2 使用MegaWizard Plug-In Manager以下列出了MegaWizard Plug-In Manager为用户生成的每个自定义宏功能模块变量而生成的文件。
•<输出文件>.bsf :Block Editor中使用的宏功能模块的符号(元件)。
•<输出文件>.cmp:组件申明文件。
•<输出文件>.inc :宏功能模块包装文件中模块的AHDL包含文件。
•<输出文件>.tdf:要在AHDL设计中实例化的宏功能模块包装文件。
•<输出文件>.vhd:要在VHDL设计中实例化的宏功能模块包装文件。
•<输出文件>.v :要在VerilogHDL设计中实例化的宏功能模块包装文件。
•<输出文件>_bb.v :VerilogHDL设计所用宏功能模块包装文件中模块的空体或black-box申明,用于在使用EDA 综合工具时指定端口方向。
•<输出文件>_inst.tdf:宏功能模块包装文件中子设计的AHDL例化示例。
EDA技术与VHDL实用教程
EDA技术与VHDL实用教程
EDA与传统电子设计方法的比较
FPGA和DSP芯片实现FIR滤波器的速度对比
8位FIR滤 FPGA的处理速度 达到相当速度所需DSP芯片的指令执行速度
波器阶数
单位: MSPS
单位:MIPS
8
104
832
16
24
101
103
1616
2472
32
EDA技术与VHDL实用教程
EDA技术与VHDL实用教程
11
VHDL语言是一种高级描述语言,适用于 电路高级建模,综合的效率和效果较好。
Verilog-HDL语言是一种低级的描述语言, 适用于描述门级电路,容易控制电路资源, 但其对系统的描述能力不如VHDL语言。
EDA技术与VHDL实用教程
12
(二)可编程逻辑器件 可编程逻辑器件(简称PLD)是一种由用户 编程来实现某种逻辑功能的新型逻辑器件。
Expert LEVER
Actel
EDA技术与VHDL实用教程
IspLSI、pLSI、 MACH等
SX系列、MX系列
逻辑图、VHDL文本等 逻辑图、VHDL文本等
16
Actel Designer
EDA与传统电子设计方法的比较
手工设计方法的缺点是: 1)复杂电路的设计、调试十分 困难。 2)如果某一过程存在错误,查 找和修改十分不便。 3)设计过程中产生大量文档, 不易管理。 4)对于集成电路设计而言,设 计实现过程与具体生产工艺直 接相关,因此可移植性差。 5)只有在设计出样机或生产出 芯片后才能进行实测。 EDA技术有很大不同: 1)采用硬件描述语言作为设计输入。 2)库(Library)的引入。 3)设计文档的管理。 4)强大的系统建模、电路仿真功能。 5)具有自主知识产权。 6)开发技术的标准化、规范化以及IP 核的可利用性。 7)适用于高效率大规模系统设计的自 顶向下设计方案。 8)全方位地利用计算机自动设计、仿 真和测试技术。 9)对设计者的硬件知识和硬件经验要 求低。 10)高速性能好。 11)纯硬件系统的高可靠性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第7章 程序包和子程序
【例7-3】
L1 -------------------------------------------------------------------------------------------------------------------------
7-4是将与门作为元件在程序包中声明的示例,例7-5则使用 该程序包中的与门元件实现一个三输入逻辑与的电路。如果 将程序包保存于当前工程同一文件夹内编译,相当于放入工 作库WORK中,则通过使用语句“USE work.my_component.all;”就可打开该程序包中的所有内容(由 于WORK库是默认打开的,所以不需要“LIBRARY work;” 语句)。图7-2是综合后的RTL电路结构,图7-3是仿真结果。
PACKAGE 程序包名 IS
--程序包首
声明部分;
END PACKAGE 程序包名;
[PACKAGE BODY 程序包名 IS --程序包体
函数和过程的描述;
END PACKAGE BODY 程序包名;]
2
第7章 程序包和子程序 程序包一般由程序包首和程序包体构成,二者的程序包
名必须一致。在程序包首部分进行常量、数据类型、函数、 过程以及元件的声明。程序包体并不是必须的,只有当子程 序在程序包首中被声明了,才需要在程序包体中进行描述。 包含了程序包的常用VHDL代码结构可扩展为图7-1所示结 构。
L12
FUNCTION positive_edge(SIGNAL s: STD_LOGIC) RETURN BOOLEAN IS
L13
--函数的描述部分
L14
BEGIN
L15
RETUREN(s' EVENT AND s=' 1');
L16
END positive_edge;
L17 END my_package;
L2 LIBRARY ieee;
L3 USE ieee.std_logic_1164.all;
L4 -------------------------------------------------------------------------------------------------------------------------
例7-1例举了一个简单的程序包,仅包含数据类型和常 量的声明,因此并不需要程序包体。
3
第7章 程序包和子程序
主代码 库和程序包的 声明
实体的描述
结构体的描述
库 程序包 数据类型
常量
元件
子
函数
程
序
过程
图7-1 VHDL代码结构示意图
4
第7章 程序包和子程序
【例7-1】
L1 -------------------------------------------------------------------------------------------------------------------------
L5 PACKAGE my_package IS
--程序包首,程序包名是 my_package
L6
TYPE state IS ( st1, st2, st3, st4);
--数据类型 state
L7
CONSTANT a : STD_LOGIC_VECTOR( 7 DOWNTO 0) := "11111111"; --常数 a
L5 PACKAGE my_package IS
--程序包首,程序包名为 my_package
L6
TYPE color IS(red,green,blue); --枚举类型 color
L7
CONSTANT x: STD_LOGIC:= ' 0'; --常量 x
L8
FUNCTION positive_edge(SIGNAL s: STD_LOGIC) RETURN BOOLEAN;
第7章 程序包和子程序
第7章 程序包和子程序
7.1 程序包 7.2 子程序
1
第7章 程序包和子程序
7.1 程 序 包
经常需要使用的一些设计代码可以以元件、函数或过程
的形式出现,然后再放置于程序包中,编译到库中,这是代
码重用的重要手段。程序包中可以包含数据类型、常量、元
件、函数和过程等。程序包的语句结构如下:
--程序包体结束
L18 -------------------------------------------------------------------------------------------------------------------------
6
第7章 程序包和子程序 例7-3例举了一个利用VHDL语言描述的2输入与门,例
例7-2例举了一个包含函数声明的程序包,所以需要程 序包体。
【例7-2】
L1 -----ቤተ መጻሕፍቲ ባይዱ-------------------------------------------------------------------------------------------------------------------
L9 END my_package;
--程序包首结束
--声明函数
L10 ------------------------------------------------------------------------------------------------------------------------L11 PACKAGE BODY my_package IS --程序包体
L2 LIBRARY ieee;
L3 USE ieee.std_logic_1164.all;
L4 -------------------------------------------------------------------------------------------------------------------------
L8 END my_package;
L9 -------------------------------------------------------------------------------------------------------------------------
5
第7章 程序包和子程序