EDA技术课后答案
- 格式:doc
- 大小:2.86 MB
- 文档页数:15
作业3-6module Mux3_1(a1,a2,a3,s0,s1,outy); input a1,a2,a3,s0,s1;output outy;reg outy;reg temp;always @(a2,a3,s0)beginif(s0 == 1'b0)temp = a2;elsetemp = a3;endalways @(a1, temp,s1)beginif(s1 == 1'b0)outy = a1;elseouty = temp;endendmodule作业3-7 半减器module H_suber(x,y,diff,s_out);input x,y;output diff,s_out;reg s_out;wire diff;assign diff = x ^ y;always @(x,y)beginif(x < y)s_out = 1'b1;elses_out = 1'b0;endendmodule全减器module F_suber(x,y,sub_in,diffr,sub_out); input x,y,sub_in;output diffr,sub_out;wire diffr,sub_out;wire H_diff,H_sout,s_out;assign sub_out = s_out || H_sout;H_suber U1 (.x(x),.y(y),.diff(H_diff),.s_out(H_sout));H_suber U2 (.x(H_diff),.y(sub_in),.diff(diffr),.s_out(s_out));Endmodule8位全减器module Bit8_suber(X,Y,Sub_in,Diff,Sub_out);input[7:0] X,Y;input Sub_in;output[7:0] Diff;output Sub_out;wire[7:0] Diff;wire Sub_out;wire[6:0] sub_out;F_suber U1(.x(X[0]),.y(Y[0]),.sub_in(Sub_in),.diffr(Diff[0]),.sub_out(sub_out[0]));F_suber U2(.x(X[1]),.y(Y[1]),.sub_in(sub_out[0]),.diffr(Diff[1]),.sub_out(sub_out[1])); F_suber U3(.x(X[2]),.y(Y[2]),.sub_in(sub_out[1]),.diffr(Diff[2]),.sub_out(sub_out[2])); F_suber U4(.x(X[3]),.y(Y[3]),.sub_in(sub_out[2]),.diffr(Diff[3]),.sub_out(sub_out[3])); F_suber U5(.x(X[4]),.y(Y[4]),.sub_in(sub_out[3]),.diffr(Diff[4]),.sub_out(sub_out[4])); F_suber U6(.x(X[5]),.y(Y[5]),.sub_in(sub_out[4]),.diffr(Diff[5]),.sub_out(sub_out[5])); F_suber U7(.x(X[6]),.y(Y[6]),.sub_in(sub_out[5]),.diffr(Diff[6]),.sub_out(sub_out[6])); F_suber U8(.x(X[7]),.y(Y[7]),.sub_in(sub_out[6]),.diffr(Diff[7]),.sub_out(Sub_out)); Endmodule作业3-13Amodule DFF_A(D,EN,CLK,RST,Q,Q1);input D,EN,CLK,RST;output Q,Q1;reg Q;wire Q1;wire D_temp;assign D_temp = D && EN;assign Q1 = (~D_temp)||RST;always @(negedge RST or posedge CLK)beginif(!RST)Q <= 1'b0;elseif(EN)Q <= D;elseQ <= Q;endmoduleBmodule DFF_B (A,B,C,D,Y);input A,B,C,D;output Y;reg Y;wire temp1,temp2,temp3;assign temp1 = A || B;assign temp2 = C && D;assign temp3 = temp1 ^ temp2; always @(A,temp1,temp3)beginif(temp1)Y = temp3;elseY = A;endendmoduleCmodule DFF_C(RST,D,CLK,Q,DOUT); input RST,D,CLK;output Q,DOUT;reg Q,DOUT;reg D_temp1;wire D_temp2;assign D_temp2 = D ^ D_temp1; always @(RST,D)beginif(RST)D_temp1 = 1'b0;elseD_temp1 = D;endalways @(posedge CLK)beginQ <= D_temp1;DOUT <= D_temp2;endmoduleDmodule DFF_D(SET,D,CLK,EN,RESET,Q);input SET,D,CLK,EN,RESET;output Q;reg Q;wire SET_temp;assign SET_temp = (~RESET) && SET;always @(posedge CLK or posedge RESET or posedge SET_temp) beginif(RESET)Q <= 1'b0;elseif(SET_temp)Q <= 1'b1;elseif(EN)Q <= D;elseQ <= Q;endendmodule8-2.用Mealy机类型,写出控制ADC0809采样的状态机。
红外多路遥控系统单片机红外发射红外接收本文介绍了红外多路遥控系统。
红外多路遥控系统可实现16路的红外开关控制。
以码分制多通道红外遥控为设计的基本思路。
通过键盘及代码生成电路、编码、脉冲调制振荡和红外发射构成红外发射电路。
通过红外接收,解码以及由单片机控制的医码控制电路组成红外接收电路。
1.前言1.1序言随着电子技术的飞速发展,尤其是跨入2000年后,红外技术得到了迅猛发展。
红外遥控已渗透到国民经济的各行各业和人们日常生活的方方面面,在工业自动化、生产控制过程、采集和处理、通信、红外制导、激光武器、电子对抗、环境监测、红外育种安全防范、家用电器控制及日常生活各个方面都得到了广泛的应用。
1.2国内外研究概况目前国内外都在进行红外的研究开发,已取得了相当不错的成绩。
红外技术的研究开发是自动化控制的主要方向。
它的研究针对国民经济的各行各业和人们日常生活的方方面面,在工业自动化、生产控制过程、采集和处理、通信、红外制导、激光武器、电子对抗、环境监测、红外育种安全防范、家用电器控制及日常生活各个方面都在进行红外研究开发和控制。
1.3主要工作概述针对国内外的发展情况,可见红外遥控系统是我国未来智能化发展方向。
本课题要设计的红外多路遥控系统,主要红外发射和红外接收这两部分,本设计依托市面上常见的红外发射和红外接收元器件,使设计具有传输距离一般、硬件简单、安装方便、价格便宜的优点。
本文所介绍的红外多路遥控系统,是采用码分制多通道红外遥控系统装置。
早期的码分制的脉冲指令编码多采用分离元器件及小规模数字集成电路,编码、译码电路弄得很复杂,可靠性也差。
但随着大规模数字集成技术的发展和日趋成熟,各种大规模专用集成编、译码集成器件的层出不穷,使外围元器件很少,电路简单,功能完善。
2.系统总体方案设计2.1方案比较方案一:采用频分制多通道红外遥控发射和接收系统。
频分制的频率编码一般采用频道编码开关,通过改变振荡电路的参数来改变振荡电路的振荡参数和频率。
第一章1-1 EDA技术与ASIC设计和FPGA开发有什么关系? P3~4答:利用EDA技术进行电子系统设计的最后目标是完成专用集成电路ASIC的设计和实现;FPGA和CPLD是实现这一途径的主流器件。
FPGA和CPLD通常也被称为可编程专用IC,或可编程ASIC。
FPGA和CPLD的应用是EDA技术有机融合软硬件电子设计技术、SoC(片上系统)和ASIC设计,以及对自动设计与自动实现最典型的诠释。
1-2与软件描述语言相比,VHDL有什么特点? P6答:编译器将软件程序翻译成基于某种特定CPU的机器代码,这种代码仅限于这种CPU而不能移植,并且机器代码不代表硬件结构,更不能改变CPU的硬件结构,只能被动地为其特定的硬件电路结构所利用。
综合器将VHDL 程序转化的目标是底层的电路结构网表文件,这种满足VHDL设计程序功能描述的电路结构,不依赖于任何特定硬件环境;具有相对独立性。
综合器在将VHDL(硬件描述语言)表达的电路功能转化成具体的电路结构网表过程中,具有明显的能动性和创造性,它不是机械的一一对应式的“翻译”,而是根据设计库、工艺库以及预先设置的各类约束条件,选择最优的方式完成电路结构的设计。
l-3什么是综合?有哪些类型?综合在电子设计自动化中的地位是什么? P5什么是综合? 答:在电子设计领域中综合的概念可以表示为:将用行为和功能层次表达的电子系统转换为低层次的便于具体实现的模块组合装配的过程。
有哪些类型? 答:(1)从自然语言转换到VHDL语言算法表示,即自然语言综合。
(2)从算法表示转换到寄存器传输级(RegisterTransport Level,RTL),即从行为域到结构域的综合,即行为综合。
(3)从RTL级表示转换到逻辑门(包括触发器)的表示,即逻辑综合。
(4)从逻辑门表示转换到版图表示(ASIC设计),或转换到FPGA的配置网表文件,可称为版图综合或结构综合。
综合在电子设计自动化中的地位是什么? 答:是核心地位(见图1-3)。
第一章1-1EDA技术与ASIC设计和FPGA开发有什么关系?P3~4答:利用EDA技术进行电子系统设计的最后目标是完成专用集成电路ASIC的设计和实现;FPGA和CPLD是实现这一途径的主流器件。
FPGA和CPLD通常也被称为可编程专用IC,或可编程ASIC。
FPGA和CPLD的应用是EDA技术有机融合软硬件电子设计技术、SoC(片上系统)和ASIC设计,以及对自动设计与自动实现最典型的诠释。
1-2与软件描述语言相比,VHDL有什么特点?P6答:编译器将软件程序翻译成基于某种特定CPU的机器代码,这种代码仅限于这种CPU而不能移植,并且机器代码不代表硬件结构,更不能改变CPU的硬件结构,只能被动地为其特定的硬件电路结构所利用。
综合器将VHDL 程序转化的目标是底层的电路结构网表文件,这种满足VHDL设计程序功能描述的电路结构,不依赖于任何特定硬件环境;具有相对独立性。
综合器在将VHDL(硬件描述语言)表达的电路功能转化成具体的电路结构网表过程中,具有明显的能动性和创造性,它不是机械的一一对应式的“翻译”,而是根据设计库、工艺库以及预先设置的各类约束条件,选择最优的方式完成电路结构的设计。
l-3什么是综合?有哪些类型?综合在电子设计自动化中的地位是什么?P5什么是综合?答:在电子设计领域中综合的概念可以表示为:将用行为和功能层次表达的电子系统转换为低层次的便于具体实现的模块组合装配的过程。
有哪些类型?答:(1)从自然语言转换到VHDL语言算法表示,即自然语言综合。
(2)从算法表示转换到寄存器传输级(RegisterTransport Level,RTL),即从行为域到结构域的综合,即行为综合。
(3)从RTL级表示转换到逻辑门(包括触发器)的表示,即逻辑综合。
(4)从逻辑门表示转换到版图表示(ASIC设计),或转换到FPGA的配置网表文件,可称为版图综合或结构综合。
综合在电子设计自动化中的地位是什么?答:是核心地位(见图1-3)。
智慧树知道网课《EDA技术》课后章节测试满分答案绪论单元测试1【多选题】(10分)学习EDA技术这门课程的具体要求是()A.初步掌握基于FPGA的VLSI系统设计与实现的方法和技术,具备分析、解决实际问题的能力,具有较强的专业实践能力和创新能力。
B.较好地掌握应用EDA技术进行系统设计开发的方法,具备应用EDA技术进行综合性数字系统设计的初步能力,经过后续的综合应用实践,能够从事FPGA的设计与开发、SOPC的设计与开发以及ASIC 的前端设计等工作。
C.掌握EDA技术的基本概念、基础知识;了解FPGA/CPLD的结构、工作原理、性能指标及应用选择;熟练掌握硬件描述语言VHDL的编程;熟练掌握EDA技术的开发软件及EDA实验开发系统的使用。
2【多选题】(10分)学习EDA技术这门课程,我们希望达到的学习目标是()A.基本掌握ASIC的后端设计与开发B.基本掌握ASIC的前端设计与开发C.掌握一种硬件描述语言VHDLD.基本掌握SOC的设计与开发方法E.基本掌握SOPC的设计与开发方法F.熟悉FPGA的设计与开发3【多选题】(10分)EDA技术课程的学习要点是()A.以课题为中心,以研究式教学为主要形式B.抓住一个重点(硬件描述语言编程)C.掌握两个工具(FPGA/CPLD开发软件、EDA实验开发系统的使用)D.运用四种手段(案例分析、应用设计、线上学习、上机实践)E.采用五个结合(边学边用相结合、边用边学相结合、理论与实践相结合、线上与线下相结合、课内与课外相结合)第一章测试1【单选题】(10分)EDA的中文含义是()A.计算机辅助工程设计B.计算机辅助设计C.电子设计自动化2【判断题】(10分)狭义的EDA技术,就是指以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件方式设计的电子系统到硬件系统的逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真,直至对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片的一门新技术,或称为IES/ASIC自动设计技术。
绪论单元测试1【多选题】(10分)学习EDA技术这门课程的具体要求是()A.初步掌握基于FPGA的VLSI系统设计与实现的方法和技术,具备分析、解决实际问题的能力,具有较强的专业实践能力和创新能力。
B.较好地掌握应用EDA技术进行系统设计开发的方法,具备应用EDA技术进行综合性数字系统设计的初步能力,经过后续的综合应用实践,能够从事FPGA的设计与开发、SOPC的设计与开发以及ASIC的前端设计等工作。
C.掌握EDA技术的基本概念、基础知识;了解FPGA/CPLD的结构、工作原理、性能指标及应用选择;熟练掌握硬件描述语言VHDL的编程;熟练掌握EDA技术的开发软件及EDA实验开发系统的使用。
2【多选题】(10分)学习EDA技术这门课程,我们希望达到的学习目标是()A.基本掌握ASIC的后端设计与开发B.基本掌握ASIC的前端设计与开发C.掌握一种硬件描述语言VHDLD.基本掌握SOC的设计与开发方法E.基本掌握SOPC的设计与开发方法F.熟悉FPGA的设计与开发3【多选题】(10分)EDA技术课程的学习要点是()A.以课题为中心,以研究式教学为主要形式B.抓住一个重点(硬件描述语言编程)C.掌握两个工具(FPGA/CPLD开发软件、EDA实验开发系统的使用)D.运用四种手段(案例分析、应用设计、线上学习、上机实践)E.采用五个结合(边学边用相结合、边用边学相结合、理论与实践相结合、线上与线下相结合、课内与课外相结合)第一章测试1【单选题】(10分)EDA的中文含义是()A.计算机辅助工程设计B.计算机辅助设计C.电子设计自动化2【判断题】(10分)狭义的EDA技术,就是指以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件方式设计的电子系统到硬件系统的逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真,直至对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片的一门新技术,或称为IES/ASIC自动设计技术。
问案由部分干出,大概有不齐大概过失之处,欢迎大家批评指正.之阳早格格创做第一章1.EDA的英文齐称及其华文含意是什么?问:EDA是Electronic Design Automation,其华文含意是“电子安排自动化”.2.什么喊EDA技能?简述EDA技能的死长历程.问:EDA技能有狭义战广义之分,狭义EDA技能便是以大规模可编程逻辑器件为安排载体,以硬件形貌谈话为系统逻辑形貌的主要表白办法,以估计机、大规模可编程逻辑器件的启垦硬件及真验启垦系统为安排工具,通过有闭的启垦硬件,自动完毕用硬件的办法安排的电子系统到硬件系统的逻辑编译、逻辑化简、逻辑分隔、逻辑概括及劣化、逻辑筹备布线、逻辑仿真,曲至完毕对付于特定目标芯片的适配编译、逻辑映射、编程下载等处事,最后产死集成电子系统大概博用集成芯片的一门新技能,大概称为IES/ASIC自动安排技能..问EDA安排过程包罗:安排准备、安排输进、安排处理、安排校验、器件编程、器件尝试战安排考证.4.什么喊”概括”战”网表文献”?问:(A)正在电子安排范畴中概括的观念不妨表示为:将用止为战功能条理表白的电子系统变更为矮条理的便于简曲真止的模块拉拢拆置的历程.(1)从自然谈话变更到VHDL 谈话算法表示,即自然谈话概括.(2)从算法表示变更到寄存器传输级(RegisterTransport Level,RTL),即从止为域到结构域的概括,即止为概括.(3)从 RTL 级表示变更到逻辑门(包罗触收器)的表示,即逻辑概括.(4)从逻辑门表示变更到版图表示(ASIC 安排),大概变更到 FPGA 的摆设网表文献,可称为版图概括大概结构概括. 概括正在电子安排自动化中处于核心底位.(B)文献是形貌电路的对接闭系的文献,普遍以文本文献的形式存留.英文为 netlist file要收有cdl, spice, aucdl...等5.从使用的角度去道,EDA技能主要包罗几个圆里的真量?那几个圆里正在所有电子系统的安排中分别起什么效用?问: EDA技能的教习主要应掌握4个圆里的真量:①大规模可编程逻辑器件;②硬件形貌谈话;③硬件启垦工具;④真验启垦系统.6.姑且流通的合流厂家的EDA的硬件工具备哪些?比较那些EDA硬件的好别.问: (1)姑且比较流通的合流厂家的EDA的硬件工具备Altera的MAX+plus II、Quartus II 、Lattice的ispEXPERT、Xilinx的Foundation Series.(2)Max+plus II 是A1tera公司推出的一个使用非常广大的EDA硬件工具,它支援本理图、VHDL战Verilog谈话的文本文献,以及波形图与EDIF等要收的文献动做安排输进,并支援那些文献的任性混同安排.它具备门级仿真器,不妨举止功能仿真战时序仿真,不妨爆收透彻的仿真截止.正在适配之后,Max+plus II死成供时序仿真用的Edif、VHDL战Verilog 3种分歧要收的网表文献.Max+plus II界里友佳,使用便利,被毁为业界最易教易用的EDA硬件,并支援合流的第三圆EDA工具,支援除APEx20K系列除中的所有A1tera公司的FPGA/CPLD 大规模逻辑器件.Quartus II是A1tera公司新近推出的EDA硬件工具,其安排工具真足支援VHDL战Verilog的安排过程,其里里嵌有VHDL、Verilog逻辑概括器.第三圆的概括工具,如Leonardo Spectrum、Synplify pro战FPGA Compiler II有着更佳的概括效验,Quartus II不妨间接调用那些第三圆工具,果此常常修议使用那些工具去完毕VHDL/Verilog源步调的概括.共样,Quartus II具备仿真功能,也支援第三圆的仿真工具,如Modelsim.别的,Quartus II为A1tera DSP启垦包举止系统模型安排提供了集成概括环境,它与MATLAB战DSP Builder分离不妨举止鉴于FPGA的DSP系统启垦,是DSP硬件系统真止的闭键EDA工具.Quartus II还可与SOPC Builder分离,真止SOPC系统启垦. ispExPERT是Lattice公司的主要集成环境.通过它不妨举止VHDL、Verilog及ABEL谈话的安排输进、概括、适配、仿真战正在系统下载.ispExPERT是姑且流通的EDA硬件中最简单掌握的安排工具之一,它界里友佳、支配便当、功能强盛,并与第三圆EDA工具兼容良佳.Foundation Series是Xilinx公司较老练的集成启垦EDA工具.它采与自动化的、完备的集成安排环境.Foundation名目管造器集成Xilinx真止工具,并包罗了强盛的书籍馆Synopsys FPGA Express概括系统,是业界最强盛的EDA安排工具之一.7. 简要道述EDA技能的死长趋势战应用范畴问:从姑且的EDA技能去瞅,其死长趋势是政府沉视、使用遍及、应用文泛、工具百般、硬件功能强盛.EDA的范畴包罗:板滞、电子、通疑、航空航天、化工、矿产、死物、医教、军事等各个范畴,皆有EDA的应用.第二章 VHDL硬件形貌谈话1、简述真体(ENTITY)、结构体(ARCHITECTURE)与本理图的闭系.问:结构去道真体便是本理图的中瞅,结构体中的简曲步调便是本理图中的简曲真止.2、子步调调用与元件例化有何辨别,函数与历程正在简曲使用上有何分歧.问:从硬件角度道,一身材步调的调用类似于一个元件模块的例化,VHDL概括器为子步调的每一次调用皆死成一个电路逻辑块.所分歧的是,元件的例化将爆收一个新的安排条理,而子步调调用只对付应于目前条理的一部分.函数战历程的分歧正在于:函数惟有一个输出,只可通过函数体内的RETURN语句去真止,函数体内不克不迭有旗号赋值语句;而历程却不妨有不只一个输出,而且是通过历程体内的旗号赋值语句大概者变量赋值语句去真止的,历程体内的RETURN语句不用处,果此很多历程皆将其简略了.函数的调用只可通过表白式去真止,历程的调用则是通过历程调用语句去真止的.3、什么是沉载函数?沉载算符有何用处?怎么样调用沉载算符函数.问:(1)什么是沉载函数? 根据支配对付象变更处理功能.(2)沉载算符有何用处? 用于二个分歧典型的支配数据自动变更成共种数据典型,并举止运算处理.(3)怎么样调用沉载算符函数?采与隐式办法调用,无需预先声明.4、正在VHDL步调中摆设有何用处?问:摆设不妨把特定的结构体闭联到一个决定的真体,正如摆设一词汇自己的含意一般.摆设语句便是用去为较大的系统安排提供管造战工程构造的.摆设也是VHDL 安排真体中的一个基础单元,正在概括大概仿真中,不妨利用摆设语句为决定所有安排提供许多有用疑息.总之用于树立VHDL的处事参数以及处事模式.摆设用去采用真体的多个结构体的哪一个被使用.5.嵌套 BLOCK 的可视性准则是什么?以嵌套 BLOCK 的语句办法安排三个并列的 3 输进大概门.问:BLOCK是 VHD 中具备的一种区分体造,那种体造允许安排者合理天将一个模块分为数个天区,正在每个块皆能对付其局部旗号、数据典型战常量加以形貌战定义.所有能正在结构体的证明部分举止证明的对付象皆能正在 BLOCK 证明部分中举止证明.相闭参照代码:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY triple_input ISPORT (A :IN STD_LOGIC;B :IN STD_LOGIC;C :IN STD_LOGIC;OUTA :OUT STD_LOGIC);END triple_input;ARCHITECTURE ADO OF triple_input ISBEGINOUTA<= A AND B AND C;END ADO;6.简述函数与历程的同共面,历程与进程的同共面.问:子步调有二种典型,即历程(PROCEDURE)战函数(FUNCTION).函数战历程皆是串止的.它们的辨别正在于:历程的调用不妨通过其界里赢得多个返回值,而函数只可返回一个值;正在函数出心中,所有参数皆是输进参数,而历程有输进参数、输出参数战单背参数;历程普遍被瞅做一种语句结构,而函数常常是表白式的一部分;历程不妨单独存留,而函数常常动做语句的一部分调用.历程战进程的相共面:只可使用程序语句,不妨单独存留.分歧面:历程不克不迭像进程那样不妨从本结构体的其余块大概进程结构中间接读与旗号值大概者旗号赋值.7、推断下列VHDL 标记符是可合法,如果分歧规则指出本果:16#0FA#,10#12F#,8#789#,8#356#,2#0101010#,74HC245,\74HC574\,CLR/RESET,\IN 4/SCLK\, D100%.问:识符用准则定:(1)只可包罗英笔墨母,数字,下划线(2)标记符的尾字符只可是字母.故:(1)16#0FA#错正在尾字符是数字,且包罗非法字符“#“. 10#12F#、8#789#,8#356#,2#0101010#,74HC245也是犯共一过失.(2)\74HC574\,CLR/RESET,\IN4/SCLK\,D100%皆利害法,包罗非法字符….8、计划数据对付象旗号与变量间的同共处,证明它们的使用对付所产死的硬件结构有何效用.问:正在VHDL中,对付象是指用去脆持数据的一些客体单元.旗号跟变量是VHDL中的要害客体.旗号是指正在安排真体中数据接换的一种脚法,采与旗号对付象不妨把安排真体对接正在所有产死模块.正在硬件电路中代表一条硬件连线,偶尔旗号会被概括成一个寄存器.变量主假如对付姑且数据举止局部保存,它是一个局部量.旗号与变量正在使用前皆必须先声明后使用,可则会爆收编译过失.旗号不妨architecture、package、entitiy中声明,是齐部量不妨正在齐部使用.变量不妨process、function、procedure中声明,也只可正在process、function、procedur中使用不是齐部变量.他们之间的主要辨别有:旗号赋值起码要有δ延时;而变量赋值不.旗号除目前值中有许多相闭的疑息,如履历疑息战投影波形;而变量惟有目前值.进程对付旗号敏感而分歧过失变量敏感.旗号不妨是多个进程的齐部旗号;而变量只正在定义他们的程序域可睹(共享变量除中).旗号是硬件中连线的抽象形貌,他们的功能是保存变更的数据值战对接子元件,旗号正在元件的端心对接元件.变量正在硬件中不类似的对付应闭系,他们用于硬件个性的下条理修模所需要的估计中.从概括后所对付应的硬件电路结构去瞅,旗号普遍将对付应更多的硬件结构,但是正在许多情况下,旗号战变量并不什么辨别.比圆正在谦脚一定条件的进程中,概括后它们皆能引进寄存器.那时它们皆具备不妨担当赋值那一要害的共性,而VHDL概括器本去不睬会它们正在担当赋值时存留的延时个性.9. 运算符沉载函数常常要调用变更函数,以便不妨利用已有的数据典型.底下给出一个新的数据典型AGE,而且底下的变更函数已经真止:function CONV_INTEGER(ARG:AGE) return INTEGER;请仿照本章中的例子,利用此函数编写一个“+”运算符沉载函数,支援底下的运算:SIGNALa,c : AGE;...c <= a + 20;问:function “+”(L : AGE, R: i nteger) return AGE isBeginreturn CONV_AGE(L + CONV_INTEGER(R));End;10、安排16 位比较器,比较器的输进是2个待比较的16位数:A=[A15…A0],B=[B15…B0],输出是 D、E、F.当 A=B 时, D=1;当A>B 时,E=1;当A<B时,F=1(参照要收:用惯例的比较器安排要收,即间接利用闭系支配符举止编程安排,大概者利用减法器去完毕,通过减法运算后的标记战截止去判别二个被比较值的大小).问:略library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entit y compare isport(a: in std_logic_vector(16 downto 0); b: in std_logic_ve ctor(16 downto 0); X,Y,Z: out std_logic);end compare;architecture behav e of compare isbegin process(a,b) begin if (a > b) then X <='1'; Y <='0'; Z <='0'; elsif(a < b) then X <=' 0'; Y <='1'; Z <='0'; ELSE X <='0'; Y <='0'; Z <='1'; end if; end process; end behave;11. 正在VHDL 编程中,为什么应尽大概使用子典型对付典型的与值范畴赋予规定.问:由于子典型与其基础数据典型属共一数据典型,果此属于子典型的战属于基础数据典型的数据对付象间的赋值战被赋值不妨间接举止,不必举止数据典型的变更.利用子典型定义数据对付象的佳处是,除了使步调遍及可读性战易处理中,本去量性的佳处还正在于有用处遍及概括的劣化效用,那是果为概括器不妨根据子典型所设的拘束范畴,灵验天推知介进概括的寄存器的最符合的数目.12、推断底下3 例VHDL 步调中是可有过失,若有过失则指堕落误本果:步调1Signal A, EN : std_logic;Process (A, EN)Variable B : std_logic;Beginif EN =‘ 1 ’thenB <= A;end if;end process;步调 2Architecture one of sample isvariable a, b, c : integer;beginc <= a + b;end;步调 3library ieee;use ieee.std_logic_1164.all;entity mux21 isport ( a, b : in std_logic;sel : in std_logic;c : out std_logic;);①end sam2;②architecture one of mux21 isbegin③if sel = '0' then c := a;elsec := b;end if;④⑤end two;⑥问:步调1:将“B<=A”改成“B:=A”步调2:-将“c<=a+b”改成“c:=a+b”步调3:①将“;)”改成“)”②将“sam2”改成“entity mux21”③减少“process(a,b,sel) begin④if sel= '0' then c:=a; else c:=b; end if; --应改成“if sel= '0' then c<=a; else c<=b; end if;”⑤减少“end process;”⑥将“two”改成“architecture one”13、分别用 CASE 语句战 IF安排3-8译码器.问:CASE语句:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY decoder38 ISPORT(EN:IN STD_LOGIC;A0,A1,A2:IN STD_LOGIC;Y:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END ENTITY decoder38;ARCHITECTUR bhv OF decoder38 ISSIGNAL S:STD_LOGIC_VECTOR(2 DOWNTO 0);BEGINS<=A2&A1&A0;PROCESS (EN,S)BEGINIF (EN=’1’) THENCASE S ISWHEN “000”=>Y<=”00000001”;WHEN “001”=>Y<=”00000010”;WHEN “010”=>Y<=”00000100”;WHEN “011”=>Y<=”00001000”;WHEN “100”=>Y<=”00010000”;WHEN “101”=>Y<=”00100000”;WHEN “110”=>Y<=”01000000”;WHEN “111”=>Y<=”10000000”;WHEN OTHERS=>NULL;END CASE;END IF;END PROCESS;END ARCHITECTURE bhv;IF语句:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY decoder38 ISPORT(EN:IN STD_LOGIC;A0,A1,A2:IN STD_LOGIC;Y:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END ENTITY decoder38; ARCHITECTUR bhv OF decoder38 IS BEGINPROCESS (EN,A2,A1,A0)BEGINIF (EN=’1’) THENIF(A2=’0’) THENIF(A1=’0’) THENIF(A0=’0’) THENY<=’00000001’;ELSEY<=’00000010’;ELSIF(A1=’1’) THENIF(A0=’0’) THENY<=’00000100’;ELSEY<=’00001000’;END IF;END IF;ELSIF(A2=’1’) THENIF(A1=’0’) THENIF(A0=’0’) THENY<=’00010000’;ELSEY<=’00100000’;END IF;ELSIF(A1=’1’) THENIF(A0=’0’) THENY<=’01000000’;ELSEY<=’10000000’;END IF;END IF;END IF;END IF;END PROCESS;END ARCHITECTURE bhv;library ieee;use ieee.std_logic_1164.all;entity sss isport (a: in std_logic_vector(2 downto 0); cout:out std_logic_vector(7 downto 0)); end ;architecture one of sss isbeginprocess(a)beginif a="000" then cout <="11111110";elsif a="001" then cout <="11111101";elsif a="010" then cout <="11111011";elsif a="011" then cout <="11110111";elsif a="100" then cout <="11101111";elsif a="101" then cout <="11011111";elsif a="110" then cout <="10111111";elsif a="111" then cout <="01111111";end if;end process;end;14、若正在进程中加进 WAIT语句,应注意哪几个圆里的问题.问:应注意以下问题:①已列出敏感旗号的进程中不克不迭使用所有形式的WAIT语句;②普遍情况下,惟有WAIT UNTIL要收的等待语句不妨被概括器所担当,其余语句要收只可正在VHDL仿真器中使用;③正在使用WAIT ON语句的进程中,敏感旗号量应写正在进程中的WAIT ON语句后里;④正在不使用WAIT ON语句的进程中,敏感旗号量应正在启头的闭键词汇PROCESS后里的敏感旗号表中列出.15、图中的f_adder是一位齐加器,cin 是输进进位,cout 是输出进位.试给出此电路的VHDL形貌.图2.15 习题15图问:library ieee;use ieee.std_logic_1164.all;entity ff isport (x,y,clock:in std_logic;sum:out std_logic);end;architecture one of ff iscomponent f_adderport(a,b,ci:in std_logic;su,co:out std_logic);end component;component dfport(d,cl:in std_logic;q1:out std_logic);end component;signal cout,tmp:std_logic;beginu1:f_adder port map(a=>x,b=>y,ci=>tmp,su=>sum,co=>cout); u2:df port map(d=>cout,cl=>clock,q1=>tmp);end architecture one;--下层文献1:D触收器library ieee;use ieee.std_logic_1164.all;entity df isport (d,cl:in std_logic;q1:out std_logic);end;architecture two of df issignal qq:std_logic;beginprocess(cl,qq)beginif cl 'event and cl='1'then qq<=d;end if;end process;q1<=qq;end architecture two;--下层文献2:齐加器library ieee;use ieee.std_logic_1164.all;entity f_adder isport (a,b,ci:in std_logic;su,co:out std_logic);end;architecture three of f_adder iscomponent h_adderport(a1,b1:in std_logic;so,cou:out std_logic);end component;component or2aport(a1,b1:in std_logic;c:out std_logic);end component;signal d,e,f:std_logic;beginu1:h_adder port map(a1=>a,b1=>b,cou=>d,so=>e);u2:h_adder port map(a1=>e,b1=>ci,cou=>f,so=>su);u3:or2a port map(a1=>d,b1=>f,c=>co);end architecture three;--下层文献2-1:半加器library ieee;use ieee.std_logic_1164.all;entity h_adder isport (a1,b1:in std_logic;so,cou:out std_logic);end;architecture four of h_adder isbeginso<=not(a1 xor(not b1));cou<=a1 and b1;end architecture four;--下层文献2-2:大概门library ieee;use ieee.std_logic_1164.all;entity or2a isport (a1,b1:in std_logic;c:out std_logic);end;architecture five of or2a isbeginc<=a1 or b1;end architecture five;16. 安排5位可变模数计数器.安排央供:令输进旗号M1战M0 统造计数模,即令(M1,M0)=(0,0)时为模19 加法计数器,(M1,M0)=(0,1)时为模4计数器,(M1,M0) =(1,0) 为模10 加法计数器,(M1,M0)=(1,1)时为模6计数器.问:Entity mod_cal isPort(M1,M0:in bit;Count:out std_logic_vector(4 downto 0);Clk:in std_logic);End entity;Architecture behav of mod_cal isSignal count1:std_logic_vector(4 downto 0);BeginProcess(clk,M1,M0)Variable sel is bit_vector(1 downto 0);BeginSel:=M1&M0;If clk’event and clk=’1’thenCount1<=Count1+1;Case sel isWhen“00”=>if Count1=”10011”then Count1<=”00000”;End if;When“01”=>if Count1=”00100”then Count1<=”00000”;End if;When“10”=>if Count1=”01010”then Count1<=”00000”;End if;When“11”=>if Count1=”00110”then Count1<=”00000”;End if;End case;End if;End process;Count<=count1;End behav;17.什么是 VHDL 结构体的止为形貌风格,道述止为形貌的劣缺面.问:如果 VHDL 的结构体只形貌了所期视电路的功能大概者道电路止为,而不间接指明大概波及真止那些止为的硬件结构,包罗硬件个性、连线办法、逻辑止为办法,则称为止为风格的形貌大概止为形貌.便宜:抽象程度最下,最能体现VHDL形貌下条理结媾战系统的本收.缺面:只表示输进与输出间变更的止为,它不包罗所有结构疑息.18.结构化形貌与调用子步调有何同共面,VHDL 步调中是怎么样举止结构化形貌的?结构化形貌需要哪些语句?问:略19. 试举一例,正在一个结构体中共时含有3种分歧形貌风格的VHDL 语句结构.问:略20.以数据流的办法安排一个 2 位比较器,再以结构形貌办法将已安排佳的比较器对接起去形成一个 8 位比较器问:略21. 采与VHDL举止数字系统安排有哪些个性?问:HDL的基础面:(1)与其余硬件形貌谈话相比,VHDL具备以下个性:(2)功能强盛、安排机动.(3)强盛的系统硬件形貌本收.(4)易于共享战复用.的基础步调结构由几部分组成?各部分的功能是什么?问:由5个部分组成,包罗真体、结构体、摆设、步调包战库.真体动做一个安排真体的组成部分,其功能是对付那个安排真体与中部电路举止接心形貌.结构体(ARCHITECTURE)是安排真体的一个要害部分,结构体将简曲真止一个真体.正在利用VHDL 举止工程安排中,为了遍及安排效用以及使安排按照某些统一的谈话尺度大概数据要收,有需要将一些有用的疑息搜集正在一个大概几个库中以供调用,那些疑息不妨是预先定义佳的数据典型、子步调等安排单元的集中体(步调包)大概预先安排佳的百般安排真体(元件库步调包).果此不妨把库瞅成是一种用去保存预先完毕的步调包、数据集中体战元件的堆栈.已正在安排真体中定义的数据典型、子步调大概数据对付象对付于其余安排真体是不可用的,大概者道是不可睹的.为了使已定义的常数、数据典型、元件调用证明以及子步调能被更多的VHDL 安排真体便当天考察战共享,不妨将它们支集正在一个VHDL 步调包中,多个步调包不妨并进一个VHDL 库中,使之适用于更普遍的考察战调用范畴,那一面对付于大系统启垦多个大概多组启垦人员共步并止处事隐得尤为要害.摆设不妨把特定的结构体闭联到一个决定的真体,正如摆设一词汇自己的含意一般.摆设也是VHDL 安排真体中的一个基础单元,正在概括大概仿真中,不妨利用摆设语句为决定所有安排提供许多有用疑息.23. 证明端心模式BUFFER与INOUT有何同共面?问:INOUT为输进输出单背端心,即从端心里里瞅,不妨对付端心举止赋值,即输出数据.也不妨今后端心读进数据,即输进.BUFFER为慢冲端心,功能与INOUT类似,辨别正在于当需要读进数据时,只允许里里回读里里爆收的输出旗号,即反馈.举个例子,安排一个计数器的时间不妨将输出的计数旗号定义为BUFFER,那样回读输出旗号不妨干下一计数值的初初值..24.用VHD安排一个真止三输进的普遍表决器.问:library ieee;use ieee.std_logic_1164.all;entity bjq3 isport(a,b,c:in std_logic;y:out std_logic);end;architecture x of bjq3 issignal ty:std_logic_vector(2 downto 0);beginty<=a&b&c;with ty selecty<='0' when "000",'0' when "001",'0' when "010",'1' when "011",'0' when "100",'1' when "101",'1' when "110",'1' when "111",'X' when others;end;25.用PROCESS语句形貌戴共步复位的JK触收器.问:library ieee;use ieee.std_logic_1164.all;entity jk_ff isport(clk,reset,j,k:in std_logic;q,qb:out std_logic);end;architecture behave of jk_ff issignal tq,tqb:std_logic;beginq<=tq;qb<=tqb;process(clk,reset)beginif (clk'event and clk='1') thenif (reset='0') thentq<='0';tqb<='1';elsif ((j='0')and(k='0')) thentq<=tq;tqb<=tqb;elsif ((j='0')and(k='1')) thentq<='0';tqb<='1';elsif ((j='1')and(k='0')) thentq<='1';tqb<='0';elsif ((j='1')and(k='1')) thentq<=not tq;tqb<=not tqb;end if;end if;end process;end;26.用并止旗号赋值语句安排8选1数据采用器.问:library ieee;use ieee.std_logic_1164.all;entity xzq8 isport(x:in std_logic_vector(7 downto 0);sel:in std_logic_vector(2 downto 0);f:out std_logic);end;architecture a of xzq8 isbeginf<=x(0) when sel="000" elsex(1) when sel="001" elsex(2) when sel="010" elsex(3) when sel="011" elsex(4) when sel="100" elsex(5) when sel="101" elsex(6) when sel="110" elsex(7) when sel="111" else'X';end;27.用VHDL安排一个三态输出的单4选1数据采用器.其天面旗号共用,且各有个矮电仄灵验的使能端问:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY DUAL_MUX_41 ISPORT(A,B,C,D:IN STD_LOGIC;ENA_N,ENB_N:IN STD_LOGIC;S :IN STD_LOGIC_VECTOR(1 DOWNTO 0);OUTA,OUTB:OUT STD_LOGIC);ENDARCHITECTURE A OF DUAL_MUX_41 ISSIGNAL P,Q:STD_LOGIC_VECTOR(1 DOWNTO 0);BEGINP<=ENA_N & S;Q<=ENB_N & S;WITH P SELECTOUTA<=A WHEN “000”,B WHEN”001”,C WHEN”010”,D WHEN”011”,‘Z’ WHEN OTHERS;WITH Q SELECTOUTB<= A WHEN”000”,B WHEN”001”,C WHEN”010”,D WHEN”011”,‘Z’ WHEN OTHERS;END A;28.用VHDL安排真止由二输进端与非门形成的1位齐加器.问:略29. 用VHDL安排真止一百进造的计数器.问:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY counter ISGENERIC( count_value: INTEGER:=9);PORT (clk,clr,en: IN STD_LOGIC;co: OUT STD_LOGIC;count: OUT INTEGER RANGE 0 TO count_value); END counter;ARCHITECTURE a OF counter ISSIGNAL cnt: INTEGER RANGE 0 TO count_value; BEGINPROCESS (clk,clr)BEGINIF clr = '1' THENcnt <= 0;ELSIF (clk'EVENT AND clk = '1') THENIF en = '1' THENIF cnt = count_value THENcnt <= 0;ELSEcnt <= cnt + 1;END IF;END IF;END IF;END PROCESS;co<=’1’ WHEN cnt=count_value ELSE ‘0’;count <= cnt;END a;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity counter1 isport(clk,clr,en: in std_logic;co:out std_logic;count1: out integer range 0 to 9;count2: out integer range 0 to 9);end counter1;architecture rtl of counter1 issignal en1: std_logic;component counter isgeneric( count_value: integer);port (clk,clr,en: in std_logic; co: out std_logic;count: out integer range 0 to count_value);end component;beginaa: counter generic map( count_value => 9)port map(clk,clr,en, en1, count1);bb: counter generic map( count_value=>9)port map(clk=>clk,clr=>clr, en=>en1, co=>co,count=>count2);end rtl;30. 比较CASE语句与WITH_SELECT语句,道述它们的同共面.问:相共面:CASE语句中各子句的条件不克不迭有沉叠,必须包涵所有的条件;WITH_SECLECT语句也不允许采用值有沉叠局里,也不允许采用值涵盖不齐的情况.其余,二者对付子句各采用值的尝试皆具备共步性,皆依好于敏感旗号的变更.分歧面:CASE语句只可正在进程中使用,起码包罗一个条件语句,不妨有多个赋值目标;WITH_SECLECT语句根据谦脚的条件,对付旗号举止赋值,其赋值目标惟有一个,且必须是旗号.31、将以下步调段变更为 WHEN_ELSE 语句:PROCESS(a,b,c,d)BEGINIF a= '0' AND b='1' THENnext1 <= "1101"ELSIFa='0' THENnext1 <= dELSIFb='1' THENnext1 <= cELSENext1<= "1011";。
E D A技术课后答案-标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KIIEDA习题第一章1.1 EDA的英文全称是什么?EDA的中文含义是什么?答:EDA即Electronic Design Automation的缩写,直译为:电子设计自动化。
1.2 什么叫EDA技术?答:EDA技术有狭义和广义之分,狭义EDA技术就是以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件的方式设计的电子系统到硬件系统的逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真,直至完成对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片的一门新技术,或称为IES/ASIC自动设计技术。
1.3 利用EDA技术进行电子系统的设计有什么特点?答:①用软件的方式设计硬件;②用软件方式设计的系统到硬件系统的转换是由有关的开发软件自动完成的;③设计过程中可用有关软件进行各种仿真;④系统可现场编程,在线升级;⑤整个系统可集成在一个芯片上,体积小、功耗低、可靠性高。
1.4 从使用的角度来讲,EDA技术主要包括几个方面的内容这几个方面在整个电子系统的设计中分别起什么作用答:EDA技术的学习主要应掌握四个方面的内容:①大规模可编程逻辑器件;②硬件描述语言;③软件开发工具;④实验开发系统。
其中,硬件描述语言是重点。
对于大规模可编程逻辑器件,主要是了解其分类、基本结构、工作原理、各厂家产品的系列、性能指标以及如何选用,而对于各个产品的具体结构不必研究过细。
对于硬件描述语言,除了掌握基本语法规定外,更重要的是要理解VHDL的三个“精髓”:软件的强数据类型与硬件电路的惟一性、硬件行为的并行性决定了VHDL语言的并行性、软件仿真的顺序性与实际硬件行为的并行性;要掌握系统的分析与建模方法,能够将各种基本语法规定熟练地运用于自己的设计中。
对于软件开发工具,应熟练掌握从源程序的编辑、逻辑综合、逻辑适配以及各种仿真、硬件验证各步骤的使用。
对于实验开发系统,主要能够根据自己所拥有的设备,熟练地进行硬件验证或变通地进行硬件验证。
1.5 什么叫可编程逻辑器件(简称PLD) FPGA和CPLD的中文含义分别是什么?国际上生产FPGA/CPLD的主流公司,并且在国内占有较大市场份额的主要有哪几家其产品系列有哪些其可用逻辑门/等效门数大约在什么范围?答:可编程逻辑器件(简称PLD)是一种由用户编程以实现某种逻辑功能的新型逻辑器件。
FPGA和CPLD分别是现场可编程门阵列和复杂可编程逻辑器件的简称。
国际上生产FPGA/CPLD的主流公司,并且在国内占有市场份额较大的主要是Xilinx,Altera,Lattice三家公司。
Xilinx公司的FPGA器件有XC2000,XC3000,XC4000,XC4000E,XC4000XLA,XC5200系列等,可用门数为1200~18 000;Altera公司的CPLD 器件有FLEX6000,FLEX8000,FLEX10K,FLEX10KE系列等,提供门数为5000~25 000;Lattice公司的ISP-PLD器件有ispLSI1000,ispLSI2000,ispLSI3000,ispLSI6000系列等,集成度可多达25 000个PLD等效门。
1.6 FPGA和CPLD各包括几个基本组成部分?答:FPGA 在结构上主要分为三个部分,即可编程逻辑单元,可编程输入/输出单元和可编程连线三个部分。
CPLD在结构上主要包括三个部分,即可编程逻辑宏单元,可编程输入/输出单元和可编程内部连线。
1.7 FPGA/CPLD有什么特点二者在存储逻辑信息方面有什么区别在实际使用中,在什么情况下选用CPLD,在什么情况下选用FPGA1.8 常用的硬件描述语言有哪几种这些硬件描述语言在逻辑描述方面有什么区别答:常用的硬件描述语言有VHDL、Verilog、ABEL。
VHDL:作为IEEE的工业标准硬件描述语言,在电子工程领域,已成为事实上的通用硬件描述语言;逻辑综合能力强,适合行为描述。
Verilog:支持的EDA工具较多,适用于RTL级和门电路级的描述,其综合过程较VHDL稍简单,但其在高级描述方面不如VHDL。
ABEL:一种支持各种不同输入方式的HDL,被广泛用于各种可编程逻辑器件的逻辑功能设计,由于其语言描述的独立性,因而适用于各种不同规模的可编程器件的设计。
1.9 目前比较流行的、主流厂家的EDA的软件工具有哪些这些开发软件的主要区别是什么答:目前比较流行的、主流厂家的EDA的软件工具有Altera的MAX+plus II、Lattice的ispEXPERT、Xilinx的Foundation Series。
1.10 对于目标器件为FPGA/CPLD的VHDL设计,其工程设计包括几个主要步骤每步的作用是什么每步的结果是什么答:第一:需要进行“源程序的编辑和编译”—用一定的逻辑表达手段将设计表达出来; 第二:要进行“逻辑综合”---将用一定的逻辑表达手段将表达出来的设计经过一系列的操作,分解成一系列的逻辑电路及对应的关系(电路分解);第三:要进行目标器件的“布线/适配”---在选用的目标器件中建立这些基本逻辑电路的对应关系(逻辑实现)第四:目标器件的编程下载---将前面的软件设计经过编程变成具体的设计系统(物理实现);最后要进行硬件仿真/硬件测试---验证所设计的系统是否符合要求。
同时,在设计过程中要进行有关“仿真”---模拟有关设计结果与设计构想是否相符。
设计基本流程如图1-1所示。
1.11 名词解释:逻辑综合、逻辑适配、行为仿真、功能仿真、时序仿真。
答:逻辑综合:逻辑综合器的功能就是将设计者在EDA平台上完成的针对某个系统项目的HDL、原理图或状态图形的描述,针对给定硬件结构组件进行编译、优化、转换和综合,最终获得门级电路甚至更底层的电路描述文件。
由此可见,综合器工作前,必须给定最后实现的硬件结构参数,它的功能就是将软件描述与给定硬件结构用某种网表文件的方式联系起来。
显然,综合器是软件描述与硬件实现的一座桥梁。
综合过程就是将电路的高级语言描述转换成低级的,可与FPGA/CPLD或构成ASIC的门阵列基本结构相映射的网表文件。
逻辑适配:适配器的功能是将由综合器产生的网表文件配置于指定的目标器件中,产生最终的下载文件,如JEDEC格式的文件。
适配所选定的目标器件(FPGA/CPLD芯片)必须属于原综合器指定的目标器件系列。
行为仿真:在综合以前可以先对VHDL所描述的内容进行行为仿真,即将VHDL设计源程序直接送到VHDL仿真器中仿真,这就是所谓的VHDL行为仿真。
因为此时的仿真只是根据VHDL的语义进行的,与具体电路没有关系。
功能仿真:仅对VHDL描述的逻辑功能进行测试模拟,以了解其实现的功能是否满足原设计的要求,仿真过程不涉及具体器件的硬件特性,如延时特性。
时序仿真:时序仿真是接近真实器件运行的仿真,仿真过程中已将器件特性考虑进去了,因而,仿真精度要高得多。
但时序仿真的仿真文件必须来自针对具体器件的布线/适配器所产生的仿真文件。
综合后所得的EDIF/XNF门级网表文件通常作为FPGA布线器或CPLD适配器的输入文件。
通过布线/适配的处理后,布线/适配器将生成一个VHDL网表文件,这个网表文件中包含了较为精确的延时信息,网表文件中描述的电路结构与布线/适配后的结果是一致的。
此时,将这个VHDL网表文件送到VHDL仿真器中进行仿真,就可以得到精确的时序仿真结果了2-12-32-42-52-62.73.1比较常用硬件描述语言VHDL、Verilog和ABEL语言的优劣。
1.VHDL:描述语言层次较高,不易控制底层电路,对综合器的性能要求较高。
有多种EDA工具选择,已成为IEEE标准。
应用VHDL进行工程设计的优点是多方面的,具体如下:(1) 与其他的硬件描述语言相比,VHDL具有更强的行为描述能力。
(2) VHDL具有丰富的仿真语句和库函数,使得在任何大系统的设计早期,就能查验设计系统的功能可行性,随时可对系统进行仿真模拟,使设计者对整个工程的结构和功能可行性做出判断。
(3) VHDL语句的行为描述能力和程序结构,决定了它具有支持大规模设计的分解和已有设计的再利用功能。
(4) 用VHDL完成一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动把VHDL描述设计转变成门级网表(根据不同的实现芯片)。
(5) VHDL对设计的描述具有相对独立性。
(6) VHDL具有类属描述语句和子程序调用等功能,对于完成的设计,在不改变源程序的条件下,只需改变类属参量或函数,就能轻易地改变设计的规模和结构。
2. Verilog:设计者需要了解电路的结构细节,对综合器的性能要求较低。
有多种EDA工具选择,已成为IEEE标准。
3.ABEL: 设计者需要了解电路的结构细节,对综合器的性能要求较低。
支持ABEL的综合器只有一家,ABEL正朝国际化标准努力。
3.2 VHDL程序一般包括几个组成部分每部分的作用是什么(1)三个基本组成部分:库、程序包使用说明,实体描述和实体对应的结构体描述。
(2)库、程序包使用说明:用于打开调用本设计实体将用到的库、程序包实体描述:用于描述该设计实体与外界的接口信号说明结构体描述:用于描述该设计实体内部的组成及内部工作的逻辑关系结构体配置语句主要用于层次化的方式对特定的设计实体进行元件的例化,或是为实体选定某个特定的结构体3.3 VHDL语言中数据对象有几种各种数据对象的作用范围如何各种数据对象的实际物理含义是什么(1)数据对象有三种:变量、常量、信号(2)常量的作用范围取决于其所定义的位置。
若在程序包中定义,则可以用在调用该程序包的所有设计实体中。
若定义在实体中,则可在这个实体的所有结构体中使用。
若定义在结构体中,则只能用于该结构体。
若定义在进程/子程序中,则只能用于该进程/子程序。
变量属于局部量,作用范围仅限于所定义的进程或子程序内部。
信号属于全局量,作用范围取决于其所定义的位置。
若在程序包中定义,则可以用在调用该程序包的所有设计实体中。
若定义在实体中,则可在这个实体的所有结构体中使用。
若定义在结构体中,则只能用于该结构体。
(3)信号表示硬件中的连线,用于各并行语句模块之间的通信。
变量一般用于存储局部/临时数据。
常量表示电路中的恒定电平,可使代码中常数易于阅读和修改。
3.4 什么叫标识符?VHDL的基本标识符是怎样规定的?(1)标识符用来定义常量、变量、信号、端口、子程序或者参数的名字。