1 / 11
文档名称:

eda复习资料.docx

格式:docx   大小:319KB   页数:11页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

eda复习资料.docx

上传人:1485173816 2024/5/7 文件大小:319 KB

下载得到文件列表

eda复习资料.docx

相关文档

文档介绍

文档介绍:该【eda复习资料 】是由【1485173816】上传分享,文档一共【11】页,该文档可以免费在线阅读,需要了解更多关于【eda复习资料 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。填空题1,、硬件描述语言〔HDL〕是EDA技术重要组成局部,是电子系统硬件行为描述、构造描述、数据流描述语言。它种类很多,如VHDL、VerilogHDL、AHDL。CPLD是寄语乘积项可编程构造,即由可编程与阵列和固定或阵列来完成功能。面FPGA采用查找表LUT构造可编程构造。VerilogHDL数字可以用二进制、十进制、八进制和十六进制4仲不同数制来表示。在VerilogHDL中还存在两种特殊取值,高阻态(Z或者z)和不定态〔X或者x〕。VerilogHDL模块I/O声明模块端口定义中各端口数据流动方向,包括输入〔input〕、输出〔output〕和双向〔inout〕。6、FPGA由可编程逻辑块〔CLB〕、可编程互连单元〔I/O〕和可编程互连三种可编程电路和一个SRAM构造配置存储单元组成。7、摩尔状态机中,其输出只是当前状态值函数,并且仅在时〔〕〔〕沿到来时才发生变化。8、EDA数字系统工程设计流程包括:设计准备、设计输入、设计实现、器件编程与配置、设计验证。9、对综合而言,VerilogHDLwire型变量取值可以是0、1、x和z。10、如果VerilogHDL操作符操作数只有1个,称为单目操作;如果操作符操作数有2个,称为双目操作;如果操作符操作数有3个,称为三目操作。11、QuartusⅡ编程系在设计文件包括引脚锁定和编程下载两个局部。12、VerilogHDL中,register型变量有reg、integer、rea和time4种。13、VerilogHDL模块短空定义用来声明电路设计模块输入端口和输出端口。14、VerilogHDL功能描述是用来描述设计模块内部构造和模块端口间逻辑关系。15、在VerilogHDL中,赋值语句有门基元、连续赋值、过程赋值和非阻塞赋值4种。16、VerilogHDL连续赋值语句关键字是assign,赋值符号是=。17、在VerilogHDL中,构造描述包括门级〔GateLevel〕和开关级〔SwitchLevel〕两种抽象级别。18、VerilogHDLalways块语句中语句是顺序语句,always块本身却是并行语句。19、在VerilogHDL模块中,任务用来单独完成某项具体任务,并被模块或其他任务调用。20、在VerilogHDL语句中,系统对表达式值进展判断,假设值为0,则按假处理;假设为1,则按真处理。21、一个完整VerilogHDL设计模块包括:端口定义、I/O声明、信号类型声明和功能描述4个局部。22、Verilog模块可以非为两种类型:一种是未了让模块最终能生成电路构造,另一种只是为了测试所设计电路逻辑功能是否正确。23、在VerilogHDL中,使用posedge关键字声明事件是由输入信号上升沿触发;使用negedge关键字声明事件是由输入信号下降沿触发。?答:元件例化语句作用:把已经设计好设计实体称为一个元件成个模块,它可以被高层次设计引用,是使VerilogHDL设计构成自上而下层次设计重要途径。?答:VerilogHDL提供了丰富运算操作符,其中包括逻辑操作符、算术操作符、关系操作符、等式操作符、条件操作符、位操作符、缩位操作符、移位操作符和拼接操作符等9类。。答:层次化设计是一种模块化设计方法,设计人员对设计描述由上而下逐步展开,符合常规思维****惯;由于顶层设计与具体器件和工艺无关,因此易于在个种可编程逻辑器件中间进展移植。层次化设计方法可以使多个设计人员同时进展操作,有利于对设计任务进展合理分配并用系统工程方法对设计进展管理。?答:将设计文件中输入、输出信号定位到所选期间具体物理管脚。。答:自顶而下设计指是将一个大规模数字电路系统从功能上化为假设干个不相交子模块,每个子模块又可以根据需要在功能上化为假设干个二级子模块,依此类推,直到功能模块小到比拟容易实现为止。答:在描述组合逻辑电路时,always在使用上有以下几个特点〔或者说是规则〕;1〕在敏感列表中使用电平敏感事件,不要使用边沿敏感。为变量赋值使用阻塞赋值,不要使用非阻塞赋值。另外,在always块内被赋值变量必须为存放器型变量。因此尽管在组合逻辑中不包含任何记忆单元,但是如果变量需要在always块内被赋值,就必须定义为存放器型,这并不表示所描述数字电路系统中包含有记忆元件。$stop和$finish区别是什么?答:系统任务$stop和$finish区别是,系统任务$stop用于暂停仿真,系统任务$finish用于完毕仿真。?$stop使仿真进入一种交互模式,设计者可以在此模式下对设计进展调试。当设计者想要暂停仿真来检查信号值时,可以使用这个系统函数。?系统任务$finish用于完毕仿真。——模块主要包括哪些内容?主要作用是什么?答:模块(module)是VerilogHDL对数字电路系统建模根本单元,每个模块包括模块名称、端口列表、端口类型列表、内部变量定义以及逻辑功能描述等几个局部。模块名称:模块取一个和其功能相关名字端口列表:模块输入和输出端口端口类型列表:定义各个端口方向如〔输入端口、输出端口和双向端口〕内部变量定义:内部变量可以使程序变得更有条理逻辑功能描述:是一个模块主体,它描述了模块输出信号和输入信号逻辑关系。:timescale1ns/100ps此语句说明时延时间单位为1ns并且时间精度为100ps()。如果此编译器指令所在模块包含上面连续赋值语句,#2代表2ns。:用户定义原语(UDP)。创立灵活性:用户定义原语既可以是组合逻辑原语,也可以是时序逻辑原语。。答:根本逻辑门,例如and、?答:VerilogHDL中有两类数据类型:线网数据类型和存放器数据类型。线网类型表示构件间物理连线,而存放器类型表示抽象数据存储元件。?答:阻塞赋值使用“=〞为变量赋值,在赋值完毕以前不可以进展其他操作,在赋值完毕后继续后面操作。这个过程就好似阻断了程序运行,因而被成为阻塞赋值。连续阻塞赋值操作是顺序完成。非阻塞赋值使用“<=〞为变量赋值,在执行到赋值语句时,仅仅对“<=〞右侧表达式值进展评估,但并不马上执行赋值,然后继续执行后面操作。这个过程就好似没有阻断程序运行,因而被成为非阻塞赋值。连续非阻塞赋值操作是同时完成。多条阻塞赋值语句是顺序执行,而多条非阻塞语句是并行执行,这就是两者区别。?答:行为描述方式〔过程化构造建模〕,数据流方式〔连续赋值语句方式〕,构造化方式〔使用门和模块实例语句描述建模〕。?答:VerilogHDL可以清晰建立时序模型,故可以使用VerilogHDL描述一个设计时序。?答::硬件描述语言HDL(HardwareDescriptionLanguage)是一种用形式化方法来描述数字电路和系统语言。数字电路系统设计者利用这种语言可以从上层到下层(从抽象到具体),逐层描述自己设计思想,用一系列分层次模块来表示极其复杂数字系统。,各有什么特点?答:目前常用HDL主要有:VHDL、VerilogHDL、SystemVerilog、SystemC;VerilogHDL成为某层电路建模与设计中最流行硬件描述语言;VHDL是在高层次上描述系统和元件行为建模工具;SystemVerilog主要定位于集成电路实现和验证流程,并为系统级设计流程提供了强大链接能力;SystemC主要用于ESL〔电子系统级〕建模与验证。?有哪些类型?综合在电子设计自动化中地位是什么?答:在电子设计领域中综合概念可以表示为:将用行为和功能层次表达电子系统转换为低层次便于具体实现模块组合装配过程。有以下几种类型:(1)从自然语言转换到VHDL语言算法表示,即自然语言综合。(2)从算法表示转换到存放器传输级(RegisterTransportLevel,RTL),即从行为域到构造域综合,即行为综合。(3)从RTL级表示转换到逻辑门(包括触发器)表示,即逻辑综合。(4)从逻辑门表示转换到幅员表示(ASIC设计),或转换到FPGA配置网表文件,可称为幅员综合或构造综合。综合在电子设计自动化中地位是核心地位。综合器具有更复杂工作环境,综合器在承受VHDL程序并准备对其综合前,必须获得与最终实现设计电路硬件特征相关工艺库信息,以及获得优化综合诸多约束条件信息;根据工艺库和约束条件信息,将VHDL程序转化成电路实现相关信息。?IP与EDA技术关系是什么??答:IP是知识产权核或知识产权模块,用于ASIC或FPGA/CPLD中预先设计好电路功能模块,在EDA技术开发中具有十分重要地位。美国著名Dataquest咨询公司将半导体产业IP定义为:“用于ASIC或FPGA/CPLD中预先设计好电路功能模块〞。IP分为软IP、固IP、硬IP:软IP:用VHDL等硬件描述语言描述功能块,并不涉及用什么具体电路元件实现这些功能;软IP通常是以硬件描述语言HDL源文件形式出现。固IP:完成了综合功能块,具有较大设计深度,以网表文件形式提交客户使用。硬IP:提供设计最终阶段产品:,它们可用于什么类型语句中答:书上P261~262线网(wire)表示硬件单元之间连接,就像在真实电路中一样,线网由其连接器件输出端连续驱动。线网不能储存值,而且它必须受到驱动器〔例如门或连续赋值语句,assign〕驱动。如果没有驱动源,则线网值为z。reg存放器用来表示存储元件,它保持原有数值,通过赋值语句可以改变存放器储存值,其作用与改变触发器储存值相当。reg类型数据默认初始值为不定值x。型变量常被综合为硬件电路中物理连接,其特点是输出值紧跟输入值变化而变化,因此常被用来表示以assign关键词引到组合电路描述。Register类型变量必须放在过程语句中,如initial、always引导语句中,通过过程赋值语句〔包括阻塞与非阻塞语句〕完成赋值操作,换言之,在always、initial等过程构造内被赋值变量必须定义为Variable类型。?答:Verilog中,用普通等号“=〞作为阻塞式赋值语句赋值符号,如y=b。Verilog中,用普通等号“<=〞作为非阻塞式赋值语句赋值符号,如y<=b。阻塞式赋值特点是,一旦执行完当前赋值语句,赋值目标变量y即刻获得来自等号右侧表达式计算值。如果在一个块语句中含有多条阻塞式赋值语句,则当执行到其中某条赋值语句时,其他语句将制止执行,即如同被阻塞了一样。非阻塞式赋值特点是必须在块语句执行完毕时才整体完成赋值操作。非阻塞含义可以理解为在执行当前语句时,对于块中其他语句执行情况一律不加限制,不加阻塞。这也可以理解为,在begin_end块中所有赋值语句都可以并行运行。。答:任务和函数有些不同,主要不同有以下4点;(1)函数只能与主模块共用同一个仿真时间单位,而任务可以定义自己仿真时间单位。(2)函数不能启动任务,而任务能启动其他任务和函数。(3)函数至少要有一个输入变量,而任务可以没有或有多个任何类型变量。(4)函数返回一个值,而任务则不返回值。选择题VerilogHDL是由(②)语言演化过来。①、BASIC②、C语言③、PASCAL④、VHDLVerilogHDL设计模块可以被高层次系统〔④〕,成为系统一局部。①、输入②、输出③、仿真④、调用VerilogHDL模块端口定义用来声明电路设计模块〔④〕端口。①、输入②、输出③、双向④、全部输入/输出用VerilogHDLassign语句建模方法一般成为〔①〕方式。①、连续赋值②、并行赋值③、串行赋值④、函数赋值在VerilogHDL转移操作运算中,用符号“<<〞实现对操作数〔③〕操作。①、逻辑右移②、算术右移③、逻辑左移④、算术左移在VerilogHDL模块中,tack语句类似高级语言中〔④〕。①、函数②、常数③、变量④、子程序VerilogHDLalways块语句中语句是〔①〕语句。①、顺序②、并行③、顺序或并行④、串行在VerilogHDL缩减操作运算中,设A=8’b11010001,则“|A〞运算结果为〔②〕。①、0②、1③、x④、z在以下符号组中,〔②〕不能作为VerilogHDL标识符。①、CT74138②、74LS138③、_74138④、CT74138在VerilogHDL常数中,八进制数符号是用〔③〕表示。①、d或D②、b或B③、o或O④、h或H。。。。。。。。。调用时返回一个用于〔④〕值。①、程序包②、输入③、输出④、表达式在VerilogHDL中,语句“always@〔negedgeclk〕〞表示模块事件是由clk〔①〕触发。①、下降沿②、上升沿③、高电平④、低电平在VerilogHDL中,连续赋值语句“:〞号两边变量都应该是〔①〕型变量。①、wire②、register③、wire或register④、integer在VerilogHDL端口声明语句中,用〔①〕关键字声明端口为双向方向。①、inout②、INOUT③、BUFFER④、buffer在VerilogHDL常数中,二进制数符号是用〔②〕表示。①、d或D②、b或B③、o或O④、h或H在VerilogHDL逻辑运算中,设A=8’b00011001,则表达式“A&B〞结果为〔①〕。①、8’b00010001②、8’b11011001③、8’b11001000④、8’b00110111在VerilogHDL关系运算中,如果关系是真,则计算结果为〔②〕。①、0②、1③、x④、z在VerilogHDL转移操作中,用符号“>>〞实现对操作数〔①〕。①、逻辑右移②、算术右移③、逻辑左移④、算术左移在VerilogHDL中,连续赋值语句关键字是〔①〕。①、assign②、ASSIGN③、Assign④、以上均可在VerilogHDL中,语句“always@〔posedgeclk〕〞表示模块事件是用clk〔②〕触发。①、下降沿②、上升沿③、高电平④、低电平答案貌似选2,IEEE#1064-1995.①、②、IEEE#1064-1995③、④、IEEESTDI076-1993一个能为VerilogHDL综合器承受,并能作为一个独立设计单元完整VerilogHDL程序称为〔③〕。①、设计输入②、设计输出③、设计模块④、设计构造VerilogHDL设计模块可以被高层次系统〔④〕,成为系统一局部。①、输入②、输出③、仿真④、调用VerilogHDL模块端口定义用来声明电路设计模块〔④〕端口。①、输入②、输出③、双向④、全部输入/输出在VerilogHDL模块I/O声明中,用来声明端口数据流动方向关键字包括〔④〕①、input②、output③、inout④、以上均是在VerilogHDL端口声明语句中,用〔①〕关键字声明端口为输入方向。注意:input是小写。①、input②、INPUT③、IN④、outputVerilogHDL功能描述是用来描述设计模块内部构造和模块端口间逻辑关系,通常把确定这些设计模块描述方法称为〔③〕。①、综合②、仿真③、建模④、设计用VerilogHDLassign语句建模方法一般称为〔①〕方式。①、连续赋值②、并行赋值③、串行赋值④、函数赋值用VerilogHDL元件例化方式建模来完成设计一般属于〔②〕描述方式。①、行为②、构造③、功能④、行为和构造VerilogHDL程序每个模块内容都是在〔③〕两语句之间。①、start和endmodule②、module和end③、module和endmodule④、start和endstart在VerilogHDL常数中,未知数字是用〔②〕表示。注意:x为小写。①、X②、x③、Z④、zVerilogHDL标识符可以是字母、数字和下划线“_〞等符号组成任意序列,但首字母不能是〔③〕。①、大写字母②、小写字母③、数字④、下划线“_〞在VerilogHDL标识符中使用字母规则是〔②〕。①、大小写一样②、大小写不同③、只允许用大写④、只允许用小写在VerilogHDL逻辑运算中,设A=8’b||010001,B=8’b00011001,则表达式A|B结果为〔②〕。①、8’b00010001②、8’b11011001③、8’b11001000④、8’b00110111在VerilogHDL逻辑运算中,设A=8’b||010001,B=8’b00011001,则表达式A^B结果为〔③〕。①、8’b00010001②、8’b11011001③、8’b11001000④、8’b00110111在VerilogHDL设计模块中,最常用存放器型变量是〔①〕型变量。①、reg②、nets③、s④、ineger在VerilogHDL中,连续赋值语句“=〞号两边变量都应该是〔①〕型变量。①、wire②、register③、wire或register④、integerVerilogHDLalways块语句中语句是〔①〕语句。①、顺序②、并行③、顺序或并行④、串行VerilogHDLalways块本身是〔②〕语句。①、顺序②、并行③、顺序或并行④、-end串行块产生信号波形试画出波形`timescale10ns/1nsmodulewave1;regwave;parametercycle=10;initialbeginwave=0;#(cycle/2)wave=1;#(cycle/2)wave=0;#(cycle/2)wave=1;#(cycle/2)wave=0;#(cycle/2)wave=1;#(cycle/2)$finish;endinitial$monitor($time,,,"wave=%b",wave);。`timescale1ns/1nsmoduleTest(Stream);outputStream;regStream;initialbeginStream=0;#12Stream=1;#5Stream=0;#3Stream=1;#4Stream=0;#2Stream=1;#5Stream=0;endendmodule三、使用连续赋值语句assign编程程序:使用连续赋值语句assign方式描述如下图电路〔模块名Boolean_Ex〕ModuleBoolean_Ex(A,B,C,M1,M2);InputA,BC;OuputM1,M2;assignM1=A|(C&(~B));assignM2=B;endmodule四、。画出该程序引脚示意图。说明设计电路功能。ModuleJK_FF(CLK,J,K,Q,RS,SET);//模块名JK_FF(端口列表CLK,J,K,Q,RS,SET)InputCLK,J,K,SET,RS;//模块输入端口为CLK,J,K,SET,RSOutputQ;//模块输出端口为QregQ;always@(posedgeCLKornegedgeRSornegedgeSET)//CLK上升沿触发,RS、SET下降沿触发BeginIf(!RS)Q<=1’b0;//异步清0,低电平有效elseif(!SET)Q<=1’b1//异步清预置1elsecase({J,K})2’b00:Q<=Q;2’b01:Q<=1’b0;2’b10:Q<=1’b1;2’b11:Q<=~Q;default:Q<=1’bx;endcaseendendmodule程序引脚示意图:逻辑功能是:带异步清0、(y,d0,d1,d2,d3,d4,d5,d6,d7,s2,s1,s0);//模块名为lxpp(端口列表y,d0,d1,d2,d3,d4,d5,d6,d7,s2,s1,s0)inputs2,s1,s0;//模块输入端口为s2,s1,s0inputd0,d1,d2,d3,d4,d5,d6,d7;outputy;regy;//定义信号数据类型alwaysbegin//逻辑功能描述case({s2,s1,s0})3'b000:y=d0;3'b001:y=d1;3'b010:y=d2;3'b011:y=d3;3'b100:y=d4;3'b101:y=d5;3'b110:y=d6;3'b111:y=d7;endcaseendendmodule程序引脚示意图:逻辑功能是:该VerilogHDL源程序设计是8选1数据选择器,d7~d0是数据输入端,s2、s1和s0是控制输入端,y是数据输出端。当s2s1s0=000时,d0数据被选中,输出y=d0;当s2s1s0=001时,d1数据被选中,输出y=d1;(q,cout,ena,clk,clr);//模块名为expp(端口列表q,cout,ena,clk,clr)inputena,clk,clr;//输入ena,clk,clroutput[7:0]q;//输出加法计数q,8位outputcout; //进位输出coutreg[7:0]q;//定义信号数据类型always@(posedgeclk)//敏感信号列表clk电平触发beginif(~clr)q='b00000000;//逻辑功能描述elseif(ena)q=q+1;endassigncout=&q;endmodule 程序引脚示意图:逻辑功能是:该VerilogHDL源程序设计带复位和使能控制8位二进制加法计数器电路。clk是时钟输入端。clr是复位控制输入端,当clr=0时,计数器被复位。ena是使能控制输入端,当ena=1时,计数器工作,ena=0时,计数器状态不变(保持)。在ena=1和clr=1时,电路每接收到一个clk时钟下降沿,计数器状态加1。当计数器状态为“〞(最大值)时,进位输出cout=1,产生向高位计数进位。(Sum,Cout,en,clk,rst,up);//定义模块inputen,clk,rst,up;output[2:0]Sum;//输出,逻辑位向量outputCout;regCout;reg[2:0]q;assignSum=q;//将内部存放器计数结果输出至Sumalways@(posedgeclkornegedgerst)//过程,敏感信号clk,rstbeginIf(!rst)q=3’h00;//异步清零,低电平有效elseif(en)begin;//计数使能端,高电平有效if(up)q=q+1;//up=1时,加计数elseq=q-1;end//up=0时,减计数endalways@(q)//组合电路之过程if((up&q[2]&q[1]&q[0])|(~up&~q[2]&~q[1]&~q[0]))Cout=1’b1;//Cout输出进位标志或借位1elseCout=1’b0;//否则,进位标志或借位0endmodule逻辑功能:是一个3位增1/减1计数器,当输入信号UP等于1时,计数器增1;当输入信号UP等于0时计数器减1。(a,b,s,y);//定义模块名mux21inputa,b,s;//a,b,s为输入端口,数据类型bitoutputy;regy;//定义y为存放器变量always@(aorbors)//过程,敏感信号a,b,sbegin:mux21case(s)1’b0:y<=a;//当s=0时,y=a,否则等b1’b1:y<=b;default:y<=a;endcaseendendmodule程序引脚图:逻辑功能:。Verilog程序如下modulemuxtwo(out,a,b,sl);inputa,b,sl;outputout;notu1(nsl,sl);andu2(sela,a,nsl);andu3(selb,b,sl);oru4(out,sela,selb);endmodulemoduleRTL2(A,B,C,D,Y)outputY;intputA,B,C,D;regY;//or(TP1,A,B);/*用门级电路可以*///and(TP2,C,D);assignTP1=A|B;/*用assign连续赋值语句也可以*/assignTP2=C&D;always@(TP1,TP2,A)beginif(TP==1)Y=TP1^TP2;elseY=A;。设电路并行数据输入端为d[7:0],并行数据输出端为q[7:0],串行数据输入端为ds1,时钟输入端为clk。ldn是预置控制输入端,当ldn=0时,q[7:0]=d[7:0]。clrn是复位控制输入端,当clrn=0时,移位存放器被复位。解:8位左移移位存放器VerilogHDL源程序如下:moduleshl8_v(clr,clk,dsl,ldn,d,q);inputclr,clk,dsl,ldn;input[7:0]d;output[7:0]q;reg[7:0]q;always@(posedgeclkorposedgeclr)beginif(clr)beginq=8'b00000000;endelseif(~ldn)beginq=d;endelsebeginq[7:1]=q[6:0];q[0]=dsl;,计数器时钟CLK上升沿有效,清零端CLRN,进位输出CO。T10(CLK,CLRN,CO,DOUT);inputCLK,CLRN;//时钟,复位控制信号输入口output[3:0]DOUT;//计数数据输出信号口outputCO;//计数进位输出reg[3:0]Q1;regCO;assignDOUTQ1;//将内部存放器计数结果输出至DOUTalways@(posedgeCLKornegedgeCLRN)begin//时序过程if(!CLRN)Q<=0;//RST=0时,对内部存放器单元异步清零elseif(Q1<9)Q1<Q1+1;//当Q1小于9时,允许累加elseQ1<4’b0000;//否则一个时钟后清0返回初值endalways@( Q1)//组合电路之过程if(Q1==4’h9)CO=1’b1;//当Q1=1001时,CO输出进位标志1elseCO=1’b0;//否则,,请用基于根本库元件构造描述方法编写其VerilogHDL程序。binational_logic(y,a,b,s)outputy;inputa,b,s;wiresn,a1,b1;not(sn,s);and(a1,a,sn);and(b1,s,b);or(y,a1,b1);(a0,a1,b0,b1,ci,co,s1,s2);outputco,s1,s2;inputa0,a1,b0,b1,ci;