EDA_VerilogHDL_复习提纲
- 格式:doc
- 大小:81.50 KB
- 文档页数:5
感谢张孙D触发器:同步时序触发是输出信号q和qn与时钟的上升沿同步,也就是reset=0时不会马上出发还需要满足clk=1时,输出q和qn才会翻转。
异步时序触发是输出信号q和qn在reset=0时立刻翻转同步时序图像:异步时序图像:D触发器程序代码:(1)功能模块:`timescale 1ns/1nsmodule DFF (rest,d,clk,q,qn);input rest,d,clk;output reg q,qn;/*//not same stepalways@(posedge clk,negedge rest)if(!rest)beginq<=0;qn<=1;endelsebeginq<=d;qn<=!d;end*///same stepalways@(posedge clk)if(!rest)beginq<=0;qn<=1;endelsebeginq<=d;qn<=!d;endendmodule(2)Tb模块:`timescale 1ns/1nsmodule DFF_TB ;reg rest_i,d_i,clk_i;wire q_o,qn_o;DFFDUT(.rest(rest_i),.d(d_i),.clk(clk_i), .q(q_o),.qn(qn_o));always #5 clk_i=!clk_i;initialbeginclk_i=0;rest_i=0;#50d_i=1;rest_i=1;#50d_i=0;#40d_i=1;#40rest_i=0;#100rest_i=1;#1000$stop;endendmodule分频器:所谓分频器就是把原有的高频clk信号分为低频输出信号,就是相同时间输出比输入的信号周期更少。
如下图,clk_in信号一个周期是10ns,clk_out信号一个周期是80ns,所以下图是一个8分频,对Divider_count赋值可以实现2^n的分频,clk_in的定义是为了方便时钟控制信号,例如实现同步时序或异步时序;n_rst的定义是复位的意思,是为了使得设计出的电路跑飞时可以重新工作,clk_out是输出,Divider_counter是中间变量,使用它计数,赋值实现功能,不能在input,output中定义,令外,程序中注释掉得程序可以实现4分频,是利用逻辑比较的方法,比较特殊不是所有分频都可以用,此外想用这段程序前面定义的变量要改改。
第1章 EDA技术概述1. EDA:EDA(Electronic Design Automation)电子设计自动化,EDA技术依赖于强大的计算机,在EDA工具软件平台上,对以HDL(Hardware Description Language--硬件描述语言)为系统逻辑描述手段完成的设计文件,自动完成逻辑化简、逻辑分割、逻辑综合、结构综合(布局布线),以及逻辑优化和仿真测试等项功能,直至实现既定性能的电子线路系统功能。
2. EDA的设计输入有:图形输入方式:原理图输入,状态图输入;HDL文本输入:VHDL,Verilog3. 常用缩写FPGA(Field Programable Gate Araay)CPLD(Complex Programmable Logic Device)ASIC(Application Specific Interated Circuit)SOC(System on a Chip)SOPC(System-on-a-Programmable-Chip)HDL(Hardware Description Language)IP(Intellectual Property)CAD(Computer Aided Design)CAM(Computer Aided Manufacturing)CAT(Computer Aided Test)CAE(Computer Aided Engineering)CAA(Computer Aided Analysis)4.综合(Synthesis):将用行为和功能层次表达的系统转换成低层次的便于具体实现的模块组合装配过程。
整个综合过程就是将设计者在EDA平台上编辑输入的HDL文本、原理图或状态图形描述,依据给定的硬件结构组件和约束控制条件进行编译、优化、转换和综合,最终获得门级电路甚至更底层的电路描述网表文件。
5.适配:适配器也称结构综合器,它的功能是将由综合器产生的网表文件配置于指定的目标器件中,使之产生最终的下载文件,如JEDEC、Jam格式的文件。
EDA基础知识复习要点EDA(探索性数据分析)是指对数据集进行初步的探索,以了解数据的特征、相互关系和隐藏的模式。
它是数据分析的重要环节,可以帮助我们发现数据中的特殊特征、异常值和缺失值,为后续的建模和决策提供基础。
下面是EDA基础知识的复习要点。
1.数据集的基本情况-数据集的大小和维度:了解数据集包含的样本数量和特征数量。
-数据类型和缺失值:检查每个特征的数据类型并确定是否存在缺失值。
-数据的摘要统计信息:计算每个特征的基本统计指标,如均值、中位数、标准差等。
-数据可视化:使用直方图、箱线图、散点图等可视化工具来展示数据的分布和异常值。
2.数据的清洗和预处理-处理缺失值:根据缺失值的情况选择适当的方法填充或删除缺失值。
-处理重复值:检查是否存在重复的样本或特征,并根据需要删除或合并重复值。
-异常值处理:通过设定阈值或使用统计方法来检测和处理异常值。
-标准化和归一化:对于数据集中的数值型特征,可以进行标准化或归一化处理,使其具有相同的尺度。
3.特征工程-特征选择:根据特征的重要性和相关性选择最相关的特征,减少特征的维度。
-特征构建:使用原始特征衍生出新的特征,例如添加多项式特征、交互特征等。
4.数据探索-变量间的关系:分析变量之间的相关性和因果关系,帮助了解特征之间的影响。
-群组分析:将数据集中的样本划分为不同的组群,发现数据的内在结构和模式。
-关键性因素:识别影响特定结果的重要因素,找到数据集中的关键趋势和影响因素。
5.可视化分析-直方图:显示定量变量的分布情况,帮助了解数据的偏态和尾部情况。
-箱线图:显示定量变量的中位数、上下四分位数和异常值,有助于观察数据的离散情况。
-散点图:显示两个变量之间的关系,帮助检测变量之间的线性关系或异常值。
-折线图:显示变量随时间变化的趋势,用于分析时间序列数据。
6.结果解释和报告-对EDA结果进行总结和解释,包括数据集的特点、重要特征、异常值等。
-以清晰和可视化的方式呈现结果,如使用图表、表格等形式。
EDA技术复习资料一、填空1、EDA设计流程包括设计准备、设计输入、设计处理、和器件编程序四个步骤。
2、EDA的设计验证包括功能仿真、时序仿真和器件测试三个过程。
3、EDA的设计输入主要包括文本输入方式、图形输入方式、和波形输入方式。
4、文本输入是指采用硬件描述语言进行电路设计的方式。
5、功能仿真实在设计输入完成以后,选择具体器件进行编译之前进行的逻辑功能验证,因此又称为前仿真。
6、时序仿真实在选择了具体器件并完成布局、布线之后进行的时序关系仿真,因此又被称为后仿真或延时仿真。
7、当前最流行的并成为IEEE标准的硬件描述语言包括VHDL、和VERILOG HDL。
8、EDA工具大致分为设计输入编辑器、仿真器、HDL综合器、适配器(或布局布线器)、以及下载器等五个模块。
9、IEEE于1987年将VHDL采纳为IEEE#1076标准。
10、用VHDL语言书写的源文件。
即是程序又是文档,即是工程技术人员之间交换信息的文件,又可作为合同签约者之间的文件。
11、用VHDL设计的电路,既可以被高层次的系统调用,成为系统的一部分,也可以作为一个电路的功能快独立存在和独立运行。
12、VDHL设计实体的基本结构由库、程序包、实体、结构体和配臵等部分构成。
13、实体和结构体是设计实体的基本组成部分,它们可以构成最基本的VHDL程序。
14、根据VHDL语法规则,在程序中使用的文字、数据对象、数据类型都需要预先定义。
15、VHDL的实体由实体声明部分和结构体组成。
16、VHDL的实体声明部分制订了设计单元的输入输出端口或引脚,它是设计实体对外的一个通信界面,是外界可以看到的部分。
17、VDHL的结构体用来描述设计实体的逻辑结构和逻辑功能,它由VHDL语句构成,是外界看不到的部分。
18、在VHDL的端口声明语句中,端口方向包括IN、OUT、INOUT和BUFFER。
19、VHDL的数据型文字包括整数文字、实数文字、以数制基数表示的文字和物理量文字。
第一章1、EDA的定义:以计算机为工作平台,以EDA软件工具为开发环境,以硬件描述语言为设计语言,以ASIC为实现载体的电子产品自动化设计过程。
2、EDA的三大特征:硬件描述语言、系统级仿真、综合技术3、EDA的设计方法:自上而下4、EDA的核心:利用计算机完成电路设计的全程自动化5、常用的EDA工具及其作用:设计编辑器:一般支持图形输入,HDL文本输入,波形图输入等仿真器:完成行为模型的表达、电子系统的建模、逻辑电路的验证以及门级系统的测试HDL综合器:将软件描述与给定的硬件结构用某种网表文件的方式对应起来,成为相互的映射关系。
适配器:将由综合器产生的网表文件配置于指定的目标器件中,使之产生最终的下载文件,下载器:在功能仿真与时序仿真正确的前提下,将设计下载到对应的实际器件中,实现硬件设计6、EDA的设计流程:设计输入(将设计的系统或电路按照EDA开发软件要求的文本方式或图形方式表示出来,并送入计算机的过程。
)→综合(由高层次描述自动转换为低层次描述的过程,是EDA技术的核心。
)→适配(将综合后的网表文件针对某一具体的目标器件进行逻辑映射操作。
)→仿真(功能仿真:对逻辑功能进行模拟测试,看是否符合设计及要求;时序仿真:包含硬件特性参数,仿真精度高)→目标器件的编程下载(将编程数据发放到具体的可编程器件中去)→硬件测试(FPGA或CPLD直接用于应用系统的检测中)第二章1、PLD的基本结构:输入缓冲器、与阵列、或阵列、输出缓冲器;电路的核心是由门电路构成的与阵列、或阵列,逻辑函数靠它们实现。
与阵列产生乘积项,或阵列产生乘积项之和。
2、PLD的分类:简单PLD:PROM:与门阵列固定,或门阵列可编程。
优点:价格低、易编程性能可预测。
不足:规模大、速度低、功耗高。
PLA:与阵列和或阵列均可编程。
特点使用灵活,运行速度慢,价格高,缺少高质量的支持软件,使用不广泛。
PAL:与阵列可编程,或阵列固定,即乘积项可若干,数目固定。
EDA verilog hdl考试题和答案一、选择题(每题2分,共20分)1. 在Verilog HDL中,以下哪个关键字用于定义模块?A. moduleB. endmoduleC. inputD. output答案:A2. Verilog HDL中,以下哪个操作符用于按位取反?A. ~B. !C. ^D. &答案:A3. 在Verilog HDL中,以下哪个关键字用于定义组合逻辑?A. alwaysB. initialC. always_combD. always_seq答案:C4. 以下哪个是Verilog HDL中合法的标识符?A. 2variableB. variable2C. variable$2D. variable_2答案:B5. 在Verilog HDL中,以下哪个关键字用于定义信号的初始值?A. initialB. alwaysC. assignD. defparam答案:A6. 在Verilog HDL中,以下哪个关键字用于定义参数?A. parameterB. defparamC. localparamD. specparam答案:A7. 在Verilog HDL中,以下哪个关键字用于定义一个始终块,该块在仿真开始时执行一次?A. alwaysB. initialC. always_combD. always_ff答案:B8. 在Verilog HDL中,以下哪个操作符用于逻辑与?A. &&B. &C. ||D. |答案:B9. 在Verilog HDL中,以下哪个关键字用于定义一个始终块,该块在信号变化时触发?A. alwaysB. initialC. always_combD. always_ff答案:A10. 在Verilog HDL中,以下哪个关键字用于定义一个三态输出?A. outputB. inoutC. triD. wire答案:C二、填空题(每题2分,共20分)1. 在Verilog HDL中,____关键字用于定义一个始终块,该块在信号的边沿触发时执行。
1.什么是EDA技术?什么是狭义EDA?什么是广义EDA?P12.利用EDA技术进行电子系统设计的最终目标是什么?P23.IEEE标准化的HDL语言有哪两种?P34.EDA开发设计流程的步骤?其中设计输入有哪些方法?什么是综合?什么是适配?什么是功能仿真?什么是时序仿真?P5~85.可编程逻辑器件有哪些分类方法?各可分为哪几类?P106.简单PLD中的PROM和GAL在结构上有何异同?P127.CPLD器件的最基本可编程单元是什么?由哪几部分组成?P148.FPGA器件的最基本可编程单元是什么?由哪几部分组成?P179.CPLD的内部结构组成?P1410.FPGA的内部结构组成?P1711.查找表原理?P1612.JTAG边界扫描测试技术的作用?使用哪几个引脚?JTAG端口的用途?P2013.PLD的编程工艺?P2114.什么是编程?什么配置?15.什么是IP核?有哪几种?P2316.什么是基于乘积项结构的器件?什么是基于查找表结构的器件?第2章1.VHDL程序的组成部分?各部分的作用?P262.端口模式有哪几种?各模式有何异同?P293.子程序定义的位置?子程序包含哪两种类型?有何区别?(定义的区别?调用的区别?)P2644.什么是重载函数?P2665.程序包首和程序包体的关系P2776.VHDL标识符的使用规则?P367.VHDL的三种数据对象?使用时的区别?P37习题:2-2、2-4、2-61.VHDL的数据类型限定了数据对象的什么内容?P412.VHDL的数据类型分为哪几大类?P413.VHDL中顺序语句有哪些?它们执行特点是什么?P504.进程语句有什么特点?P525.触发器和锁存器的区别是什么?习题:3-1、3-2、3-5、3-6、3-8、3-12第5章1. VHDL中并行语句有哪些?它们执行特点是什么?P1102.条件信号赋值语句和选择信号赋值语句使用时有什么不同点,分别与进程中的哪种语句等效?P111~1123.块语句的作用?P1134.元件例化语句的作用?P1135.VHDL中可由用户自定义的数据类型有哪些?P1206.用VHDL设计一个奇偶校验电路。
eda与vhdl复习资料选择题练习一、VHDL基本结构1. 一个项目的输入输出端口是定义在A. 实体中B. 结构体中C. 任何位置D. 进程中2. 描述项目逻辑功能的是A. 实体B. 结构体C. 配置D. 进程3. 关键字ARCHITECTURE定义的是A. 结构体B. 进程C. 实体D. 配置4.VHDL语言共支持四种常用库,其中哪种库是用户的VHDL 设计现行工作库:A.IEEE库B.VITAL库C.STD库D.WORK工作库5. VHDL语言是一种结构化设计语言;一个设计实体(电路模块)包括实体与结构体两部分,结构体描述是A.器件外部特性;B.器件的内部功能;C.器件的综合约束;D.器件外部特性与内部功能。
6. 在VHDL中,库可以包含一个或多个A. 程序包B. 结构体C. 输入D. 输出7. 一个能为VHDL综合器接受,并能作为一个独立的设计单元的完整的VHDL程序成为A.设计输入B. 设计输出C. 设计实体D. 设计结构8. Q为输出信号,但内部设计会用到其反馈信号,其正确的端口说明是:A. Q:IN BIT;B. Q:OUT BIT;C. Q:INOUT BIT;D. Q:BUFFER BIT;9.VHDL语言程序结构的特点是把一个设计实体分成A.外部和内部B.实体和实体说明C.结构体和结构体说明D.图形部分和文本部分10. VHDL设计文件的实体说明部分描述的是A.电路系统的内部结构B.电路系统的逻辑功能C.电路系统的主要参数D.电路系统的外部端口11.VHDL语言程序结构中必不可少的部分是:A.库B.程序包C.配置D.实体和结构体12. 下列选项中,哪些项在VHDL程序设计文件中属于可选部分A.库和实体B.实体和结构体C.结构体和配置D. 库、程序包和配置13. 关于VHDL中实体说明的格式,以下叙述不正确的是A.实体说明以“ENTITY 实体名IS”开头,以“END 实体名”结束B.实体说明中包含类属表和端口说明两部分C.端口说明中只需要规定端口的模式即可D.实体名一定要与设计文件同名14. 在VHDL的实体说明中,端口名表的作用是A.列出所有输入端口的名称B.列出所有输出端口的名称C.说明实体输入、输出端口的信号类型及端口模式D.只定义输入、输出端口的数目15. 在VHDL中,为了使已声明的数据类型、子程序、元件能被其他设计实体调用或共享,可以把它们汇集在中。
EDA复习的知识要点及答案EDA知识要点:1、EDA技术的含义。
EDA(Electronic Design Automation)即电子设计自动化:是以计算机为工作平台以EDA软件工具为开发环境以软件描述语言为设计语言以ASIC为实现载体的电子产品自动化设计过程。
2、简述EDA技术经历了那几个发展阶段。
EDA技术:计算机辅助设计CAD、计算机辅助工程CAE、电子系统设计自动化ESDA.3、可编程器件(PLD)分为哪两类4、可编程器件分为哪些类?可编程逻辑器件分为:简单可编程逻辑器件SPLD、复杂可编程逻辑器件CPLD、现场可编程门阵列FPGA、在系统可编程ISP逻辑器件。
5、简述EDA技术的CPLD/FPGA的设计流程。
6、目前国际上较大的PLD器件制造公司有那几家公司。
三大公司:Altera、Xilinx西林、Lattice来迪恩。
7、目前较流行的集成EDA开发环境(软件)有那些?Altera公司的QuartusⅡ和maxplusⅡ、Xilinx公司的ISE、Lattice公司的ispLEVER Adbanced System。
8、目前流行的HDL语言有那些?ABEL-HDL、AHDL、VHDL9、硬件描述语言(HDL)的种类很多?10、什么是ASIC。
ASIC(Application Specific Intergrated Circuits)即专用集成电路,按照设计方法不同可分为:全定制ASIC、半定制ASIC、可编程ASIC11、VHDL作为工业标准,是由那个机构制定并公布的。
IEEE12、VHDL是由什么机构制定并公布的。
IEEE1076、IEEE1076-199313、VHDL的两大类基本描述语句是什么。
VHDL的基本描述语句有并行语句(Concurrent Statements)和顺序语句(Sequential Statements)两大类14、从执行方式看VHDL的基本描述语句包括哪两大基本描述语句?15、MAX+PLUSⅡ平台上,原理图、仿真波形文件、VHDL文件的扩展名是什么?原理图.gdf、仿真.scf、vhdl.vhd。
一、基础知识:1、现代电子设计技术的核心已趋转向基于计算机的EDA技术,即电子设计自动化技术。
2、目前,应用最为广泛的可编程逻辑器件是CPLD和PFGA。
3、大规模可编程器件FPGA是基于查找表结构的可编程逻辑器件。
4、利用EDA工具,设计者只需用硬件描述语言来完成对系统功能的描述,然后由计算机软件自动完成设计处理,得到PLD设计结果。
5、将硬件描述语言转化为硬件电路的重要工具软件称为HDL综合器。
6、基于EDA软件的FPGA设计流程:原理图/HDL文本输入→综合→适配→功能仿真→编程下载→硬件测试7、VHDL程序的基本结构由设计库、程序包、实体、结构体、配置5个部分组成。
8、VHDL程序设计结构体的基本功能是说明本设计内部结构与外部端口间的逻辑关系9、一个实体可以拥有一个或多个结构体10、在VHDL中用配置来把特定的结构体关联到一个确定的实体。
11、VHDL的数据类型STD_LOGIC定义了9种数据,其中‘Z’表示高阻态。
12、VHDL的顺序语句只能出现在进程、子程序中,是按照书写顺序自上而下,一条一条执行,其中子程序包括函数和过程。
13、VHDL的两大基本描术语句是顺序语句和并行语句。
14、在VHDL中不完整条件语句,其综合结果为时序逻辑电路;而完整条件语句综合结果为组合逻辑电路。
15、能反馈输出信号至内部的端口模式是BUFFER16、进程中的变量赋值语句,其变量更新是立即完成的17、在VHDL语言中,表示时钟clk的上升沿语句:clk’event and clk = ‘1’18、在VHDL中为目标信号signal赋值的符号为“<=”,而目标变量赋值符号为“:= ”19、STD_LOGIC和STD_LOGIC_VECTOR数据类型是VHDL预定义的标准数据类型,使用前必需显式声明。
20、VHDL的数据对象分为常量、变量和信号3类。
21、FPGA器件特点采用SRAM工艺22、综合是指:是将电路的高级语言转化成低级的,可与FPGA/ CPLD的基本结构相映射的网表文件;也是将软件描述与给定的硬件结构用电路网表文件表示的映射过程,并且这种映射关系不是唯一的。
第1章1.什么是EDA技术?什么是狭义EDA?什么是广义EDA?P1基于计算机的电子设计自动化技术;侠义:用编程的方式在一块芯片内设计数字电路广义;用软件自动合计电子产品2.利用EDA技术进行电子系统设计的最终目标是什么?P2完成专用集成电路或印刷电路板的设计和实现3.IEEE标准化的HDL语言有哪两种?P4VHDL和Verilog4. EDA开发设计流程包含哪些步骤?各步骤的作用是什么?P7~10设计输入(将电子系统以一定的表达方式输入计算机),综合(将用行为和功能层次表达的电子系统转换为低层次的、便于具体实现的模块组合装配的过程),适配(将综合器产生的网表文件配置于指定的目标其中,是指产生最终的下载文件),仿真(根据一定的算法和仿真库对设计模拟,验证设计正确性,一边排除错误),编程下载5.可编程逻辑器件有哪些分类方法?各可分为哪几类?P11集成度(高低集成度)结构(查中表,乘积项)、编程工艺(熔丝,反熔丝,EPROM\EEPROM\SRAM\Flash)6.简单PLD中的PROM、PLA、查中表,乘积项PAL和GAL在结构上有何异同?与阵列只有PROM固定,或阵列只有GAL固定(其他都是可编程的)7.CPLD器件的最基本可编程单元是什么?由哪几部分组成?P16LC1、逻辑阵列2、乘积项选择矩阵3、可编程寄存器8.FPGA器件的最基本可编程单元是什么?由哪几部分组成?P19LE1、一个四输入的查找表LUT2、进位逻辑链3、寄存器逻辑链4、一个可编程的寄存器9.CPLD的内部结构组成?P15-171、逻辑阵列块2、逻辑宏单元3、扩展乘积项4、可编程连线阵列5、I/O控制块10.FPGA的内部结构组成?P18-202、1、逻辑阵列块2、嵌入式存储器3、嵌入式硬件乘法器、4、I/O单元5、嵌入式PLL11.查找表原理?P18查找表(Look-Up-Table)简称为LUT,LUT本质上就是一个RAM。
EDA技术与VHDL第1章概述第2章PLD硬件特性与编程技术第3章VHDL基础1. 实体的概念?程序<-->元件图2. 结构体的概念?程序<-->逻辑电路3. P42页图3-2对应的逻辑表达式是什么?为什么能够实现2选1多路选择器?4. 2选1多路选择器的3种实现方法?真值表<-->逻辑表达式<-->逻辑电路图<-->程序?5. P44页图3-3/mux21a功能时序波形的理解?6. 标识符能用关键词起名,也能用EDA工具库中预定义的元件名起名?7.综合的作用或意义?8. 可综合的端口模式分别是?数据的流动方向和方式?9. INOUT、BUFFER的区别?10.什么是RTL?11.什么是VHDL的RTL描述?12.在VHDL中,所有合法的顺序描述语句都必须放在进程语句中?13.通常要求将进程中所有的输入信号都放在敏感信号表中?14.试叙述进程的‚启动-运行‛过程?15.在一个结构体中只能包含一个进程语句结构?16.所有进程语句都是并行语句?17.任一进程PROCESS内部语句结构属于顺序语句?18.VHDL代码文件的后缀扩展名是?19.建议程序文件名与该程序的实体名一致?20.文件名区分大小写吗?21.P48页例3-6,D触发器工作原理?22.STD_LOGIC数据类型定义的数据有几个?分别是什么?什么含义?综合器支持哪几个数据?23.关键词‚EVENT‛的作用?24.假设clock的数据类型是BIT,试解释为什么‚clock’ EVENT AND clock=’1’”表达式是用来对clock的上升沿进行检测?25.结合P48例3-6说明,为什么不完整条件语句是构建时序电路的关键?26.检测时钟信号上升沿的不同表述方法?(4)27.半加器:真值表<-->逻辑表达式<-->逻辑电路图<-->程序?28.全加器电路图?29.双横线‚--‛?30.元件例化语句的表达式?例化名和元件名如何理解?PORT MAP ()端口映射语句中的‚端口名=>连接端口名‛,端口名和连接端口名的区分?31.试用两种方法设计4位二进制加法计数器?(1:BUFFER;2:SIGNAL)32.设计异步复位同步使能十进制加法计数器?(流程图)33.‚OTHERS=>X‛中‚OTHERS‛的作用?34.异步、同步的概念?35.设计同步并行预臵功能的8位右移移位寄存器?P66例3-22(流程图)36.为什么该移位寄存器是算数右移移位寄存器?(SRA)37.数据对象的种类?38.常数定义的格式?常数定义的设计单元?常数的可视性?常数如果分别在程序包、结构体和进程中定义,哪一个的使用范围广?39.变量的特点(4)?变量定义的格式?40.信号的使用和定义范围?41.符号‚<=‛两边的数值总是一致的?判断题:1)信号可以在进程中定义?变量可以在结构体中定义?2)信号和常数都可以在实体、结构体和程序包中定义?3)常数和变量都可以在进程和子程序中定义?4)信号可以在函数和过程中定义?5)变量可以在程序包中定义?6)变量赋值需要延时?变量、信号、常量都可以列入进程的敏感表?7)实体的端口可以列入进程的敏感表?8)信号赋值延时(不指定)需要多长时间?指定延时的格式是?指定延时综合器支持吗?9)实体的端口可以看作一种定义数据流向的隐性信号?10)信号可以看作实体内部的没有定义数据流向的端口?42.在进程和结构体的并行语句结构中,信号赋值的区别?43.变量和信号在赋值上的异同点?表3-1(行为特性)44.结合例3-25和例3-26说明信号与变量在延时特性上的差别?(3)45.变量和信号的赋值都需要一个δ延时?46. 在进程中,所有赋值语句,包括变量赋值,都必须在一个δ延时中完成?47.在进程中的所有信号赋值是‚假‛顺序‚真‛并行?48. 如在进程中存在对同一信号多次赋值,使信号值发生更新的是第一个赋值源?49. 结合例3-28和例3-29说明顺序语句中信号与变量之间的差别?50. 结合图3-20说明例3-30的工作原理?51. IF语句的4种结构?52. 非完整性条件语句<-->时序电路,完整性条件语句<-->组合电路53. 8线-3线优先编码器的设计?54. PROCESS结构中的顺序语句及其顺序执行过程只是相对于计算机中的软件行为仿真的模拟过程而言?55. PROCESS语句结构如何执行?56. 多数VHDL综合器要求敏感信号表必须列出本进程中所有输入信号名?57. PROCESS语句结构的特点?58. PROCESS为一有限循环语句?59. PROCESS中的顺序语句具有明显的顺序/并行运行双重性?60. 软件语言中每一条语句的执行是按CPU的机器周期的节拍顺序执行?每一条语句执行的时间是确定的?61. 在PROCESS中,一个执行状态的运行周期,即从PROCESS的启动执行到遇到END PROCESS为止所花的时间与任何外部因素都无关(从综合结果来看),甚至与PROCESS语法结构中的顺序语句的多少都没有关系,其执行时间从行为仿真的角度看(如果没有设臵任何显式的惯性或传输延时),只有一个VHDL模拟器的最小分辨时间,即一个δ时间;但从综合和硬件运行的角度看,其执行时间是0;与信号的传输延时无关,与被执行的语句的实现时间也无关,即在同一PROCESS中,10条语句和1000条语句的执行时间是一样的,显然,从效果上看,PROCESS中的顺序语句具有并行执行的性质。
1、进程中的信号赋值语句,其信号更新是 C 在进程的最后完成;。
2、子系统设计优化,主要考虑提高资源利用率减少功耗(即面积优化),以及提高运行速度(即速度优化);指出下列哪些方法是面积优化___B__②资源共享③逻辑优化④串行化3、综合是EDA设计流程的关键步骤,在下面对综合的描述中,D综合可理解为一种映射过程,并且这种映射关系是唯一的,即综合结果是唯一的。
是错误的。
4、IP核在EDA技术和开发中具有十分重要的地位,IP分软IP、固IP、硬IP;下列所描述的IP核中,对于硬IP的正确描述为___ D__都不是。
5、VHDL语言是一种结构化设计语言;一个设计实体(电路模块)包括实体与结构体两部分,结构体描述_____B_器件的内部功能_____。
6、下列标识符中,____B_9moon_____是不合法的标识符。
7、下面对利用原理图输入设计方法进行数字电路系统设计,那一种说法是不正确的___B_原理图输入设计方法无法对电路进行功能描述__。
8、电子系统设计优化,主要考虑提高资源利用率减少功耗----即面积优化,以及提高运行速度----即速度优化;指出下列那种方法不属于速度优化:____B_ 串行化9、大规模可编程器件主要有FPGA、CPLD两类,下列对FPGA结构与工作原理的描述中,正确的是C、基于SRAM的FPGA器件,在每次上电后必须进行一次配置;10、IP核在EDA技术和开发中具有十分重要的地位;提供用VHDL等硬件描述语言描述的功能块,但不涉及实现该功能块的具体电路的IP核为____A、软IP______。
11、不完整的IF语句,其综合结果可实现___A_时序逻辑电路____。
12.下列EDA软件中,哪一个不具有逻辑综合功能:___B_ModelSim13、基于EDA软件的FPGA / CPLD设计流程为:原理图/HDL文本输入→________→综合→适配→__________→编程下载→硬件测试。
1.EDA(electronic design automation)电子设计自动化2.FPGA 全称field programmable gate array 现场可编程门阵列3.CPLD 全称complex programmable logic device 可编程逻辑器件4.VHDL 全称VHSIC hardware description language 标准硬件描述语言5.综合:将用行为和功能层次表达的电子系统转换为低层次的便于具体实现的模块组合装配的过程。
综合过程将把软件设计的HDL描述与硬件结构挂钩,是将软件转化为硬件电路的关键步骤。
综合就是将电路的高级语言(如行为描述)转换成低级的,可与FPGA/CPLD的基本结构相映射的网表文件或程序。
6.基于EDA软件的FPGA/CPLD开发流程图P127.时序仿真:就是接近于真实器件运行特性的仿真,仿真文件中已包含了器件硬件特性参数。
& 功能仿真:是直接对HDL、原理图描述或其他描述形式的逻辑功能进行测试模拟,以了解其实现的功能是否满足原设计的要求。
9.IP就是知识产权核或知识产权模块的意思。
10.IP 分软IP、硬IP、固IP»11.软IP:不涉及用什么具体电路元件。
12.固IP:完成了综合的功能块。
13.硬IP:提供设计的最终阶段产品:掩模。
14.IP模块的优化设计(四最):芯片面积最小、运行速度最快、功率消耗最低、工艺容差最大。
15.可编程器件的演变过程(了解):20世纪70年代,PROM, PL A: 70年代末,PLA改进成PAL;80年代初,发明了GAL;80年代中期,产生FPGA,又推出EPLD比GAL有更高的集成度;80年代末,CPLD; 90年代后,加法器、乘法器、RAM、CPU、DSP 核等。
16.PLD器件从结构上分为两类:一类属乘积项结构器件,如CPLD»另一类是基于查表结构的器件,如FPGA。
第1章1.什么是EDA技术?什么是狭义EDA?什么是广义EDA?P1EDA 技术是一门迅速发展起来的新技术。
EDA 设计就是设计人员在计算机上通过特定功能的软件开发工具,以全自动或半自动化方式按要求完成电子系统的设计。
狭义EDA 技术就是以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件的方式设计的电子系统到硬件系统的逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真,直至完成对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片的一门新技术。
简单的说狭义EDA 技术也就是使用EDA 软件进行数字系统的设计。
广义EDA 技术就是通过计算机及其电子系统的辅助分析和设计软件,完成电子系统某一部分的设计过程。
2.利用EDA技术进行电子系统设计的最终目标是什么?P23.IEEE标准化的HDL语言有哪两种?P3VHDL和Verilog4.EDA开发设计流程的步骤?其中设计输入有哪些方法?什么是综合?什么是适配?什么是功能仿真?什么是时序仿真?P5~8步骤:设计目标、设计输入、功能仿真、综合优化、综合后仿真、实现或适配、时序仿真、设计下载、系统调试以及验证等。
设计输入方法:图形输入、硬件描述语言代码文本输入。
综合:表面含义:把抽象的实体结合成单个或统一的实体。
电子设计领域:将用行为和功能层次表达的电子系统转换为低层次的便于具体实现的模块组合装配的过程。
适配:指将综合生成的逻辑网表描述为具体CPLD芯片的实现过程。
功能仿真:是对HDL、原理图描述或其他描述形式的逻辑功能进行测试模拟,以了解其实现的功能是否满足原设计要求的过程。
时序仿真:接近真实器件时序性能运行特性的仿真。
5.可编程逻辑器件有哪些分类方法?各可分为哪几类?P10●集成度分:低集成度芯片、高集成度芯片;●结构:乘机项结构器件、查找表结构器件;●编程工艺:熔丝型、反熔丝型、EPROM型、EEPROM型、SRAM型、Flash型。
EDA复习《EDA技术》复习⼀、课程的基本概念●名词解释:EDA:电⼦设计⾃动化 HDL:硬件描述语⾔VHDL:超⾼速集成电路硬件描述语⾔ CPLD:复杂可编程逻辑器件FPGA:现场可编程门阵列 IP:知识产权核●HDL是EDA技术的重要组成部分,是电⼦系统硬件⾏为描述、结构描述、数据流描述的语⾔,它的种类很多,HDL有:VHDL、Verilog HDL、ABEL、AHDL、SystemVerilog、SystemC。
●EDA开发流程:设计输⼊、综合、适配、仿真/下载。
其中设计输⼊有:原理图输⼊、硬件描述语⾔输⼊和波形输⼊三种。
●⽂件管理:⼯程的后缀.qpf。
原理图后缀.bdfVHDL程序后缀.vhd 波形⽂件后缀.vwf⼆、结构及结构的内容和作⽤VHDL程序基本结构:Library(库及程序包)、Entity(实体区)、Architecture(结构体区)。
端⼝模式:in;out;inout;buffer。
数据类型:bit、bit_vector、std_logic、std_logic_vector;integer、real。
标识符:取名规则有由字母、数字以及下划线组成;必须以字母开头,不分⼤⼩写;不能⽤下划线结尾,下划线不能连⽤;不能⽤VHDL的保留字即程序本⾝带有的关键字,即是在程序中会变蓝⾊的字;●结构体:是⽤来描述输出与输⼊之间的逻辑关系,即器件的内部功能。
数据对象:常数constant、变量variable、信号signal。
(1) 三种说明语句的格式是⼀样的。
信号赋值<=; 变量⽤:=。
(2) signal在architecture与begin间说明,variable在process与begin内。
(3) signal是全局量,variable是局部量。
(4) signal有延迟,优先执⾏最后命令,variable⽆延迟,执⾏每个命令;各种语句:并⾏语句(when-else、with--select、process等)顺序语句(if、case--when、loop、Wait--until等)。
1.EDA技术是20世纪后期,伴随着微电子技术、大规模集成电路制造技术、计算机辅助工程、可编程逻辑器件以及电子设计技术和工艺的发展而同步发展形成的一门综合性的技术与学科。 2在EDA工具软件平台上,自动完成从软件方式描述的数字系统到硬件系统的逻辑化简、逻辑分割、逻辑综合、结构综合(布局布线)、逻辑优化和仿真测试等功能,随之完成对于特定目标芯片的适配、逻辑映射、编程下载等工作,直至硬件实现整个数字系统 3.综合是将高层次上描述的电子系统转换为低层次上描述的电子系统,以便于系统的具体硬件实现 综合器是能自动将高层次的表述(系统级、行为级)转化为低层次的表述(门级、结构级)的计算机程序 4.设计输入的方式有原理图、硬件描述语言、状态图以及波形图 5.按照仿真的电路描述级别的不同,HDL仿真器可以完成:系统级仿真,行为级仿真,RTL级仿真,门级(时序)仿真。按照仿真是否考虑硬件延时分类,可以分为:功能仿真和时序仿真。仿真器可分为基于元件(逻辑门)仿真器和基于HDL语言的仿真器 6. IP核是知识产权核或知识产权模块,在EDA技术中具有十分重要的地位。半导体产业的IP定义为用于ASIC或FPGA中的预先设计好的电路功能模块。IP分为软IP、固IP和硬IP。 7.可编程逻辑器件PLD是一种通过用户编程或配置实现所需逻辑功能的逻辑器件,也就是说用户可以根据自己的需求,通过EDA开发技术对其硬件结构和工作方式进行重构,重新设计其逻辑功能 8.两种可编程逻辑结构是基于与-或阵列可编程结构(乘积项逻辑可编程结构)、基于SRAM查找表的可编程逻辑结构 9.PLD按集成度分类:简单PLD、复杂PLD;按结构分类:基于 “与-或”阵列结构的器件、基于查找表结构的器件;从编程工艺上分类:熔丝型、反熔丝型、EPROM型、EEPROM型、SRAM型、Flash型 10.四种简单逻辑器件:PROM中固定的与阵列,可编程或阵列;PLA是与阵列、或阵列都可编程;PAL中或阵列固定,与阵列可编程;GAL是或阵列、与阵列都可编程,输入部分增加了输出逻辑同单元(OLMC) 11.CPLD的组成结构:逻辑阵列块(由逻辑宏单元构成)、扩展乘积项(共享和并联)、可编程连线阵列、I/O控制块 12.FPGA的组成结构:逻辑阵列块LAB(由多个逻辑宏单元构成)、嵌入式存储器块、嵌入式硬件乘法器、I/O单元和PLL等模块 13.Verilog的端口模式有三种:输入端口、输出端口、双向端口,对应的端口定义关键词分别是:input、output、inout 14.Verilog中常用有两种变量:寄存器型变量(用reg定义)、网线型变量(用wire定义) 15.Verilog有两种赋值方式:阻塞式赋值(=)、非阻塞式赋值(<=) 16.Verilog有四种循环语句:for语句、repeat语句、while语句、forever语句 17.Verilog的描述风格:RTL描述 、数据流描述、行为描述、结构描述 18.从状态机的信号输出方式上分,有Mealy型和Moore型两种状态机;从状态机的描述结构上分,有单过程状态机和多过程状态机;从状态机表达方式上分,有符号化状态机和确定状态编码的状态机;从状态机编码方式上分,有顺序编码状态机、一位热码编码状态机或其他编码方式状态机。 19.状态机结构通常包含说明部分、主控时序过程、主控组合过程、辅助过程等几个部分 20.非法状态是在状态机设计中,使用枚举类型和直接指定状态编码的程序中,特别是使用了一位热编码方式后,总是不可避免地出现大量剩余状态,即未被定义的编码组合。这些状态在状态机的正常运行中是不需要出现的。剩余状态的处理要不同程度地耗用逻辑资源,这就要求设计者在选用何种状态机结构,何种状态编码方式,何种容错技术及系统的工作速度与资源利用率方面权衡比较,以满足自己的设计要求
1.简述自顶向下的设计方法 答:①从自然语言说明到HDL的系统行为描述;②从HDL的系统行为描述到RTL描述;③从RTL描述到逻辑门级描述;④从门级描述到最终可以物理布线实现的底层电路;(以上可以理解成是逐步综合的过程。)⑤后期设计还包括涉及硬件实现和测试。 2.简述EDA的设计流程 答:①图形输入:a.原理图b.硬件描述语言c.状态图d.波形图;②HDL文本输入;③综合;④适配;⑤功能仿真与时序仿真;⑥编程下载;⑦硬件测试 3.简述过程语句的执行过程 答:①由always@引导的过程语句结构是Verilog中最常用和最重要的语句结构。②任何顺序语句都必须放在过程语句结构中。③通常要求将过程语句中所有的输入信号都放在敏感信号表中。(a.用文字or连接所有敏感信号。b.用逗号区分或连接所有敏感信号。c.省略形式,只写成(*),或直接写成 always @ * ,显然试图通过选择性地列入敏感信号来改变逻辑设计是无效的。)④过程语句的执行依赖于敏感信号的变化(发生事件)。当某一敏感信号发生变化,过程语句被启动,内部的所有顺序语句被执行一遍,然后返回过程起始端,再次进入等待状态,直到下一次某一敏感信号发生变化再次进入“启动-运行”状态。过程语句结构是一个不断重复运行的模块。⑤一个模块中可以包含任意个过程语句,过程语句本身属于并行语句,而由过程引导的各类语句属于顺序语句。 4.简述什么是元件例化 答:元件例化就是引入一种连接关系,将预先设计好的元件,与当前设计模块中的指定端口相连接,从而构成层次化的设计方式。元件例化可以是多层次的,一个调用了较低层次元件的设计模块,也可以被更高层次的设计模块调用,成为高层次设计模块中的一个元件。被例化的元件可以以不同的形式出现,可以是Verilog设计文件,可以是FPGA元件库中的元件,或者是以别的硬件描述语言设计的元件,还可以是IP核。 5.简述阻塞赋值语句和非阻塞赋值语句的过程区别 答:阻塞赋值语句的执行过程可以分成两步:计算驱动表达式的值;完成赋值(目标变量获得更新)。①阻塞赋值是一种理想化的数据传输,赋值立即发生,不存在延时。②执行阻塞赋值时,先计算驱动表达式的值,然后即刻完成赋值,目标变量立即获得更新,且在此过程中其他同类赋值语句必须停止工作,即所谓“阻塞”。③阻塞赋值语句的执行类似于软件语言语句的执行,即具有顺序执行的特点。阻塞赋值语句的先后顺序将直接影响综合的结果。④在过程中,允许对同一目标变量进行多次赋值和驱动,“=”左边目标变量的值将随赋值语句前后顺序的运算而改变。 非阻塞赋值语句的执行过程可以分成三步:计算驱动表达式的值;延时δ时间;完成赋值(目标变量获得更新)。①非阻塞赋值比较接近实际电路的运行,从综合的角度考虑到电路的延时性和并行性。②执行非阻塞赋值时,先计算驱动表达式的值(理论上立即完成无需耗时),随后启动一个δ延时器(δ延时时间就是过程的运行时间),延时时间到(过程执行结束),此时才完成赋值,目标变量才被更新。③延时时间段允许执行其他同类赋值语句,即所谓“非阻塞”。由于其他同类赋值语句驱动表达式的运算也不花费时间,所以所有语句的延时起始时刻和延时时间长短是相同的,延时时间结束,所有语句的目标变量同时被更新,可以理解成赋值语句并行执行。④非阻塞赋值语句的并行执行可以理解成:首先按顺序计算“<=”右侧表达式的值,然后经过δ延时,<=左侧的目标变量同时获得更新值(同时完成赋值)。⑤在过程中,允许对同一目标变量进行多次赋值或驱动(作为并行语句的连续赋值语句不允许这种现象),被赋值目标变量接受最接近过程结束的那一个驱动源数据。⑥过程启动后,所有非阻塞和阻塞赋值语句,都必须在一个δ延时中完成,其中阻塞赋值在δ延时前已按顺序完成所有赋值,但非阻塞赋值这时刚进入赋值的第一步,且必须在δ延时后同时完成赋值。⑦如果有两个过程,一个过程中全部是阻塞式赋值,一个过程中全部是非阻塞式赋值,它们的执行周期是相同的,不会有谁比谁更快的现象。 6.简述if语句的几种主要结构 答:①if(条件表达式) begin 语句块;end ②if(条件表达式) begin 语句块1;end else begin 语句块2;end ③if(条件表达式1) begin 语句块1;end else if(条件表达式2) begin 语句块2;end … else if(条件表达式n) begin 语句块n;end else begin 语句块n+1;end 7.简述Moore型和Mealy型状态机的区别 答:Mealy型状态机的输出是当前状态和所有输入信号的函数,它的输出是在输入变化后立即发生的,不依赖时钟的同步。Moore型状态机的输出则仅为当前状态的函数,这类状态机在输入发生变化时还必须等待时钟的到来,时钟状态发生变化时才导致输出的变化,所以比Mealy机要多等待一个时钟周期。
1.8选1数据选择器 module MUX81a(a,b,c,d,e,f,g,h,s2,s1,s0,y); input a,b,c,d,e,f,g,h,s2,s1,s0; output y; reg y; always @(a,b,c,d,e,f,g,h,s2,s1,s0) begin : MUX81 case({s2,s1,s0}) 3'b000:y<=a; 3'b001:y<=b; 3'b010:y<=c; 3'b011:y<=d; 3'b100:y<=e; 3'b101:y<=f; 3'b110:y<=g; 3'b111:y<=h; default:y<=a; endcase end endmodule module MUX81a(a,b,c,d,e,f,g,h,s2,s1,s0,y); input a,b,c,d,e,f,g,h,s2,s1,s0; output y; reg [2:0] sel; reg y; always @(a,b,c,d,e,f,g,h,sel) begin sel={s2,s1,s0}; if(sel==0) y=a; else if(sel==1) y=b; else if(sel==2) y=c; else if(sel==3) y=d; else if(sel==4) y=e; else if(sel==5) y=f; else if(sel==6) y=g; else y=h; end endmodule
2.一位全加器 module h_adder(a,b,so,co); input a,b; output so,co; assign {co,so}=a+b; endmodule module or2a(a,b,c); output c; input a,b; assign c=a|b; endmodule module f_adder(ain,bin,cin,cout,sum); output cout,sum; input ain,bin,cin; wire e,d,f; h_adder u1(ain,bin,e,d); h_adder u2(.a(e),.so(sum),.b(cin),.co(f)); or2a u3(.a(d),.b(f),.c(cout)); endmodule