EDA_VerilogHDL_复习提纲

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

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、inout14.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;endelsebegin语句块2;end③if(条件表达式1)begin语句块1;endelseif(条件表达式2)begin语句块2;end…elseif(条件表达式n)begin语句块n;endelsebegin语句块n+1;end7.简述Moore型和Mealy型状态机的区别答:Mealy型状态机的输出是当前状态和所有输入信号的函数,它的输出是在输入变化后立即发生的,不依赖时钟的同步。Moore型状态机的输出则仅为当前状态的函数,这类状态机在输入发生变化时还必须等待时钟的到来,时钟状态发生变化时才导致输出的变化,所以比Mealy机要多等待一个时钟周期。1.8选1数据选择器moduleMUX81a(a,b,c,d,e,f,g,h,s2,s1,s0,y);inputa,b,c,d,e,f,g,h,s2,s1,s0;outputy;regy;always@(a,b,c,d,e,f,g,h,s2,s1,s0)begin:MUX81case({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;endcaseendendmodulemoduleMUX81a(a,b,c,d,e,f,g,h,s2,s1,s0,y);inputa,b,c,d,e,f,g,h,s2,s1,s0;outputy;reg[2:0]sel;regy;always@(a,b,c,d,e,f,g,h,sel)beginsel={s2,s1,s0};if(sel==0)y=a;elseif(sel==1)y=b;elseif(sel==2)y=c;elseif(sel==3)y=d;elseif(sel==4)y=e;elseif(sel==5)y=f;elseif(sel==6)y=g;elsey=h;endendmodule2.一位全加器moduleh_adder(a,b,so,co);inputa,b;outputso,co;assign{co,so}=a+b;endmodulemoduleor2a(a,b,c);outputc;inputa,b;assignc=a|b;endmodulemodulef_adder(ain,bin,cin,cout,sum);outputcout,sum;inputain,bin,cin;wiree,d,f;h_adderu1(ain,bin,e,d);h_adderu2(.a(e),.so(sum),.b(cin),.co(f));or2au3(.a(d),.b(f),.c(cout));endmodule3.十进制计数器(异步复位,同步计数使能,可预置型)moduleCNT10(CLK,RST,EN,LOAD,COUT,DOUT,DATA);inputCLK,EN,RST,LOAD;input[3:0]DATA;output[3:0]DOUT;outputCOUT;reg[3:0]Q1;regCOUT;assignDOUT=Q1;always@(posedgeCLKornegedgeRST)beginif(!RST)Q1=0;elseif(EN)beginif(!LOAD)Q1=DATA;elseif(Q19)Q1=Q1+1;elseQ1=4’b0000;endendalways@(Q1)if(Q1==4’h9)COUT=1’b1;elseCOUT=1’b0;endmodule4.移位寄存器(8位右移)moduleSHFT1(CLK,LOAD,DIN,QB);outputQB;inputCLK,LOAD;input[7:0]DIN;reg[7:0]REG8;always@(posedgeCLK)beginif(LOAD)REG8=DIN;elseREG8[6:0]=REG8[7:1];endassignQB=REG8[0];endmodule5.优先编码器(8-

1 / 5
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功