EDA课后知识题目解析.ppt
《EDA课后知识题目解析.ppt》由会员分享,可在线阅读,更多相关《EDA课后知识题目解析.ppt(47页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第1章,EDA技术概述,1-1 EDA技术与ASIC设计和FPGA开发有什么关系?FPGA在ASIC设计中有什么用途? 答:EDA技术进行电子系统设计的最后目标,是完成专用集成电路(ASIC)的设计和实现,FPGA是实现这一途径的主流器件,它们的特点是直接面向用户、具有极大的灵活性和通用性、使用方便、硬件测试和实现快捷、开发效率高、成本低、上市时间短、技术维护简单、工作可靠性好等。FPGA的应用是EDA技术有机融合软硬件电子设计技术、ASIC设计,以及对自动设计与自动实现最典型的诠释。,1-2 与软件描述语言相比,Verilog有什么特点? 答:Verilog语言的特点: (1)按照设计目的,
2、Verilog程序可以划分为面向仿真和面向综合两类,而可综合的Verilog程序能分别面向FPGA和ASIC开发两个领域。 (2)能在多个层次上对所设计的系统加以描述,从开关级、门级、寄存器传输级(RTL)至行为级都可以加以描述。 (3)灵活多样的电路描述风格。,1-3 什么是综合?有哪些类型?综合在电子设计自动化中的地位是什么? 答:综合(Synthesis),就其字面含义应该是:把抽象的实体结合成单个或统一的实体。 在电子设计领域,综合的概念可以表述为:将用行为和功能层次表达的电子系统转换为低层次的、便于具体实现的模块组合装配的过程。 (1)从自然语言转换到Verilog语言算法表述,即自
3、然语言综合。 (2)从算法表述转换到寄存器传输级(Register Transport Level,RTL)表述,即从行为域到结构域的综合,也称行为综合。 (3)从RTL级表述转换到逻辑门(包括触发器)的表述,即逻辑综合。 (4)从逻辑门表述转换到版图级表述(如ASIC设计),或转换到FPGA的配置网表文件,可称为版图综合或结构综合。 综合器就是能够将一种设计表述形式自动向另一种设计表述形式转换的计算机程序,或协助进行手工转换的程序。它可以将高层次的表述转化为低层次的表述,可以将行为域转化为结构域,可以将高一级抽象的电路描述(如算法级)转化为低一级的电路描述(如门级),并可以用某种特定的“技术
4、”(如CMOS)实现。,1-4 IP在EDA技术的应用和发展中的意义是什么? 答:IP就是知识产权核或知识产权模块的意思,在EDA技术和开发中具有十分重要的地位。美国著名的Dataquest咨询公司将半导体产业的IP定义为“用于ASIC或FPGA中的预先设计好的电路功能模块”。IP分软IP、固IP和硬IP。 软IP是用HDL等硬件描述语言描述的功能块,但是并不涉及用什么具体电路元件实现这些功能。 固IP是完成了综合的功能块。它有较大的设计深度,以网表文件的形式提交客户使用。 硬IP提供设计的最终阶段产品掩模。随着设计深度的提高,后续工序所需要做的事情就越少;当然,灵活性也就越小。不同的客户可以
5、根据自己的需要订购不同的IP产品。,1-5 叙述EDA的FPGA/CPLD设计流程,以及涉及的EDA工具及其在整个流程中的作用。 答:完整地了解利用EDA技术进行设计开发的流程对于正确地选择和使用EDA软件、优化设计项目、提高设计效率十分有益。一个完整的、典型的EDA设计流程既是自顶向下设计方法的具体实施途径,也是EDA工具软件本身的组成结构。,基于EDA的FPGA/CPLD开发流程,1-6 OLMC有何功能?说明GAL是怎样实现可编程组合电路与时序电路的。 答:输出逻辑宏单元(Output Logic Macro Cell,OLMC),此结构使得PLD器件在组合逻辑和时序逻辑中的可编程或可重
6、构性能都成为可能。 GAL16V8型号的器件,它包含了8个逻辑宏单元OLMC,每一个OLMC可实现时序电路可编程,而其左侧的电路结构是与阵列可编程的组合逻辑可编程结构。 GAL的OLMC单元设有多种组态,可配置成专用组合输出、专用输入、组合输出双向口、寄存器输出、寄存器输出双向口等,为逻辑电路设计提供了极大的灵活性。 GAL的输出逻辑宏单元OLMC中含有4个多路选择器,通过不同的选择方式可以产生多种输出结构,分别属于3种模式,一旦确定了某种模式,所有的OLMC都将工作在同一种模式下。图1-14即为其中一种输出模式对应的结构。,图1-14 寄存器输出结构,1-7 什么是基于乘积项的可编程逻辑结构
7、?什么是基于查找表的可编程逻辑结构? 答:基于乘积项的可编程结构,即由可编程的“与”阵列和固定的“或”阵列组成。 可编程的查找表(Look Up Table,LUT)结构,LUT是可编程的最小逻辑构成单元。大部分FPGA采用基于SRAM(静态随机存储器)的查找表逻辑形成结构,即用SRAM来构成逻辑函数发生器。一个N输入LUT可以实现N个输入变量的任何逻辑功能,如N输入“与”、N输入“异或”等。,1-8 就逻辑宏单元而言,GAL中的OLMC、CPLD中的LC、FPGA中的LUT和LE的含义和结构特点是什么?它们都有何异同点? 答:输出逻辑宏单元(Output Logic Macro Cell,O
8、LMC),此结构使得PLD器件在组合逻辑和时序逻辑中的可编程或可重构性能都成为可能。 MAX7000S系列器件包含32256个逻辑宏单元(Logic Cell,LC),其单个逻辑宏单元结构如图1-15所示。 LUT即可编程的查找表(Look Up Table,LUT)结构,是可编程的最小逻辑构成单元。大部分FPGA采用基于SRAM(静态随机存储器)的查找表逻辑形成结构,即用SRAM来构成逻辑函数发生器。一个N输入LUT可以实现N个输入变量的任何逻辑功能,如N输入“与”、N输入“异或”等。 LE是Cyclone III FPGA器件的最基本的可编程单元,LE主要由一个4输入的查找表LUT、进位链
9、逻辑、寄存器链逻辑和一个可编程的寄存器构成。,1-9 为什么说用逻辑门作为衡量逻辑资源大小的最小单元不准确。 答:专业习惯是将OLMC及左侧的可编程与阵列合称一个逻辑宏单元,即标志PLD器件逻辑资源的最小单元,由此可以认为GAL16V8器件的逻辑资源是8个逻辑宏单元,而目前最大的FPGA的逻辑资源达数十万个逻辑宏单元。也有将逻辑门的数量作为衡量逻辑器件资源的最小单元,如某CPLD的资源约2000门等,但此类划分方法误差较大。,1-10 标志FPGA/CPLD逻辑资源的逻辑宏单元包含哪些结构? 答: CPLD( MAX7000S)系列中的 逻辑宏单元由3个功能块组成:逻辑阵列、乘积项选择矩阵和可
10、编程寄存器,它们可以被单独地配置为时序逻辑和组合逻辑工作方式。其中逻辑阵列实现组合逻辑,可以给每个逻辑宏单元提供5个乘积项。“乘积项选择矩阵”分配这些乘积项作为到“或门”和“异或门”的主要逻辑输入,以实现组合逻辑函数;或者把这些乘积项作为宏单元中寄存器的辅助输入:清零(Clear)、置位(Preset)、时钟(Clock)和时钟使能控制(Clock Enable)。 FPGA(Cyclone III)器件的可编程资源主要来自逻辑阵列块LAB,而每个LAB都由多个逻辑宏单元(Logic Element,LE)构成。LE是Cyclone III FPGA器件的最基本的可编程单元,LE主要由一个4输
11、入的查找表LUT、进位链逻辑、寄存器链逻辑和一个可编程的寄存器构成。,1-11 解释编程与配置这两个概念。 答:基于电可擦除存储单元的EEPROM或Flash技术。CPLD一般使用此技术进行编程(Progam)。CPLD被编程后改变了电可擦除存储单元中的信息,掉电后可保持。 Altera的FPGA器件有两类配置下载方式:主动配置方式和被动配置方式。主动配置方式由FPGA器件引导配置操作过程,它控制着外部存储器和初始化过程,而被动配置方式则由外部计算机或控制器控制配置过程。 对于SRAM型FPGA,在实用中必须利用专用配置器件来存储编程信息,以便在上电后,该器件能对FPGA自动编程配置。 EPC
12、器件中的EPC2型号的器件是采用Flash存储工艺制作的具有可多次编程特性的配置器件。,第2章,Verilog程序结构与数据类型,习 题,2-1 wire型变量与reg型变量的什么本质区别,它们可用于什么类型语句中? 答:书上P3335第2章 Verilog程序结构与数据类型 线网(wire)表示硬件单元之间的连接。就像在真实的电路中一样,线网由其连接器件的输出端连续驱动。线网不能储存值,而且它必须受到驱动器(例如门或连续赋值语句,assign)的驱动。如果没有驱动源,则线网的值为z。 reg寄存器用来表示存储元件,它保持原有的数值,通过赋值语句可以改变寄存器储存的值,其作用与改变触发器储存的
13、值相当。reg类型数据的默认初始值为不定值x。 定义为Net型的变量常被综合为硬件电路中的物理连接,其特点是输出的值紧跟输入值的变化而变化,因此常被用来表示以assign关键词引导的组合电路描述。 Register类型变量必须放在过程语句中,如initial、always引导的语句中,通过过程赋值语句(包括阻塞与非阻塞语句)完成赋值操作,换言之,在always和initial等过程结构内被赋值的变量必须定义成Variable类型。,2-3 以下的标符是否合法? XOR、or、74LS04、4Badder、ASC、$SMD、A5加法器、BEGIN 答:正确XOR、 BEGIN 、 ASC(还有一
14、类标识符,即转义标识符(Escaped Identifiers)。转义标识符以斜杠“”开头,以空白符结尾,可以包含任何字符。例如,8031、-Gt。 ) 不正确74LS04、4Badder(起始为数字), A5加法器, or(关键词), $SMD(任何标识符必须以英文字母或下划线开头。),2-2 下列数字的表述方式是否正确? 4b-1101、6sb010_1101、5d82、bx01、6b10 x101、10d7、HzD、-3b101 答:正确bx01、6b10 x101、10d7、HzD、-3b101 不正确4b-1101、6sb010_1101、5d82(1010010),注意:关键字都是
15、小写的。如reg是关键字,但REG不属于关键字,所以可用作普通标识符。,2-4 定义以下的变量和常数。 (1) 定义一个名字为Q1的8位reg总线。 (reg7:0 Q1;) (2) 定义一个名字为asg的整数。 ( integen asg; ) (3) 定义参数s1=3b010,s2=3b110,s3=3b011。 parameter s1=3b010,s2=3b110,s3=3b011; (4) 定义一个容量(深度)为128,字长为32位的存储器,存储器名是MEM32。 (reg31:0 mem 127:0 MEM32;) (5) 定义一个名字为WBUS的16位wire总线。 (wire1
16、5:0 WBUS),2-5 设“reg3:0A; reg7:0B; reg15:0C;”, (1) 执行赋值语句A=8B11011010后,A实际获得赋值是多少?(1010) (2) 执行赋值语句A=8H3456后,A实际获得赋值是多少? (6、0110) (3) 执行赋值语句C=9和C=-9,C分别获得赋值是什么?什么类型? C=9 (0000_0000_0000_1001)无符整数、 C=-9 (1111_1111_1111_0111)有符整数 (4) 执行赋值语句B=38后,B获得赋值是什么? (0010_0110)什么类型?无符整数,第3章,Verilog行为语句,3-1 讨论alwa
17、ys和initial异同点。 答: Verilog支持两种过程语句,即always和initial语句。通常情况下initial语句不可综合,主要用于仿真程序中的初始化; always语句属于可综合语句,主要引导行为描述语句,使用频度非常高。在一个Verilog程序模块(module)中, always和initial语句被使用的次数没有限制,即它们本身属于并行执行特征的语句。 过程语句的基本格式如下: always(敏感信号及敏感信号列表或表达式) 包括块语句的各类行为语句 Verilog的过程语句除always外,还有initial过程语句。其基本格式如下: initial begin语句
18、1;语句2;end 与always结构不同,initial过程语句结构中没有敏感信号列表,即不带触发条件。initial过程中的块语句沿时间方向轴只执行一次。(always总是可以自动执行无限次) initial语句通常用于仿真模块中对激励矢量的描述,或用于给寄存器变量赋初值,而在实际电路中,赋初值是没有意义的。因此这是面向模拟仿真的过程语句,通常不能被综合工具所接受,或在综合时被忽略,但却可以对存储器加载初始化文件,这是可综合行为。,习 题,3-2 阻塞赋值和非阻塞赋值有何区别?在应用中应注意哪些问题? 答:Verilog中,用普通等号“=”作为阻塞式赋值语句的赋值符号,如y=b。 Veri
19、log中,用普通等号“=”作为非阻塞式赋值语句的赋值符号,如y=b。 阻塞式赋值的特点是,一旦执行完当前的赋值语句,赋值目标变量y即刻获得来自等号右侧表达式的计算值。如果在一个块语句中含有多条阻塞式赋值语句,则当执行到其中某条赋值语句时,其他语句将禁止执行,即如同被阻塞了一样。 非阻塞式赋值的特点是必须在块语句执行结束时才整体完成赋值操作。非阻塞的含义可以理解为在执行当前语句时,对于块中的其他语句的执行情况一律不加限制,不加阻塞。这也可以理解为,在begin_end块中的所有赋值语句都可以并行运行。,3-3 用Verilog设计一个3-8译码器,要求分别用case语句和if_else语句。比较
20、这两种方式。,3-3 用Verilog设计一个3-8译码器,要求分别用case语句和if_else语句。比较这两种方式。,module decoder3_8 ( G1 ,Y ,G2 ,A ,G3 ); input G1, G2, G3; wire G1, G2, G3; input 2:0 A ; wire 2:0 A ; output 7:0 Y ; reg 7:0 Y ; reg s; always ( A ,G1, G2, G3) begin s = G2 | G3 ; if (G1 = 0) Y = 8b1111_1111; else if (s) Y = 8b1111_1111; e
21、lse case ( A ) 3b000: Y = 8b11111110; 3b001: Y = 8b11111101; 3b010: Y = 8b11111011; 3b011: Y = 8b11110111; 3b100: Y = 8b11101111; 3b101: Y = 8b11011111; 3b110: Y = 8b10111111; 3b111: Y = 8b01111111; default:Y = 8bxxxxxxxx; endcase end endmodule,3-3 用Verilog设计一个3-8译码器,要求分别用case语句和if_else语句。比较这两种方式。,m
22、odule decoder3_8 ( G1 ,Y ,G2 ,A ,G3 ); input G1, G2, G3; wire G1, G2, G3; input 2:0 A ; wire 2:0 A ; output 7:0 Y ; reg 7:0 Y ; reg s; always ( A ,G1, G2, G3) begin s = G2 | G3 ; if (G1 = 0) Y = 8b1111_1111; else if (s) Y = 8b1111_1111; else begin if (A=3b000)Y=8b11111110; else if (A=3b001)Y=8b11111
23、101; else if (A=3b010)Y=8b11111011; else if (A=3b011)Y=8b11110111; else if (A=3b100)Y=8b11101111; else if (A=3b101)Y=8b11011111; else if (A=3b110)Y=8b10111111; else if (A=3b111)Y=8b01111111; else Y=8bxxxxxxxx;end end endmodule,/测试文件,?部分请根据被测试的文件修改 module stimulus; reg 2:0A ; wire7:0Y ; reg G1 ,G2 ,G
24、3; decoder3_8 DUT ( G1 ,Y ,G2 ,A ,G3 ); initial begin $monitor($time,A=%d,G1=%b,G2=%b, G3=%b,Y= %dn,A, G1, G2, G3, Y); end,initial begin G1=1 ;G2=1 ;G3=1;A=0; #10 G2=0;G1=0; #10 G2=0;G1=1; #10 G2=1;G1=0;G3=0; #10 G1=0;G1=1;G3=1; #10 G1=0;G1=0;G3=0; #10 G1=1;G2=0;G3=0; #50 A= 0; #50 A= 1; #50 A= 2; #
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- eda 课后 知识 题目 解析
限制150内