




已阅读5页,还剩38页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1互连开关(互连开关(IS)由以下元件组成:一个共享存储器()由以下元件组成:一个共享存储器(MEM) ,一个系统控制器(,一个系统控制器(SC)和一个)和一个 数据交换开关(数据交换开关(Xbar) 。 a使用关键字module和endmodule定义模块 MEM,SC 和 Xbar。不需要定义模块的内容, 并且假设模块没有端口列表。 b使用关键字module和endmodule定义模块 IS。在 IS 中调用(实例引用)MEM,SC 和 Xbar 模块,并把它们分别命名为 mem1,sc1 和 xbar1。不需要定义模块的内容,并且假设 模块没有端口列表。 c使用关键字module和endmodule定义激励块(Top) 。在 Top 模块中调用 IS 模块,将其 命名(或称实例化、具体化)为 is1。 答:答:module MEM; endmodule module SC; endmodule module Xbar; endmodule module IS; MEM mem1; SC sc1; Xbar xbar1; endmodule module TOP; IS is1; endmodule 2一个四位脉动进位加法器由一个四位脉动进位加法器由 4 个一位全加器组成。个一位全加器组成。 a定义模块 FA。不需要定义模块内容和端口列表。 b定义模块 Ripple_Add,不需要定义模块内容和端口列表。在模块中调用 4 个 FA 类型的全 加器,把它们分别命名为 fa0,fa1,fa2 和 fa3。 答:答:module FA; endmodule module Ripple_Add; FAfa0; FAfa1; FAfa2; 第 5 章 门 级 建 模41 FAfa3; Endmodule 1试写出以下数字试写出以下数字: a将十进制数 123 用 8 位二进制数表示出来,使用“_”增加可读性; b未知的 16 位十六进制数,各位均为 x; c将十进制数2 使用 4 位二进制数表示出来,并写出结果的 2 的补码形式; d一个无位宽说明的十六进制数 1234。 答答:a.8b0111_1011 b.16hx c.-4b0010,补码 4b1110 d.h1234 2下面的各个字符串是否合法?如果非法,请写出正确答案。下面的各个字符串是否合法?如果非法,请写出正确答案。 a“This is a string displaying the % sign” b“out =in1 +in2 ” c“Please ring a bell 007” d“This is a backslash charactern” 答答: a是错误的,应改为“This is a string displaying the % %sign”,编译后输出: # This is a string displaying the % sign (注意,输出结果前#符号是仿真器输出每行前自带的标志符,在本习题解答中不予去除,下同) b# out =in1 +in2 c# Please ring a bell d# This is a backslash character # 应改为双斜线,如“This is a backslash charactern” (主要考察的是特殊字符的输出, 比如 a 中的输出%需要%操作。 C 中的007 在编译器中输出为 空,复制到 word 中输出是一个 ,有兴趣的同学可以自己试验一下,比如006 输出是 ,004 输出是 ,等等。d 中的character 在 转义操作符后跟的单词无语法意义,故在输出 character,而n 表示换行,仿真后的输出也是如此 显示的。 ) 3下面的各个标识符是否合法?下面的各个标识符是否合法? asystem1 b1reg c$latch dexec$ Verilog HDL 数字设计与综合(第二版)42 答答:a 是合法的;b、c 不能以 1 和$开头;d 是合法的。 4声明下面的声明下面的 Verilog 变量:变量: a一个名为 a_in 的 8 位向量线网; b一个名为 address 的 32 位寄存器,第 31 位为最高有效位;将此寄存器的值设置为十进制 数 3; c一个名为 count 的整数; d一个名为 snap_shot 的时间变量; e一个名为 delays 的数组,该数组中包含 20 个 integer 类型的元素; f含有 256 个字的存储器 MEM,每个字的字长为 64 位; g一个值为 512 的参数 cache_size。 答:答:定义如下: a. wire 7:0 a_in; b. reg 31:0 address=d3; c. integer count; d. time snap_shot; e. integer delays0:19; f. reg 63:0 MEM 0:255; g. parameter cache_size=512; 5下面各条语句的输出结果是什么?下面各条语句的输出结果是什么? alatch = 4d12 ; $display (“The current value of latch = %bn”, latch) ; bin_reg = 3d2 ; $monitor ($time, “In register value = %bn”, in_reg2:0) ; cdefine MEM_SIZE 1024 $display (“The maximum memory size is %h”, MEM_SIZE) ; 答:答:仿真输出结果如下: a# The current value of latch = 1100 # b#0In register value = 010 # c# The maximum memory size is 00000400 注意: 1.本题中的变量默认为长度正好相符,比如 latch=4d12 就相当于 reg 3:0 latch。 2. b 中的$time 代表时间, 根据给 in_reg 这个寄存器赋值时间而变化, 比如在第 5 秒对 in_reg 进行 赋值,就会显示:#5In register value = 010 第 5 章 门 级 建 模43 答:答:模块代码如下 module stimulus(); reg CLOCK; reg 3:0 REG_IN; wire 3:0 REG_OUT; /*connect by name* shift_reg sr1(.clock(CLOCK),.reg_in(REG_IN),.reg_out(REG_OUT); endmodule 6写出写出 REG_IN,CLK 和和 REG_OUT 的层次名。的层次名。 答:答:分别是:stimulus.REG_IN stimulus.CLK stimulus.REG_OUT 7写出模块实例写出模块实例 sr1 及其端口及其端口 clock 和和 reg_in 的层次名。的层次名。 答:答:分别是:stimulus.sr1 stimulus.sr1.clock stimulus.sr1.reg_in stimulus.sr1.reg_out 1 1利用利用双输入端的双输入端的 nand 门门,用用 Verilog 编写编写自己自己的双输入端的与门的双输入端的与门、或门和非门或门和非门,把它们分别把它们分别 命名为命名为 my_or,my_and 和和 my_not,并通过激励模块验证这些门的功能。,并通过激励模块验证这些门的功能。 答:答:timescale 1ns/1ns /* * my_and * */ module my_and(in1,in2,out); input in1,in2; output out; wire out1; nand a1(out,out1,out1); 第 5 章 门 级 建 模41 nand a2(out1,in1,in2); endmodule /* * my_or * */ module my_or(in1,in2,out); input in1,in2; output out; wire out1,out2; nand o1(out,out1,out2); nand o2(out1,in1,in1); nand o3(out2,in2,in2); endmodule /* * my_not * */ module my_not(in,out); input in; output out; nand n1(out,in,in); endmodule /* * test * */ module test; reg a,b; wire and_c,or_c,not_c; initial begin a 1 3 b 111out = a b(大小幅值比较) 答:代码如下 module my_ALU(a,b,select,out); input 3:0 a,b; input 2:0 select; output 4:0 out; reg 4:0 out; always (*) case(select) 3b000: out=a; 3b001: out=a+b; 3b010: out=a-b; 3b011: out=a/b; 3b100: out=a%b; 3b101: out=a1; 3b111: out=ab; default: out=5b00000; Verilog HDL 数字设计与综合(第二版)54 endcase endmodule 输出波形 13使用 while 循环设计一个时钟信号发生器。时钟信号的初值为 0,周期为 10 个时间单位。 答:代码如下 module s13; reg clock; initial begin clock0;i=i-1) begin factorial=i*factorial; end end endfunction reg 31:0 data_out; reg 3:0 data_in; initial begin data_in=4d3; #100 data_out=factorial(data_in); #100 data_out=factorial(4d10); #100 $stop; end 2定义一个输出为 8 位的函数,功能是将两个 4 位数相乘。设计激励模块对这个函数进行调用, 并且检查功能的正确性。 答:代码、测试激励和仿真输出如下 function 7:0 mul; input 3:0 data1,data2; begin mul=data1; mul=mul*data2; Verilog HDL 数字设计与综合(第二版)58 end endfunction reg 3:0data1,data2; reg 31:0 data_out; initial begin data1=4d10; data2=4d12; #10 data_out=mul(data1,data2); #100 data_out=mul(4d9,4d13); #100 $stop; end 3设计一个实现 8 位 ALU 功能的函数,其输入为两个 4 位操作数变量 a 和 b,以及一个 3 位的 选择信号 select,输出为 5 位变量 out,具体关系见下表。不考虑计算结果的上溢和下溢。 select 信号函数的输出 3 b000a 3 b001a + b 3 b010a b 3 b011a / b 3 b100a % 1(余数) 3 b101a 1 3 b111(a b)(大小幅值比较) 答:代码、测试激励和仿真输出如下 function 4:0 my_ALU; input 3:0 a,b; input 2:0 select; begin case(select) 3b000: my_ALU=a; 3b001: my_ALU=a+b; 第 5 章 门 级 建 模59 3b010: my_ALU=a-b; 3b011: my_ALU=a/b; 3b100: my_ALU=a%1; 3b101: my_ALU=a1; 3b111: my_ALU=(ab); default: my_ALU=0; endcase end endfunction reg 3:0 a,b; reg 2:0 select; reg 4:0 data_out; initial begin a0;i=i-1) begin b=i*b; end #10c=b; end endtask reg 31:0 data_out; reg clock; always (posedge clock) begin factorial(clock,4d3,data_out); #100 factorial(clock,4d10,data_out); #100 $stop; End 第 5 章 门 级 建 模61 initial clock=0; always #5clock=clock; 5定义一个任务,该任务能计算出一个 16 位变量的偶校验位(1 位)作为该任务的输出。在计 算结束后, 经过三个时钟上升沿将该校验位 (结果) 赋给任务输出。 提示: 在任务中使用 repeat 循环。 答:奇偶校验是对数据传输正确性的一种校验方法。在数据传输前附加一位奇校验位,用来表示 传输的数据中“1“的个数是奇数还是偶数,为奇数时,校验位置为“0“,否则置为“1“,用以保持数 据的奇偶性不变。例如,需要传输“11001110“,数据中含 5 个“1“,所以其奇校验位为“0“,同时把 “110011100“传输给接收方,接收方收到数据后再一次计算奇偶性,“110011100“中仍然含有 5 个 “1“,所以接收方计算出的奇校验位还是“0“,与发送方一致,表示在此次传输过程中未发生错误。 奇偶校验就是接收方用来验证发送方在传输过程中所传数据是否由于某些原因造成破坏。 具体方法如下: 奇校验:就是让原有数据序列中(包括你要加上的一位)1 的个数为奇数 1000110(0)你必须添 0 这样原来有 3 个 1 已经是奇数了所以你添上 0 之后 1 的个数还是奇数个。 偶校验:就是让原有数据序列中(包括你要加上的一位)1 的个数为偶数 1000110(1)你就必须 加 1 了这样原来有 3 个 1 要想 1 的个数为偶数就只能添 1 了。 具体代码如下(为方便观察,这里将 repeat 循环 10 次) : module s8_5; reg 15:0 data_in; reg check_bit; reg clock; task parity; input 15:0 data_in; output parity_check; reg 15:0 sum; reg 4:0 i; reg s; begin sum=0; for(i=0;iout) =15; (n=out) =15; (p=out) =12; (q=out) =12; endspecify ora1(e,m,n); anda2(f,p,q); ora3(out,e,f); endmodule 4考虑下图所示的负边沿触发的异步复位 D 触发器。写模块 D_FF 的 Verilog 描述,只给出输 入/输出端口和路径延迟说明。使用并行连接描述路径延迟。 Verilog HDL 数字设计与综合(第二版)70 答:代码如下 module D_FF(q,qbar,d,clock,reset); output q,qbar; input d,clock,reset; reg q,qbar; /bit to bit specify (d=q)=5; (clock=q)=6; (reset=q)=2; (d=qbar)=5; (clock=qbar) =7; (reset=qbar) =3; endspecify endmodule 5假设所有路径延迟是 5 个单位时间,修改习题 4 中的 D 触发器。使用 q 和 qbar 的全连接来描 述路径延迟。 答: module D_FF(q,qbar,d,clock,reset); output q,qbar; input d,clock,reset; reg q,qbar; /full connection specify (d,clock,reset * q)= 5; (d,clock,reset * qbar) = 5; q qbar d clock 路径延迟 d-q 5 d-qbar 5 clock-q 6 clocd-qbar 7 reset-q 2 reset-qbar 3 reset D_FF 第 5 章 门 级 建 模71 endspecify endmodule 6假设所有路径延迟定义都使用 6 个延迟参数的形式,所有路径延迟相等。在 specify 块中,定 义参数 t_01 = 4,t_10 = 5,t_0z = 7,t_z1 = 2,t_1z = 3,t_z0 = 8。使用习题 4 中的 D 触发器, 以全连接的方式给所有路径写 6 个延迟参数的说明。 答:代码如下: module D_FF(q,qbar,d,clock,reset); output q,qbar; input d,clock,reset; reg q,qbar; specify specparam t_01 = 4,t_10 = 5,t_0z = 7; specparam t_z1 = 2,t_1z = 3,t_z0 = 8; (d,clock,reset * q)= (t_01 ,t_10 ,t_0z ,t_z1 ,t_1z ,t_z0); (d,clock,reset * qbar) = (t_01 ,t_10 ,t_0z ,t_z1 ,t_1z ,t_z0); endspecify endmodule 7在习题 4 中,如果延迟值对 d 值有如下依赖关系,修改 D 触发器延迟说明。 如果 d = 1b0, 那么,clock q = 5,否则,clock q = 6 如果 d = 1b0, 那么,clock qbar = 4,否则,clock qba
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030烟气脱硫系统DCS控制方案优化与升级趋势研究报告
- 2025-2030海事监测无人机系统功能迭代与海上搜救效率提升评估
- 2025-2030机床行业绿色工厂认证标准与实施路径研究报告
- 2025-2030机床企业ESG评级表现与社会责任实践报告
- 市场品牌培训课件
- 气血培训课件
- Methiothepin-mesylate-Standard-生命科学试剂-MCE
- 2025口腔门诊管理制度
- 13-Methylpentadecanoyl-CoA-13-Methylpentadecanoyl-coenzyme-A-生命科学试剂-MCE
- 2025版危险废物意外事故应急预案
- 2025-2030中国特高压电网建设规划与设备需求分析报告
- 2026版赢在微点顶层设计大一轮物理-专题提升二十 测量电阻的其他几种方法
- 民族文化宫2025年公开招聘17人笔试模拟试题含答案详解
- 2025年幼儿园教师专业考试试题及答案书
- 2025秋新部编版一年级上册语文教学计划+教学进度表
- 2025年国家公务员考试行测真题及答案(完整版)
- 旅游区奖惩制度管理办法
- 小学语文人教六年级上册《童年》整书阅读课件
- 组合式空调机组各功能段介绍(课堂PPT)
- GB∕T 25684.1-2021 土方机械 安全 第1部分:通用要求
- MSA-GRR数据自动生成工具
评论
0/150
提交评论