收藏 分销(赏)

EDA课后习题答案市公开课一等奖百校联赛获奖课件.pptx

上传人:w****g 文档编号:4153908 上传时间:2024-08-05 格式:PPTX 页数:47 大小:332.68KB
下载 相关 举报
EDA课后习题答案市公开课一等奖百校联赛获奖课件.pptx_第1页
第1页 / 共47页
EDA课后习题答案市公开课一等奖百校联赛获奖课件.pptx_第2页
第2页 / 共47页
EDA课后习题答案市公开课一等奖百校联赛获奖课件.pptx_第3页
第3页 / 共47页
EDA课后习题答案市公开课一等奖百校联赛获奖课件.pptx_第4页
第4页 / 共47页
EDA课后习题答案市公开课一等奖百校联赛获奖课件.pptx_第5页
第5页 / 共47页
点击查看更多>>
资源描述

1、第第1章章 EDA技术概述技术概述 第1页1-1 EDA技术与ASIC设计和FPGA开发有什么关系?FPGA在ASIC设计中有什么用途?答:EDA技术进行电子系统设计最终目标,是完成专用集成电路(ASIC)设计和实现,FPGA是实现这一路径主流器件,它们特点是直接面向用户、含它们特点是直接面向用户、含它们特点是直接面向用户、含它们特点是直接面向用户、含有极大灵活性和通用性、使用方便、硬件测试和实现快捷、开发效率高、成有极大灵活性和通用性、使用方便、硬件测试和实现快捷、开发效率高、成有极大灵活性和通用性、使用方便、硬件测试和实现快捷、开发效率高、成有极大灵活性和通用性、使用方便、硬件测试和实现快

2、捷、开发效率高、成本低、上市时间短、技术维护简单、工作可靠性好等本低、上市时间短、技术维护简单、工作可靠性好等本低、上市时间短、技术维护简单、工作可靠性好等本低、上市时间短、技术维护简单、工作可靠性好等。FPGA应用是EDA技术有机融合软硬件电子设计技术、ASIC设计,以及对自动设计与自动实现最经典诠释。1-2 与软件描述语言相比,Verilog有什么特点?答:Verilog语言特点:(1)按照设计目标,Verilog程序能够划分为面向仿真和面向综合两类,而可综合Verilog程序能分别面向FPGA和ASIC开发两个领域。(2)能在多个层次上对所设计系统加以描述,从开关级、门级、存放器传输级(

3、RTL)至行为级都能够加以描述。(3)灵活多样电路描述格调。第2页1-3 什么是综合?有哪些类型?综合在电子设计自动化中地位是什么?答:综合(Synthesis),就其字面含义应该是:把抽象实体结合成单个或统一实体。在电子设计领域,综合概念能够表述为:将用行为和功效层次表示电子系统转换为低层次、便于详细实现模块组合装配过程。(1)从自然语言转换到Verilog语言算法表述,即自然语言综合。(2)从算法表述转换到存放器传输级(Register Transport Level,RTL)表述,即从行为域到结构域综合,也称行为综合。(3)从RTL级表述转换到逻辑门(包含触发器)表述,即逻辑综合。(4)

4、从逻辑门表述转换到版图级表述(如ASIC设计),或转换到FPGA配置网表文件,可称为版图综合或结构综合。综合器就是能够将一个设计表述形式自动向另一个设计表述形式转换计算机程序,或帮助进行手工转换程序。它能够将高层次表述转化为低层次表述,能够将行为域转化为结构域,能够将高一级抽象电路描述(如算法级)转化为低一级电路描述(如门级),并能够用某种特定“技术”(如CMOS)实现。第3页1-4 IP在EDA技术应用和发展中意义是什么?答:IP就是知识产权核或知识产权模块意思,在EDA技术和开发中含有十分主要地位。美国著名Dataquest咨询企业将半导体产业IP定义为“用于ASIC或FPGA中预先设计好

5、电路功效模块”。IP分软IP、固IP和硬IP。软软IPIP是用是用HDLHDL等硬件描述语言描述功效块,不过并不包括等硬件描述语言描述功效块,不过并不包括用什么详细电路元件实现这些功效。用什么详细电路元件实现这些功效。固固IPIP是完成了综合功效块。它有较大设计深度,以网表文是完成了综合功效块。它有较大设计深度,以网表文件形式提交客户使用。件形式提交客户使用。硬硬IPIP提供设计最终阶段产品提供设计最终阶段产品掩模。伴随设计深度提升,掩模。伴随设计深度提升,后续工序所需要做事情就越少;当然,灵活性也就越小。不一样后续工序所需要做事情就越少;当然,灵活性也就越小。不一样客户能够依据自己需要订购不

6、一样客户能够依据自己需要订购不一样IPIP产品。产品。第4页1-5 叙述EDAFPGA/CPLD设计流程,以及包括EDA工具及其在整个流程中作用。答:完整地了解利用EDA技术进行设计开发流程对于正确地选择和使用EDA软件、优化设计项目、提升设计效率十分有益。一个完整、经典EDA设计流程既是自顶向下设计方法详细实施路径,也是EDA工具软件本身组成结构。基于EDAFPGA/CPLD开发流程 第5页1-6 OLMC有何功效?说明GAL是怎样实现可编程组合电路与时序电路。答:输出逻辑宏单元(Output Logic Macro Cell,OLMC),此结构使得PLD器件在组合逻辑和时序逻辑中可编程或可

7、重构性能都成为可能。GAL16V8型号器件,它包含了8个逻辑宏单元OLMC,每一个OLMC可实现时序电路可编程,而其左侧电路结构是与阵列可编程组合逻辑可编程结构。GALOLMC单元设有各种组态,可配置成专用组合输出、专用输入、单元设有各种组态,可配置成专用组合输出、专用输入、组合输出双向口、存放器输出、存放器输出双向口等,为逻辑电路设计提供组合输出双向口、存放器输出、存放器输出双向口等,为逻辑电路设计提供了极大灵活性。了极大灵活性。GAL输出逻辑宏单元输出逻辑宏单元OLMC中含有中含有4个多路选择器,经过不一样选择个多路选择器,经过不一样选择方式能够产生各种输出结构,分别属于方式能够产生各种输

8、出结构,分别属于3种模式,一旦确定了某种模式,全部种模式,一旦确定了某种模式,全部OLMC都将工作在同一个模式下。图都将工作在同一个模式下。图1-14即为其中一个输出模式对应结构。即为其中一个输出模式对应结构。图图1-14 存放器输出结构存放器输出结构 第6页1-7 什么是基于乘积项可编程逻辑结构?什么是基于查找表可编程逻辑结构?答:基于乘积项可编程结构,即由可编程“与”阵列和固定“或”阵列组成。可编程查找表(可编程查找表(Look Up Table,LUT)结构,)结构,LUT是可编程最小逻辑组是可编程最小逻辑组成单元。大部分成单元。大部分FPGA采取基于采取基于SRAM(静态随机存放器)查

9、找表逻辑形成结(静态随机存放器)查找表逻辑形成结构,构,即用即用即用即用SRAMSRAM来组成逻辑函数发生器来组成逻辑函数发生器来组成逻辑函数发生器来组成逻辑函数发生器。一个。一个N输入输入LUT能够实现能够实现N个输入变个输入变量任何逻辑功效,如量任何逻辑功效,如N输入输入“与与”、N输入输入“异或异或”等。等。1-8 就逻辑宏单元而言,GAL中OLMC、CPLD中LC、FPGA中LUT和LE含义和结构特点是什么?它们都有何异同点?答:输出逻辑宏单元(Output Logic Macro Cell,OLMC),此结构使得PLD器件在组合逻辑和时序逻辑中可编程或可重构性能都成为可能。MAX70

10、00S系列器件包含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、进位链逻辑、存放器链逻辑和一个可编程存放器组成。第7页1-9 为何说用逻辑门作为衡量逻辑资源大小最小单元不准确。答:专

11、业习惯是将OLMC及左侧可编程与阵列合称一个逻辑宏单元,即标志PLD器件逻辑资源最小单元,由此能够认为GAL16V8器件逻辑资源是8个逻辑宏单元,而当前最大FPGA逻辑资源达数十万个逻辑宏单元。也有将逻辑门数量作为衡量逻辑器件资源最小单元,如某CPLD资源约门等,但这类划分方法误差较大。1-10 标志FPGA/CPLD逻辑资源逻辑宏单元包含哪些结构?逻辑宏单元包含哪些结构?逻辑宏单元包含哪些结构?逻辑宏单元包含哪些结构?答:CPLD(MAX7000S)系列中 逻辑宏单元由3个功效块组成:逻辑阵列、乘积项选择矩阵和可编程存放器,它们能够被单独地配置为时序逻辑和组合逻辑工作方式。其中逻辑阵列实现组

12、合逻辑,能够给每个逻辑宏单元提供5个乘积项。“乘积项选择矩阵”分配这些乘积项作为到“或门”和“异或门”主要逻辑输入,以实现组合逻辑函数;或者把这些乘积项作为宏单元中存放器辅助输入:清零(Clear)、置位(Preset)、时钟(Clock)和时钟使能控制(Clock Enable)。FPGA(Cyclone III)器件可编程资源主要来自逻辑阵列块LAB,而每个LAB都由多个逻辑宏单元(Logic Element,LE)组成。LE是Cyclone III FPGA器件最基本可编程单元,LE主要由一个4输入查找表LUT、进位链逻辑、存放器链逻辑和一个可编程存放器组成。第8页1-11 解释编程与配

13、置这两个概念。答:基于电可擦除存放单元EEPROM或Flash技术。CPLD普通使用此技术进行编程(Progam)。CPLD被编程后改变了电可擦除存放单元中信息,掉电后可保持。AlteraFPGAAlteraFPGA器件有两类配置下载方式:主动配置方式和被动配置器件有两类配置下载方式:主动配置方式和被动配置方式。主动配置方式由方式。主动配置方式由FPGAFPGA器件引导配置操作过程,它控制着外部器件引导配置操作过程,它控制着外部存放器和初始化过程,而被动配置方式则由外部计算机或控制器控存放器和初始化过程,而被动配置方式则由外部计算机或控制器控制配置过程。制配置过程。对于SRAM型FPGA,在实

14、用中必须利用专用配置器件来存放编程信息,方便在上电后,该器件能对FPGA自动编程配置。EPC器件中EPC2型号器件是采取Flash存放工艺制作含有可屡次编程特征配置器件。第9页第第2章章 Verilog程序结构与数据类型程序结构与数据类型 第10页习习 题题 2-1 wire2-1 wire型变量与型变量与型变量与型变量与regreg型变量什么本质区分,它们可用于什么类型语句中?型变量什么本质区分,它们可用于什么类型语句中?型变量什么本质区分,它们可用于什么类型语句中?型变量什么本质区分,它们可用于什么类型语句中?答:书上答:书上P3335第第2章章 Verilog程序结构与数据类型程序结构与

15、数据类型 线网线网(wire)表示硬件单元之间连接。就像在真实电路中一样,线网由其连接表示硬件单元之间连接。就像在真实电路中一样,线网由其连接器件输出端连续驱动。线网不能储存值,而且它必须受到驱动器器件输出端连续驱动。线网不能储存值,而且它必须受到驱动器(比如门或连续比如门或连续赋值语句,赋值语句,assign)驱动。假如没有驱动源,则线网值为驱动。假如没有驱动源,则线网值为z。reg存放器用来表示存放元件,它保持原有数值,经过赋值语句能够改变存存放器用来表示存放元件,它保持原有数值,经过赋值语句能够改变存放器储存值,其作用与改变触发器储存值相当。放器储存值,其作用与改变触发器储存值相当。re

16、g类型数据默认初始值为不定类型数据默认初始值为不定值值x。定义为定义为Net型变量常被综合为硬件电路中物理连接,其特点是输出值紧跟输型变量常被综合为硬件电路中物理连接,其特点是输出值紧跟输入值改变而改变,所以常被用来表示以入值改变而改变,所以常被用来表示以assign关键词引导组合电路描述。关键词引导组合电路描述。Register类型变量必须放在过程语句中,如类型变量必须放在过程语句中,如initial、always引导语句中,引导语句中,经过过程赋值语句经过过程赋值语句(包含阻塞与非阻塞语句包含阻塞与非阻塞语句)完成赋值操作,换言之,在完成赋值操作,换言之,在always和和initial等

17、过程结构内被赋值变量必须定义成等过程结构内被赋值变量必须定义成Variable类型。类型。第11页2-3 2-3 以下标符是否正当?以下标符是否正当?XORXOR、oror、74LS0474LS04、4Badder4Badder、ASCASC、$SMD$SMD、A5A5加法器、加法器、BEGINBEGIN答:正确答:正确XORXOR、BEGIN BEGIN、ASC(ASC(还有一类标识符,即转义标识符还有一类标识符,即转义标识符(Escaped(Escaped Identifiers)Identifiers)。转义标识符以斜杠。转义标识符以斜杠“”“”开头,以空白符结尾,能够包含任何字开头,以

18、空白符结尾,能够包含任何字符。比如,符。比如,80318031、-Gt-Gt。)不正确不正确74LS0474LS04、4Badder(4Badder(起始为数字起始为数字起始为数字起始为数字),A5 A5加法器,加法器,or(or(关键词关键词),$SMD($SMD(任何任何任何任何标识符必须以英文字母或下划线开头标识符必须以英文字母或下划线开头标识符必须以英文字母或下划线开头标识符必须以英文字母或下划线开头。)2-2 2-2 以下数字表述方式是否正确?以下数字表述方式是否正确?4b-11014b-1101、6sb010_11016sb010_1101、5d825d82、bx01bx01、6b

19、10 x1016b10 x101、10d710d7、HzDHzD、-3b1013b101答:正确答:正确bx01bx01、6b10 x1016b10 x101、10d710d7、HzDHzD、-3b101-3b101不正确不正确4b4b-11011101、6sb6sb0 0 0 010_110110_1101、5d82(5d82(1010010101001010100101010010)注意注意注意注意:关键字关键字关键字关键字都是小写。如都是小写。如都是小写。如都是小写。如regregregreg是关键字,但是关键字,但是关键字,但是关键字,但REGREGREGREG不属于关键字,所以可用作

20、普通不属于关键字,所以可用作普通不属于关键字,所以可用作普通不属于关键字,所以可用作普通标识符。标识符。标识符。标识符。第12页2-4 定义以下变量和常数。定义以下变量和常数。(1)定义一个名字为定义一个名字为Q18位位reg总线。总线。(reg7:0 Q1;)(reg7:0 Q1;)(2)定义一个名字为定义一个名字为asg整数。整数。(integen asg;)integen asg;)integen asg;)integen asg;)(3)定义参数定义参数s1=3b010,s2=3b110,s3=3b011。parameter s1=3b010parameter s1=3b010para

21、meter s1=3b010parameter s1=3b010,s2=3b110s2=3b110s2=3b110s2=3b110,s3=3b011;s3=3b011;s3=3b011;s3=3b011;(4)定义一个容量定义一个容量(深度深度)为为128,字长为,字长为32位存放器,存放器名是位存放器,存放器名是MEM32。(reg31:0 mem 127:0 MEM32;)(reg31:0 mem 127:0 MEM32;)(5)定义一个名字为定义一个名字为WBUS16位位wire总线。总线。(wire15:0 WBUS)(wire15:0 WBUS)2-5 2-5 设设“reg3:0A;

22、reg7:0B;reg15:0C;”,“reg3:0A;reg7:0B;reg15:0C;”,(1)(1)执行赋值语句执行赋值语句A=8B11011010A=8B11011010后,后,A A实际取得赋值是多少?实际取得赋值是多少?(1010)(1010)(1010)(1010)(2)(2)执行赋值语句执行赋值语句A=8H3456A=8H3456后,后,A A实际取得赋值是多少?实际取得赋值是多少?(6(6(6(6、0110)0110)0110)0110)(3)(3)执行赋值语句执行赋值语句C=9C=9和和C=-9C=-9,C C分别取得赋值是什么?什么类型?分别取得赋值是什么?什么类型?C=

23、9C=9(0000_0000_0000_1001)(0000_0000_0000_1001)(0000_0000_0000_1001)(0000_0000_0000_1001)无符整数、无符整数、无符整数、无符整数、C=-9C=-9(1111_1111_1111_0111)(1111_1111_1111_0111)(1111_1111_1111_0111)(1111_1111_1111_0111)有符有符有符有符整数整数整数整数(4)(4)执行赋值语句执行赋值语句B=38B=38后,后,B B取得赋值是什么?取得赋值是什么?(0010_0110)(0010_0110)(0010_0110)(0

24、010_0110)什么类型?什么类型?无符无符无符无符整数整数整数整数第13页第第3章章 Verilog行为语句行为语句 第14页3-1 3-1 讨论讨论alwaysalways和和initialinitial异同点。异同点。答:答:Verilog支持两种过程语句,即支持两种过程语句,即always和和initial语句。语句。通常情况下initial语句语句不可综合,主要用于仿真程序中初始化;always语句属于语句属于可综合语句,主要引导行为描述语句,使用频度非常高。在一个语句,主要引导行为描述语句,使用频度非常高。在一个Verilog程序模程序模块块(module)中,中,always和

25、和initial语句被使用次数没有限制,即它们本身属语句被使用次数没有限制,即它们本身属于并行执行特征语句。于并行执行特征语句。过程语句基本格式以下:过程语句基本格式以下:always(敏感信号及敏感信号列表或表示式敏感信号及敏感信号列表或表示式)包含块语句各类行为语句包含块语句各类行为语句 Verilog Verilog过程语句除过程语句除alwaysalways外,还有外,还有initialinitial过程语句。其基本格式以过程语句。其基本格式以下:下:initial initial begin begin语句语句1 1;语句;语句2 2;endend 与与alwaysalways结构不

26、一样,结构不一样,initialinitial过程语句结构中没有敏感信号列表,即过程语句结构中没有敏感信号列表,即不带触发条件。不带触发条件。initialinitial过程中块语句沿时间方向轴只执行一次。过程中块语句沿时间方向轴只执行一次。(always(always总是能够自动执行无限次总是能够自动执行无限次)initial语句通惯用于仿真模块中对激励矢量描述,或用于给存放器变量赋初值,而在实际电路中,赋初值是没有意义。所以这是面向模拟仿真过程语句,通常不能被综合工具所接收,或在综合时被忽略,但却能够对存放器加载初始化文件,这是可综合行为。第15页习习 题题 3-2 3-2 阻塞赋值和非阻

27、塞赋值有何区分?阻塞赋值和非阻塞赋值有何区分?在应用中应注意哪些问题?在应用中应注意哪些问题?答:答:VerilogVerilog中,用普通等号中,用普通等号“=”“=”作为阻塞式赋值语句赋值符号,如作为阻塞式赋值语句赋值符号,如y=by=b。Verilog Verilog中,用普通等号中,用普通等号“=”“=”作为非阻塞式赋值语句赋值符号,如作为非阻塞式赋值语句赋值符号,如y=by=b。阻塞式赋值特点是,一旦执行完当前赋值语句,赋值目标变量阻塞式赋值特点是,一旦执行完当前赋值语句,赋值目标变量y y即刻取得即刻取得来自等号右侧表示式计算值。假如在一个块语句中含有多条阻塞式赋值语句,来自等号右

28、侧表示式计算值。假如在一个块语句中含有多条阻塞式赋值语句,则当执行到其中某条赋值语句时,其它语句将禁止执行,即如同被阻塞了一样。则当执行到其中某条赋值语句时,其它语句将禁止执行,即如同被阻塞了一样。非阻塞式赋值特点是必须在块语句执行结束时才整体完成赋值操作。非阻非阻塞式赋值特点是必须在块语句执行结束时才整体完成赋值操作。非阻塞含义能够了解为在执行当前语句时,对于块中其它语句执行情况一律不加限塞含义能够了解为在执行当前语句时,对于块中其它语句执行情况一律不加限制,不加阻塞。这也能够了解为,在制,不加阻塞。这也能够了解为,在begin_endbegin_end块中全部赋值语句都能够并行运块中全部赋

29、值语句都能够并行运行。行。第16页3-3 用用Verilog设计一个设计一个3-8译码器,要求分别用译码器,要求分别用case语句和语句和if_else语句。比语句。比较这两种方式。较这两种方式。第17页 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;alw

30、ays (A,G1,G2,G3)begin s=G2|G3;if(G1=0)Y=8b1111_1111;else if(s)Y=8b1111_1111;else 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 第18页 3-3 用用Verilo

31、g设计一个设计一个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;else begin if(A=3b000)Y=8b11111110;else

32、 if(A=3b001)Y=8b11111101;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 endendmodule第19页/测试文件,测试文件,?部分请依据被测试文件修改部分请依据被测试文件修改module stimulus;reg 2:0A;wi

33、re7:0Y;reg G1,G2,G3;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);endinitial 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;#50 A=3;#50 A=4;

34、#50 A=5;#50 A=6;#50 A=7;#50$finish;endendmodule第20页习习 题题 3-4图图3-26所表示是双所表示是双2选选1多路选择器组成电路多路选择器组成电路MUXK。对于其中。对于其中MUX21A,当,当s=0和和s=1时,分别有时,分别有y=a和和y=b。试在一个模块结构中用两个过程来表示此电路。试在一个模块结构中用两个过程来表示此电路。答:参考试验答:参考试验1图图3-26 含含2选选1多路选择器模块多路选择器模块module MUXK(a1,a2,a3,s0,s1,outy);input a1,a2,a3,s0,s1;output outy;wir

35、e outy;wire tmp;mux21a u1(.a(a2),.b(a3),.s(s0),.y(tmp);mux21a u2(.a(a1),.b(tmp),.s(s1),.y(outy);endmodule第21页习习 题题3-5 给出一个给出一个4选选1多路选择器多路选择器Verilog描述。选通控制端有描述。选通控制端有4个输入:个输入:S0、S1、S2、S3。当且仅当当且仅当S0=0时:时:Y=A;S1=0时:时:Y=B;S2=0时:时:Y=C;S3=0时:时:Y=D。module MUX41a(A,B,C,D,S0,S1,S2,S3,Y);output Y;/定义定义Y为输出信号为

36、输出信号 input A,B,C,D;input S0,S1,S2,S3;reg Y;/定义输出端口信号定义输出端口信号Y为存放器型变量为存放器型变量 always(A,B,C,S0,S1,S2,S3)begin /块语句起始块语句起始 if(S0=0)Y=A;/当当S0=0成立,即成立,即(S0=0)=1时,时,Y=A;else if(S1=0)Y=B;/当当(S1=1)为真,则为真,则Y=B;else if(S2=0)Y=C;/当当(S2=2)为真,则为真,则Y=C;else if(S3=0)Y=D;/当当(S3=3)为真,即为真,即Y=D;end /块语句结束块语句结束endmodule

37、第22页3-6 3-6 3-6 3-6 利用利用利用利用ifififif语句设计一个全加器。语句设计一个全加器。语句设计一个全加器。语句设计一个全加器。sum=0;cout=1;end else if(ain=0&bin=0&cin=1)begin sum=1;cout=0;end else if(ain=1&bin=0&cin=1)begin sum=0;cout=1;end else if(ain=0&bin=1&cin=1)begin sum=0;cout=1;end else begin sum=1;cout=1;end end endmodule timescale 1 ns/1 p

38、s module f_adder(ain,bin,cin,cout,sum);input ain,bin,cin;wire ain,bin,cin;output cout,sum;reg cout,sum;always (ain or bin or cin)begin if(ain=0&bin=0&cin=0)begin sum=0;cout=0;end else if(ain=1&bin=0&cin=0)begin sum=1;cout=0;end else if(ain=0&bin=1&cin=0)begin sum=1;cout=0;end else if(ain=1&bin=1&cin

39、=0)begin 第23页真值表为ainbincinsumcout00000001100101001101100101010111001111113-6 3-6 3-6 3-6 利用利用利用利用ifififif语句设计一个全加器。语句设计一个全加器。语句设计一个全加器。语句设计一个全加器。timescale 1 ns/1 ps module f_adder(ain,bin,cin,cout,sum);input ain,bin,cin;wire ain,bin,cin;output cout,sum;reg cout,sum;always (ain or bin or cin)begin if

40、(ain=0&bin=0&cin=0)begin sum=0;cout=0;end else if(ain&(bincin)|(ain&bin&cin)begin sum=1;cout=0;end else if(ain&(bincin)|(ain&bin&cin)begin sum=0;cout=1;end else begin sum=1;cout=1;end end endmodule 第24页习习 题题3-7 3-7 设计一个求补码程序,输入数据是一个有符号设计一个求补码程序,输入数据是一个有符号8 8位二进制数。位二进制数。/设计一个求补码程序,输入数据是一个有符号设计一个求补码程序

41、,输入数据是一个有符号8 8位二进制数位二进制数module Binary_complement(a,b);/module Binary_complement(a,b);/二进制数补码二进制数补码input 7:0 a;input 7:0 a;output 7:0 b;output 7:0 b;integer i;integer i;reg 7:0d;reg 7:0d;reg 6:0c;reg 6:0c;always(a)always(a)beginbegin if(a7=1)if(a7=1)begin begin for(i=0;i7;i=i+1)ci=!ai;for(i=0;i=0;i=i

42、-for(i=length-2;i=0;i=i-for(i=length-2;i=0;i=i-for(i=length-2;i=0;i=i-1)1)1)1)Bini=Bini+1Gryi;Bini=Bini+1Gryi;Bini=Bini+1Gryi;Bini=Bini+1Gryi;end end end endendmoduleendmoduleendmoduleendmoduletimescale 1ns/1ns include gry2bin.v module stimulus;reg2:0 Gry;wire2:0Bin;gry2bin mycount(Gry,Bin);initialb

43、egin Gry=3b000;#10 Gry=3b001;#10 Gry=3b011;#10 Gry=3b010;#10 Gry=3b110;#10 Gry=3b111;#10 Gry=3b101;#10 Gry=3b100;#10$finish;end initial$monitor($time,Gry=%b,Bin=%bn,Gry,Bin);endmodule 第28页习习 题题 3-9 用不一样循环语句分别设计一个逻辑电路模块,用以统计一用不一样循环语句分别设计一个逻辑电路模块,用以统计一8位二进制数中含位二进制数中含1数数量。量。module Statistics8(sum,A);ou

44、tput3:0sum;input7:0 A;reg3:0 sum;integer i;always(A)begin sum=0;for(i=0;i1;end endendmodulerepeatrepeatrepeatrepeat循环语句循环语句循环语句循环语句forfor循环语句循环语句第29页module Statistics8(sum,A);parameter S=8;output3:0sum;input7:0 A;regS:1 AT;reg3:0 sum;regS:0 CT;always(A)begin AT=S1b0,A;sum=0;CT=S;while(CT0)begin if(A

45、T1)sum=sum+1;else sum=sum;begin CT=CT-1;AT=AT1;end end end endmodule 3-9 3-9 用不一样循环语句分别设计一个逻辑电路模块,用以统计一用不一样循环语句分别设计一个逻辑电路模块,用以统计一8 8位二进制位二进制数中含数中含1 1数量。数量。whilewhilewhilewhile循环语句循环语句循环语句循环语句第30页module module voter7(pass,vote);output output pass;inputinput6:0 vote;regreg2:0 sum;integer integer i;reg

46、 reg pass;always always(vote)begin begin sum=0;for for(i=0;ib)?a:b;assign sum2=(cd)?c:d;assign Mostlarge=(sum1sum2)?sum1:sum2;endmodule第32页3-12 3-12 利用利用casecase语句设计一个加、减、乘、除语句设计一个加、减、乘、除4 4功效算术逻辑单元功效算术逻辑单元ALUALU,输入两,输入两个操用数都是个操用数都是4 4位进制数;输入操作码是两位二进制数;输出结果是位进制数;输入操作码是两位二进制数;输出结果是8 8位二进位二进制数。为了便于记忆和

47、调试,提议把操作码用制数。为了便于记忆和调试,提议把操作码用parameterparameter定义为参数。定义为参数。module MUX_ ALU(A,B,S,Y);output 7:0 Y;/定义定义Y为输出信号为输出信号 input 3:0 A,B;input 1:0 S;parameter add=2b00,reduce=2b01,multiply=2b10,Trad=2b11;reg 7:0Y;/定义输出端口信号定义输出端口信号Y为存放器型变量为存放器型变量 always(A,B,S)begin case(S)2b00:Y=A+B;2b01:Y=A-B;2b10:Y=A*B;2b1

48、1:Y=A/B;default:Y=8bxxxxxxxx;endcase end endmodule 第33页module stimulus;reg 3:0A,B;reg 1:0S;wire7:0 Y;MUX_ALU r1(A,B,S,Y);initialbeginA=4b0100;B=4b0010;S=2b00;#10 S=2b01;#10 S=2b10;#10 S=2b11;#10$finish;/?end/?initial$monitor($time,S=%b,A=%b,B=%b,Y=%d,S,A,B,Y);endmodule3-12 3-12 利用利用casecase语句设计一个加、减

49、、乘、除语句设计一个加、减、乘、除4 4功效算术逻辑单元功效算术逻辑单元ALUALU,输入两,输入两个操用数都是个操用数都是4 4位进制数;输入操作码是两位二进制数;输出结果是位进制数;输入操作码是两位二进制数;输出结果是8 8位二进位二进制数。为了便于记忆和调试,提议把操作码用制数。为了便于记忆和调试,提议把操作码用parameterparameter定义为参数。定义为参数。第34页习习 题题 3-13 3-13 在在VerilogVerilog设计中,给时序电路清零(复位)有两种不一样方法,它设计中,给时序电路清零(复位)有两种不一样方法,它们是什么,怎样实现?们是什么,怎样实现?答:同时

50、清零、异步清零,在过程语句敏感信号表中逻辑表述答:同时清零、异步清零,在过程语句敏感信号表中逻辑表述posedge CLKposedge CLK用于用于指明正向跳变,或指明正向跳变,或negedgenegedge用于指明负向跳变实现用于指明负向跳变实现 3-14 3-14 哪一个复位方法必须将复位信号放在敏感信号表中?给出这两种电路哪一个复位方法必须将复位信号放在敏感信号表中?给出这两种电路VerilogVerilog描述。描述。答:异步复位必须将复位信号放在敏感信号表中。答:异步复位必须将复位信号放在敏感信号表中。同时清零:同时清零:同时清零:同时清零:always(posedge CLK)

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服