verilog数字系统设计教程习题答案

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

verilog数字系统设计教程习题答案

第二章

1.Verilog HDL 既是一种行为描述语言,也是一种结构描述语言。如果按照一定的规则和风格编写代码,就可以将功能行为模块通过工具自动转化为门级互联的结构模块。这意味着利用Verilog语言所提供的功能,就可以构造一个模块间的清晰结构来描述复杂的大型设计,并对所需的逻辑电路进行严格的设计。

2.模块的基本结构由关键词module和endmodule构成。

3.一个复杂电路系统的完整Verilog HDL模型是由若干个Verilog HDL模块构成的,每一个模块又可以由若干个子模块构成。其中有些模块需要综合成具体电路,而有些模块只是与用户所设计的模块交互的现存电路或激励信号源。利用

Verilog HDL语言结构所提供的这种功能就可以构造一个模块间的清晰层次结构来描述极其复杂的大型设计,并对所作设计的逻辑电路进行严格的验证。

4.Verilog HDL和VHDL作为描述硬件电路设计的语言,其共同的特点在于:能

形式化地抽象表示电路的结构和行为、支持逻辑设计中层次与领域的描述、可借用高级语言的精巧结构来简化电路的描述、具有电路仿真与验证机制以保证设计的正确性、支持电路描述由高层到低层的综合转换、硬件描述与实现工艺无关(有关工艺参数可通过语言提供的属性包括进去)、便于文档管理、易于理解和设计重用。

5.不是

6.将用行为和功能层次表达的电子系统转换为低层次的便于具体实现的模块组

合装配的过程。

7.综合工具可以把HDL变成门级网表。这方面Synopsys工具占有较大的优势,它的Design Compile是作为一个综合的工业标准,它还有另外一个产品叫Behavior Compiler,可以提供更高级的综合。

另外最近美国又出了一个软件叫Ambit,据说比Synopsys的软件更有效,可以

综合50万门的电路,速度更快。今年初Ambit被Cadence公司收购,为此Cadence 放弃了它原来的综合软件Synergy。随着FPGA设计的规模越来越大,各EDA公

司又开发了用于FPGA设计的综合软件,比较有名的有:Synopsys的FPGA Express,Cadence的Synplity, Mentor的Leonardo,这三家的FPGA综合软件占了市场的绝大部分。

8.整个综合过程就是将设计者在EDA平台上编辑输入的HDL文本、原理图或状态图形描述,依据给定的硬件结构组件和约束控制条件

进行编译、优化、转换和综合,最终获得门级电路甚至更底层的电路描述网表文件。用于适配,适配将由综合器产生的网表文件配置于指定的目标器件中,使之产生最终的下载文件,如JEDEC、Jam格式的文件。

9.在FPGA 设计中,仿真一般分为功能仿真(前仿真)和时序仿真(后仿真)。功能仿真又叫逻辑仿真,是指在不考虑器件延时和布线延时的理想情况下对源代码进行逻辑功能的验证;而时序仿真是在布局布线后进行,它与特定的器件有关,又包含了器件和布线的延时信息,主要验证程序在目标器件中的时序关系。在有些开发环境中,如Xilinx ISE 中,除了上述的两种基本仿真外,还包括综合后仿真,转换(post-translate)仿真,映射后(post-map)仿真等,这样做完每一步都可进行仿真验证,从而保证设计的正确性。

10.仿真的三个阶段:

(1)行为仿真:目的是验证系统的数学模型和行为是否正确,对系统的描述的抽象程度较高。在行为仿真时,VHDL的语法语句都可以执行。

(2)RTL仿真:目的是使被仿真模块符合逻辑综合工具的要求,使其能生成门级逻辑电路。在RTL仿真时,不能使用VHDL中一些不可综合和难以综合的语句和数据类型。该级仿真不考虑惯性延时,但要仿真传输延时。

(3)门级仿真:门级电路的仿真主要是验证系统的工作速度,惯性延时仅仅是仿真的时候有用在综合的时候将被忽略。

11.I/O声明

模块的端口声明了模块的输入输出端口,其格式如下:

Module 模块名(端口1,端口2,端口3,端口4, …);

I/O说明的格式如下:

输入口:input 端口名1,端口名2,…,端口名i; //(共有i个输入口)

输出口:output 端口名1,端口名2,…,端口名j; //(共有j个输出口)I/O说明也可以写在端口声明语句里,其格式如下:

module module_name(input port1,input port2,…,output port1,output port2… )

12.一个模块能够在另外一个模块中被引用,这样就建立了描述的层次。模块实例化语句形式如

下:

module_name instance_name(port_associations) ;

信号端口可以通过位置或名称关联;但是关联方式不能够混合使用。端口关联形式如下:

port_expr / / 通过位置。

.PortName (port_expr) / / 通过名称。

例[1]:

....

module and (C,A,B);

input A,B;

output C;

...

and A1 (T3, A, B ); //实例化时采用位置关联,T3对应输出端口C,A对应A,B对应B。

and A2( //实例化时采用名字关联,.C是and 器件的端口,其与信号T3相连

.C(T3),

.A(A),

.B(B)

);

13.如always #50 clock=~clock;//产生一个不断重复的周期为100个的时钟信号clock。

14.always产生的

15.initial和always的区别是always 语句不断地重复执行,initial语句则只执行一次。如果想在initial多次执行一条语句。可在initial里嵌套其他语句

16. 任何数字逻辑电路都可以只由3类基本门组成:AND、OR和NOT。事实上,任何数字逻辑电路都可以由NAND门(或NOR门)构成,每个NAND或NOR门包含4个晶体管。这些基础门由多种技术的SSI芯片提供,最主流的技术就是晶体管—晶体管逻辑(TTL)。从20世纪60年代到70年代,这些TTL芯片是数字设计的核心。而多种MSI TTL芯片又可以用于实现不同类型的数字逻辑函数,如译码器、加法器、复用器、比较器及其他逻辑函数。参考3题

相关文档
最新文档