EDA技术及应用复习重点

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

5.2 自顶向下的设计方法的优点: (1) 自顶向下设计方法是一种模块化设计方法。对设计的描述从上到下逐步由粗略到详细,符合常规的逻辑思 维习惯。由于高层设计与器件无关,因此设计易于在各种集成电路工艺或可编程器件之间移植。 (2) 适合多个设计者同时进行设计。随着技术的不断进步,许多设计由一个设计者已无法完成,由多个设计者 分工协作完成一项设计的情况越来越多。在这种情况下,应用自顶向下的设计方法便于由多个设计者同时进行 设计,对设计任务进行合理分配,用系统工程的方法对设计进行管理。 6、数字系统的设计原则(P16) 分割准则、系统的可观测性、同步和异步电路、最优化设计、系统设计的艺术 6.1、数字系统的设计步骤 1.系统任务分析 2.确定逻辑算法 3.建立系统及子系统模型 4.系统(或模块)逻辑描述 5.逻辑电路级设计及系统仿真 6.系统的物理实现 7、PLD 的分类方法(P22) 1. 从结构的复杂度分类:一般可将 PLD 分为简单 PLD 和复杂 PLD(CPLD), 或分为低密度 PLD 和高密度 PLD(HDPLD)。 2.从互连结构上分类:可将 PLD 分为确定型和统计型两类。确定型 PLD 提供的互连结构每次用相同的互连线 实现布线,统计型结构是指设计系统每次执行相同的功能,却能给出不同的布线模式,一般无法确切地预知线 路的延时。 3.从可编程特性上分类:可将 PLD 分为一次可编程和重复可编程两类。一次可编程的典型产品是 PROM、PAL 和熔丝型 FPGA,其他大多是重复可编程的。 4.从可编程元件上分类:一般有五种编程元件:① 熔丝型开关;② 可编程低阻电路元件;③ EPROM 的编程 元件;④ EEPROM 的编程元件;⑤ 基于 SRAM 的编程元件。 8、CPLD 和 FPGA 的编程与配置(P98) CPLD 的编程主要要考虑编程下载接口及其连接,而 FPGA 的配置除了考虑编程下载接口及其连接外,还要考 虑配置器件问题。 FPGA 的配置模式是指 FPGA 用来完成设计时的逻辑配置和外部连接方式。只有经过逻辑配置后,FPGA 才能实 现用户需要的逻辑功能。 FPGA 器件的配置电路方法:1.使用 PC 并行口配置 FPGA2.使用专用配置器件配置 FPGA3.使用单片机配置 FPGA 9、FPGA 和 CPLD 的开发应用选择(P167) 1.器件的逻辑资源量的选择 首先要考虑的是所选的器件的逻辑资源量是否满足本系统的要求。 (1) 硬件描述语言的选择、描述风格的选择以及 HDL 综合器的选择。 (2) 综合和适配开关的选择。如选择速度优化,则将耗用更多的资源,而若选择资源优化,则反之。在 EDA 工具上还有许多其他的优化选择开关,都将直接影响逻辑资源的利用率。 (3) 逻辑功能单元的性质和实现方法。一般情况,许多组合电路比时序电路占用的逻辑资源要大,如并行进位 的加法器、比较器以及多路选择器。 2.芯片速度的选择:芯片速度的选择应与所设计的系统的最高工作速度相一致。 3.器件功耗的选择 4.FPGA/CPLD 的选择 (1) 在中小规模范围,CPLD 价格较便宜,能直接用于系统。 (2) 开发 CPLD 的 EDA 软件比较容易得到,其中不少 PLD 公司还有条件地提供免费软件。 (3) CPLD 的结构大多为 EEPROM 或 Flash ROM 形式,具有编程后即可固定下载的逻辑功能,使用方便,电路 简单。 (4) 目前最常用的 CPLD 多为在系统可编程的硬件器件,编程方式极为便捷。这一优势能保证所设计的电路系 统随时可通过各种方式进行硬件修改和硬件升级,且有良好的器件加密功能。
Hale Waihona Puke Baidu
2、译码器 (1)3–8 线译码器(高电平有效)。 (P175) //3–8 线译码器(高电平有效)decode3_8a.v module decoder3_8a(ain, en, yout); input en; input [2:0] ain; output [7:0] yout; reg [7:0] yout; always @(en or ain) begin if (! en) yout = 8'b00000000; else case(ain) 3'b000: yout = 8'b00000001; 3'b001: yout = 8'b00000010; 3'b010: yout = 8'b00000100; 3'b011: yout = 8'b00001000; 3'b100: yout = 8'b00010000; 3'b101: yout = 8'b00100000; 3'b110: yout = 8'b01000000; 3'b111: yout = 8'b10000000; default: yout = 8'b00000000; endcase end endmodule (2)3–8 线译码器(低电平有效)。 //3–8 线译码器(低电平有效)decode3_8b.v module decoder3_8b(g1, g2a, g2b, c, b, a, y7, y6, y5, y4, y3, y2, y1, y0); input g1, g2a, g2b, c, b, a; output y7, y6, y5, y4, y3, y2, y1, y0; reg y7, y6, y5, y4, y3, y2, y1, y0; always @(g1 or g2a or g2b or c or b or a) begin if((g1 == 1'b0) || (g2a == 1'b1) || (g2b == 1'b1)) {y7,y6,y5,y4,y3,y2,y1,y0} <= 8'b11111111; else if ((g1 == 1'b1) && (g2a == 1'b0) && (g2b == 1'b0)) begin case({c,b,a}) 3'b000 : {y7, y6, y5, y4, y3, y2, y1, y0} <= 8'b11111110; 3'b001 : {y7, y6, y5, y4, y3, y2, y1, y0} <= 8'b11111101; 3'b010 : {y7, y6, y5, y4, y3, y2, y1, y0} <= 8'b11111011; 3'b011 : {y7, y6, y5, y4, y3, y2, y1, y0} <= 8'b11110111; 3'b100 : {y7, y6, y5, y4, y3, y2, y1, y0} <= 8'b11101111; 3'b101 : {y7, y6, y5, y4, y3, y2, y1, y0} <= 8'b11011111; 3'b110 : {y7, y6, y5, y4, y3, y2, y1, y0} <= 8'b10111111; 3'b111 : {y7, y6, y5, y4, y3, y2, y1, y0} <= 8'b01111111; default : {y7, y6, y5, y4, y3, y2, y1, y0} <= 8'b11111111; endcase end else {y7, y6, y5, y4, y3, y2, y1, y0} <= 8'b11111111; end endmodule
(5) CPLD 中有专门的布线区和许多块,无论实现什么样的逻辑功能,或采用怎样的布线方式,引脚至引脚间 的信号延时几乎是固定的,与逻辑设计无关。 5. FPGA 和 CPLD 封装的选择 6.其他因素的选择
二、程序编辑
1、全加器 用 Verilog HDL 设计一个 1 位二进制全加器。 (P114) 1) 或门模块 myor2.v //或门模块 myor2.v module myor2(a, b, c); //模块描述开始 input a, b; //模块输入端口说明 output c; //模块输出端口说明 //数据流方式描述模块功能 assign c = a | b; //连续赋值语句描述模块功能 endmodule //模块描述结束 2) 半加器模块 h_adder.v //半加器模块 h_adder.v module h_adder(a, b, so, co); //模块描述开始 input a, b; //模块输入端口说明 output so, co; //模块输出端口说明 //数据流方式描述模块功能 assign so = (a | b) && (!(a && b)); //连续赋值语句描述模块功能 assign co = !(!(a && b)); //连续赋值语句描述模块功能 endmodule //模块描述结束 3) 全加器 f_adder.v //全加器 f_adder.v module f_adder(ain, bin, cin, sum, cout); //模块描述开始 input ain, bin, cin; //模块输入端口说明 output sum, cout; //模块输出端口说明 wire s1, s2, s3; //数据类型说明 //使用元件实例化语句描述系统的组成结构 h_adder u1 (.a(ain), .b(bin), .so(s2), .co(s1)); //名字关联元件实例化 h_adder u2 (.a(s2), .b(cin), .so(sum), .co(s3)); //名字关联元件实例化 myor2 u3 (.a(s1), .b(s3), .c(cout)); //名字关联元件实例化 endmodule //模块描述结束
EDA 技术及应用复习重点
一、基础知识
1、什么叫 EDA 技术?利用 EDA 技术进行电子系统设计具有的特点。 (P1) 狭义的 EDA 技术,就是指以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达 方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动 完成用软件方式设计的电子系统到硬件系统的逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局布 线、逻辑仿真,直至对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专 用集成芯片的一门新技术,或称为 IES/ASIC 自动设计技术。 广义的 EDA 技术,除了狭义的 EDA 技术外,还包括计算机辅助分析 CAA 技术(如 PSPICE、EWB、MATLAB 等) 和印刷电路板计算机辅助设计 PCB-CAD 技术(如 PROTEL、 ORCAD 等)。 在广义的 EDA 技术中, CAA 技术和 PCB-CAD 技术不具备逻辑综合和逻辑适配的功能。 1.1、利用 EDA 技术(特指 IES/ASIC 自动设计技术)进行电子系统的设计,具有以下几个特点: ① 用软件的方式设计硬件; ② 用软件方式设计的系统到硬件系统的转换是由有关的开发软件自动完成的; ③ 设计过程中可用有关软件进行各种仿真; ④ 系统可现场编程,在线升级; ⑤ 整个系统可集成在一个芯片上,体积小、功耗低、可靠性高; ⑥ 从以前的“组合设计”转向真正的“自由设计” ; ⑦ 设计的移植性好,效率高; ⑧ 非常适合分工设计,团体协作。 2、常用的硬件描述语言(P4) 常用的硬件描述语言有 VHDL、Verilog 和 ABEL。 3、EDA 软件系统应当包含的内容。 (P6) EDA 软件系统应当包含:设计输入子模块、设计数据库子模块、分析验证子模块、综合仿真子模块、布局布 线子模块等。 (1) 设计输入子模块:该模块接受用户的设计描述,并进行语义正确性、语法规则的检查,检查通过后,将用 户的设计描述数据转换为 EDA 软件系统的内部数据格式,存入设计数据库,以便被其他子模块调用。 (2) 设计数据库子模块:该模块存放系统提供的库单元以及用户的设计描述和中间设计结果。 (3) 分析验证子模块:该模块包括各个层次的模拟验证、设计规则的检查、故障诊断等。 (4) 综合仿真子模块:该模块包括各个层次的综合工具。 (5) 布局布线子模块:该模块实现由逻辑设计到物理实现的映射,因此与物理实现的方式密切相关。 4、FPGA/CPLD 工程设计流程(P9) 第一,需要进行“源程序的编辑和编译”——用一定的逻辑表达手段将设计表达出来; 第二,要进行“逻辑综合”——将用一定的逻辑表达手段表达出来的设计,经过一系列的操作,分解成一系 列的基本逻辑电路及对应关系(电路分解); 第三, 要进行 “目标器件的布线/适配” ——在选定的目标器件中建立这些基本逻辑电路及对应关系(逻辑实现); 第四,目标器件的编程/下载——将前面的软件设计经过编程变成具体的设计系统(物理实现); 最后,要进行硬件仿真/硬件测试——验证所设计的系统是否符合设计要求。同时,在设计过程中要进行有关 “仿真”——模拟有关设计结果,看是否与设计构想相符。 5、数字系统设计模型的优点,采用自顶向下的设计方法的优点(P15) 5.1 数字系统设计模型的优点: (1) 把数字系统划分为控制子系统和数据处理子系统两个主要部分,使设计者面对的电路规模减小,二者可以 分别设计。 (2) 数字系统中控制子系统的逻辑关系比较复杂,将其独立划分出来后,可突出设计重点和分散设计难点。 (3) 当数字系统划分为控制子系统和数据处理子系统后,逻辑分工清楚,各自的任务明确,这可以使电路的设 计、调测和故障处理都比较方便。
相关文档
最新文档