- 57.50 KB
- 2022-07-30 发布
- 1、本文档由用户上传,淘文库整理发布,可阅读全部内容。
- 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,请立即联系网站客服。
- 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细阅读内容确认后进行付费下载。
- 网站客服QQ:403074932
EDA复习材料第一章一、相关英文单片电子系统SoCSystemonaChipEDA:电子设计自动化PLD可编程逻辑器件CPLD复杂可编程逻辑器件FPGA现场可编程门陈列HDL硬件描述语言ASIC特定用途集成电路SOPC可编程的片上系统二、手工设计方法的缺点是;A、复杂电路的设计、调试十分困难B、由于无法进行硬件系统仿真,如果某一过程存在过错,查找和修改十分不便C、设计过程中产生大量文档,不易管理D、对于IC设计而言,设计实现过程与具体生产工艺直接相关,因此可移植性差E、只有在设计出样机或生产出芯片后才能进行实测相比的eda技术有很大不同:(1)用HDL对数字系统进行抽象的行为与功能描述以及具体的内部线路结构描述,从而可以在电子设计的各个阶段、各个层次进行计算机模拟验证,保证设计过程的正确性,可以大大降低成本,缩短设计周期(2)EDA工具有各类库的支持(3)某些HDL也是文档型的语言,极大简化了设计文档的管理(4)EDA技术中最瞩目的功能是最具现代电子设计技术特征的功能日益强大的逻辑设计仿真测试技术(5)基于EDA技术的设计的不同,由于用HDL表达的成功的专用功能设计在实现目标方面有很大的可选性,它既可以用不同来源的通用FPGA/CPLD实现,也可以直接以ASIC来实现,设计者拥有完全的自主权,再无受制于人之虞(6)设计成果是通用性的,IP核具有规范的接口协议。良好的可移植与可测试性,为系统开发提供了可靠的保证(7)将所有设计环节纳入统一的自顶而下的设计方案(8)各个设计层次上利用计算机完成不同内容的仿真模拟,而且在系统板设计结束后仍可利用计算机对硬件系统进行完整的测试第二章一、图形输入:原理图输入、状态图输入和波形图输入二、VHDL、Verilog三、(1)时序仿真,就是接近真实器件运行特性的仿真,仿真文件包含器件硬件特性参数,仿真精度高\n(2)功能仿真,是直接对VHDL、原理图描述或其他描述形式的逻辑功能进行测试模拟,以了解其实现的功能是否满足原设计的要求,仿真过程不涉及任何具体器件的硬性特性四、IP就是知识产权核或知识产权模块软IP是用VHDL等硬件描述语言描述的功能块,但是并不涉及用什么具体电路元件实现这些功能固IP是完成了综合的功能块硬IP提供设计的最终阶级产品:淹模。随着设计深度的提高,后续工序所需要做的事情就越少,灵活性也就越小。第三章一、可编程的查找表(LookUpTable,LUT)可编程的最小逻辑构成单元LAB逻辑阵列块由多个逻辑单元LEPLL锁相环LVDS低压差分串行RSDS去抖动差分信号联合测试行动组(JointTestActionGroup,JTAP)JTAPBST边界扫描I/O引脚功能:TDI测试数据输入TDO测试数据输出TMS测试模块选择TCK测试时钟输入TRST测试复位输入具体看P48页二、PS(被动串行)模式:MSEL1=0MSEL0=0PPS(被动并行同步)模式:MSEL1=1MSEL0=0PPA(被动并行异步)模式:MSEL1=0MSEL0=1PSA(被动串行异步)模式:MSEL1=1MSEL0=0JTAG模式;MSEL1=0MSEL0=0AS(主动串行)模式第四章一、INOUT;定义的通道确定为输入输出双向端口BUFFER缓冲端口,其功能与INOUT区别在于当需要输入数据时,只允许内部回读输出的信号逻辑操作符;AND、OR、NOT二、WHEN-ELSE条件信号赋值语句赋值目标<=表达式WHEN赋值条件ELSE表达式WHEN赋值条件ELSE```表达式;三、上升沿检测条件判断三个表达式:(1)CLK`EVENTANDCLK=’1’;(2)CLK`EVENTAND(CLK=’1’)AND(CLK`LAST-VALUE=’0’)(3)四、STD-LOGIC所定义的九种含义;’U’表示未初始化;’X’表示强未知;’0’表示强逻辑0;’1’表示强逻辑1;’Z’表示高阻态;’W’表示弱未知;’L’表示弱逻辑0;’H’表示弱逻辑1;’-‘表示忽略;数据对象:信号(SIGNAL)变量(VARIABLE)常量(CONSTANT)五、并置操作符&abc<=a&b的作用是令:abc(1)<=a;abc(0)<=b;\n第六章一、信号与变量赋值语句功能的比较信号SIGNAL变量VARIABLE基本用法用于作为电路中的信号连线用于作为进程中局部数据存储单元适用范围在整个结构体内的任何地方都能适用只能在所定义的进程中使用行为特性在进程的最后才对信号赋值立即赋值二、IF语句的语句结构四种;(1)IF条件句Then顺序语句ENDIF;(2)IF条件句Then顺序语句ELSE顺序语句ENDIF;(3)IF条件句ThenIF条件句Then、、、、ENDIFENDIF;(4)IF条件句Then顺序语句ELSEIF条件句Then顺序语句、、、、ELSE顺序语句ENDIF;第七章一、建立.mif格式文件选择ROM数据文件编辑窗口,在File菜单中选择New,并在New窗口中Otherfiles页,在选择MemoryInitilizationFile项,单击OK按钮后产生ROM数据文件大小选择窗口。然后根据数据位数。建立.hex格式文件在New窗口中选择Otherfiles项后,选择HexadecimalFile项。具体看P163第八章一、状态机的优点:(1)状态机克服了纯硬件数字系统顺序方式控制不灵活的缺点\n(2)由于状态机的构建相对简单,设计方案相对固定,性能良好的综合器都具备许多可控或自动的优化状态机的功能(3)状态机容易构成性能良好的同步时序逻辑模块(4)状态机VHDL表述丰富多样,程序层次分明,结构清晰,易读易懂;在排错、修改和模块移植方面也有独到的好处(5)在高速运算和控制方面,状态机更有其巨大的优势二、状态位直接输出型编码的特点:将状态编码直接输出作为控制信号,即output=state,要求对状态机各状态的编码做特殊的选择,以适应控制时序的要求,这种状态机称为状态码直接输出型状态机.优点:输出速度快,没有毛刺现象.缺点;程序可读性差,用于状态译码的组合逻辑资源比其他以相同触发器数量构成的状态机多,而且难以有效的控制非法状态的出现顺序编码:最为简单,且使用的触发器数量最少,剩余的非法状态最少,容错技术最为简单。缺点:尽管节省了触发器,却增加了从一种状态向另一种状态转换的译码组合逻辑,这对于在触发器资源丰富相对较少的FPGA器件中实现是不利的。一位热码编码:一位热码编码方式尽管用了较多的触发器,但其简单的编码方式大为简化了状态译码逻辑,提高了状态转换速度,这对于含有较多的时序逻辑资源的FPGA器件是较好的解决方案。第九章一、VHDL包含许多特有的文件规则和表达方式(具体参考P247)数字:1、整数:整数都是十进制的数2、实数;实数也都是十进制的数,但必须带加小数点3、以数制基数表示的文字:a、用十进制标明数制进位的基数b、数制隔离符号“#”c、表达数d、指数隔离符号“#”e、用十进制表示的指数部分,这一部分的数如果为0可以省去不写字符串;1、文字字符串是用双引号括起的一串文字2、数位字符串也称位矢量,是预定义的数据类型BIT一组数组。第十章祥看VHDL基本语句的语法。第十一章一、资源共享的定义:资源优化是一种一般化的方法,主要针对数据通路中耗费逻辑资源比较多的模块,通过选择、复用的方式共享使用该模块,以减少该模块的使用个数,达到减少资源使用、优化面积的目的。串行化石指把原来耗用资源巨大、单时钟周期完成的并行执行的逻辑块分割开来,提取出相同的逻辑模块,在时间上复用该逻辑模块,用多个时钟周期完成相同的功能,其代价是工作速度被大为降低。设计题:例4-2ENTITYmux21aIS\nPORT(a,b:INBIT;s:INBIT;y:OUTBIT);ENDENTITYmux21a;ARCHITECTUREoneOFmux21aISSIGNALd,e:BIT:BEGINd<=aAND(NOTs);e<=bANDs;y<=dORe;ENDARCHITECTUREone;十进制加法计数器LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYCNT10ISPORT(CLK,RST,EN:INSTD_LOGIC;CQ:OUTSTD_LOGIC_VECTOR(3DOWNTO0);COUT:OUTSTD_LOGIC);ENDCNT10;ARCHITECTUREbehavOFCNT10ISBEGINPROCESS(CLK,RST,EN)VARIABLECQI:STD_LOGIC_VECTOR(3DOWNTO0);BEGINIFRST='1'THENCQI:=(OTHERS=>'0');ELSIFCLK'EVENTANDCLK='1'THENIFEN='1'THENIFCQI<9THENCQI:=CQI+1;ELSECQI:=(OTHERS=>'0');ENDIF;ENDIF;ENDIF;IFCQI=9THENCOUT<='1';ELSECOUT<='0';ENDIF;(题目如果不是带进位的,此段不用写)CQ<=CQI;ENDPROCESS;ENDbehav;十进制减法计数器\nLIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYCNT10ISPORT(CLK,RST,EN:INSTD_LOGIC;CQ:OUTSTD_LOGIC_VECTOR(3DOWNTO0);COUT:OUTSTD_LOGIC);ENDCNT10;ARCHITECTUREbehavOFCNT10ISBEGINPROCESS(CLK,RST,EN)VARIABLECQI:STD_LOGIC_VECTOR(3DOWNTO0);BEGINIFRST='1'THENCQI:=9;ELSIFCLK'EVENTANDCLK='1'THENIFEN='1'THENIFCQI>0THENCQI:=CQI-1;ELSECQI:=9;ENDIF;ENDIF;ENDIF;IFCQI=0THENCOUT<='1';ELSECOUT<='0';ENDIF;(题目如果不是带进位的,此段不用写)CQ<=CQI;ENDPROCESS;ENDbehav;十六进制加法计数器LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYCNT10ISPORT(CLK,RST,EN:INSTD_LOGIC;CQ:OUTSTD_LOGIC_VECTOR(3DOWNTO0);COUT:OUTSTD_LOGIC);ENDCNT10;ARCHITECTUREbehavOFCNT10ISBEGINPROCESS(CLK,RST,EN)VARIABLECQI:STD_LOGIC_VECTOR(3DOWNTO0);BEGIN\nIFRST='1'THENCQI:=(OTHERS=>'0');ELSIFCLK'EVENTANDCLK='1'THENIFEN='1'THENCQI:=CQI+1;ENDIF;ENDIF;IFCQI=15THENCOUT<='1';ELSECOUT<='0';ENDIF;(题目如果不是带进位的,此段不用写)CQ<=CQI;ENDPROCESS;ENDbehav;十六进制减法计数器LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYCNT10ISPORT(CLK,RST,EN:INSTD_LOGIC;CQ:OUTSTD_LOGIC_VECTOR(3DOWNTO0);COUT:OUTSTD_LOGIC);ENDCNT10;ARCHITECTUREbehavOFCNT10ISBEGINPROCESS(CLK,RST,EN)VARIABLECQI:STD_LOGIC_VECTOR(3DOWNTO0);BEGINIFRST='1'THENCQI:=15;ELSIFCLK'EVENTANDCLK='1'THENIFEN='1'THENCQI:=CQI-1;ENDIF;ENDIF;IFCQI=0THENCOUT<='1';ELSECOUT<='0';ENDIF;(题目如果不是带进位的,此段不用写)CQ<=CQI;ENDPROCESS;ENDbehav;8-4状态机设计b图LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYs_machine1ISPORT(inta:INSTD_LOGIC_VECTOR(2DOWNTO0);\nCLK,RST:INSTD_LOGIC;outa:OUTSTD_LOGIC_VECTOR(3DOWNTO0));ENDs_machine1;ARCHITECTUREbehavOFs_machine1ISTYPEST_TYPEIS(ST0,ST1,ST2,ST3);SIGNALC_ST:ST_TYPE;BEGINPROCESS(CLK,RST)BEGINIFRST='1'THENC_ST<=ST0;outa<="0000";ELSIFCLK'EVENTANDCLK='1'THENCASEC_STISWHENST0=>IFinta="101"THENouta<="0010";ELSIFinta="111"THENouta<="1100";ELSENULL;ENDIF;C_ST<=ST1;WHENST1=>IFinta="000"THENC_ST<=ST1;ELSIFinta="110"THENC_ST<=ST2;ELSENULL;ENDIF;outa<="1001";WHENST2=>IFinta="100"THENC_ST<=ST2;ELSIFinta="011"THENC_ST<=ST1;ELSEC_ST<=ST3;ENDIF;outa<="1111";WHENST3=>IFinta="101"THENouta<="1101";ELSIFinta="011"THENouta<="1110";ELSENULL;ENDIF;C_ST<=ST0;WHENOTHERS=>C_ST<=ST0;outa<="0000";ENDCASE;ENDIF;ENDPROCESS;ENDbehav;c图LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYs_machine0ISPORT(clk,reset:INSTD_LOGIC;inta:INSTD_LOGIC_VECTOR(0TO2);outa:OUTSTD_LOGIC_VECTOR(0TO3));END\ns_machine0;ARCHITECTUREbehvOFs_machine0ISTYPEFSM_STIS(s0,s1,s2,s3);--数据类型定义,状态符号化SIGNALcurrent_state,next_state:FSM_ST;--将现态和次态定义为新的数据类型BEGINREG:PROCESS(reset,clk)--主控时序进程BEGINIFreset='1'THENcurrent_state<=s0;--检测异步复位信号ELSIFclk='1'ANDclk'EVENTTHENcurrent_state<=next_state;ENDIF;ENDPROCESS;COM:PROCESS(current_state,inta)--主控组合进程BEGINCASEcurrent_stateISWHENs0=>IFinta="101"THENouta<="0100";ELSEouta<="0011";ENDIF;next_state<=s1;WHENs1=>outa<="1001";IFinta="000"THENnext_state<=s1;ELSEnext_state<=s2;ENDIF;WHENs2=>outa<="1111";IFinta="001"THENnext_state<=s2;ELSIFinta="110"THENnext_state<=s1;ELSEnext_state<=s3;ENDIF;WHENs3=>IFinta="101"THENouta<="1011";ELSEouta<="0111";ENDIF;next_state<=s0;ENDCASE;ENDPROCESS;ENDbehv;