ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:120.31KB ,
资源ID:9333853      下载积分:1 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-9333853.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(verilog源代码第89章例题.docx)为本站会员(b****0)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

verilog源代码第89章例题.docx

1、verilog源代码第89章例题第八章 语法概念总复习练习 1)以下给出了一个填空练习,请将所给各个选项根据电路图,填入程序中的适当位置。标准答案:module AOI(A,B,C,D,F);input A,B,C,D;output F;assign F = (A&B)&(C&D);endmodule2 在这一题中,我们将作有关层次电路的练习,通过这个练习,你将加深对模块间调用时,管脚间连接的理解。假设已有全加器模块FullAdder,若有一个顶层模块调用此全加器,连接线分别为W4,W5,W3,W1和W2。请在调用时正确地填入I/O的对应信号。module FullAdder(A,B,Cin,

2、Sum,Cout);input A, B, Cin; output Sum, Cout; endmodulemodule Top.FullAdder FA( , / W1 , / W2 , / W3 , / W4 ) ; / W5 endmodule标准答案:moduleTop.FullAdderFA( .Sum(W1), /W1.Cout(W2), /W2.Cin(W3), /W3.A(W4), /W4.B(W5) ); /W5endmodule3)下面这道题是一个测试模块,因此没有输入输出端口,请将相应项填入合适的位置。module TestFixture;initialbeginendi

3、nitialendmodule标准答案:module TestFixturereg A,B,SEL;wire F;MUX2M(SEL,A,B,F);initialbegin SEL=0; A=0; B=0; #10 A=1; #10 SEL=1; #10 B=1;endinitial $monitor(SEL,A,B,F);endmodule4)指出下面几个信号的最高位和最低位。reg 1:0 SEL; input 0:2 IP; wire 16:23 A;标准答案:MSB:SEL1 MSB:IP0 MSB:A16LSB:SEL0 LSB:IP2 LSB:A235)P,Q,R都是4bit的输入

4、矢量,下面哪一种表达形式是正确的。1)input P3:0,Q,R;2)input P,Q,R3:0;3)input P3:0,Q3:0,R3:0;4)input 3:0 P,3:0Q,0:3R;5)input 3:0 P,Q,R;标准答案:5)6)请将下面选项中的正确答案填人空的方括号中。1. (0:2) 2. (P:0) 3. (Op1:Op2) 4.(7:7) 5. (2:0) 6. (7:0)reg 7:0 A;reg 2:0 Sum, Op1, Op2;reg P, OneBit;initialbeginSum=Op1+Op2;P=1;A =Sum;.end标准答案:57)请根据以下

5、两条语句,从选项中找出正确答案。7.1) reg 7:0 A;A=2hFF;1) 8b0000_0011 2) 8h03 3) 8b1111_1111 4) 8b11111111标准答案:1)、2)7.2) reg 7:0 B;B=8 bZ0;1) 80000_00Z0 2) 8bZZZZ_0000 3) 8b0000_ZZZ0 4) 8bZZZZ_ZZZ0标准答案:4)8)请指出下面几条语句中变量的类型。8.1) assign A=B;8.2) always #1 Count=C+1;标准答案:A(wire) B(wire/reg) Count(reg) C(wire/reg)9)指出下面模

6、块中Cin,Cout,C3,C5,的类型。module FADD(A,B,Cin,Sum,Cout);input A, B, Cin;output Sum, Cout;.endmodulemodule Test;.FADDM(C1,C2,C3,C4,C5);.endmodule标准答案:Cin(wire) Cout(wire/reg) C3(wire/reg) C5(wire)10在下一个程序段中,当ADDRESS的值等于5b0X000时,问casex执行完后A和B的值是多少。A=0;B=0;casex(ADDRESS)5b00?: A=1;5b01?: B=1;5b10?00,5b11?00

7、:beginA=1;B=1;endendcase标准答案: A=1 and B=0;11)在下题中,事件A分别在10,20,30发生,而B一直保持X状态,问在50时Count的值是多少。reg 7:0 Count;initialCount=0;alwaysbegin(A) Count=Count+1;(B) Count=Count+1;end标准答案:Count=1;(这是因为当A第一次发生时,Count的值由0变为1,然后事件控制 (B) 阻挡了进程。)12)在下题中initial块执行完后I,J,A,B的值会是多少。reg 2:0 A;reg 3:0 B;integer I, J;init

8、ialbeginI=0;A=0;I=I-1;J=I;A=A-1;B=A;J=J+1;B=B+1;end标准答案:I=-1 (整数可为负数)J=0A=7 (A为reg型为非负数,又因为A为3位即为111)B=8 (在BA时,B0111,然后BB1,所以B=4b1000)13)在下题中,当V的值发生变化且为-1时,执行完always块后Count的值应是多少?reg7:0V;reg2:0Count;always (V)beginCount=0;while(VCount)Count=Count+1;end标准答案:Count=0;14)在下题中循环执行完后,V的值是多少?reg 3:0 A;reg

9、V ,W;integer K;.A=4b1010;for(K=2;K=0;K=K-1)beginV=VAk;W=AKAK+1;end标准答案:V的值是它进人循环体前值的取反。(因为V的值与0,1,0 进行了异或,与1的异或改变了V的值。)15)在下题中,给出了几种硬件实现,问以下的模块被综合后可能是哪一种?always (posedge Clock)if(A)C=B;1.不能综合。2.一个上升沿触发器和一个多路器。3.一个输入是A,B,Clock的三输入与门。4.一个透明锁存器。5.一个带clock有始能引脚的上升沿触发器。标准答案:2,516)在下题中,always状态将描述一个带异步Nre

10、set和Nset输入端的上升沿触发器,则空括号内应填入什么,可从以下五种答案中选择。always ( )if(!Nreset)Q=0;else if(!Nset)Q=1;elseQ=D;1.negedge Nset or posedge Clock2.posedge Clock3.negedge Nreset or posedge Clock4.negedge Nreset or negedge Nset or posedge Clock5.negedge Nreset or negedge Nset标准答案:417)在下题中,给出了几种硬件实现,问以下的模块被综合后可能是哪一种?1.带异步复

11、位端的触发器。2.不能综合或与预先设想的不一致。3.组合逻辑。4.带逻辑的透明锁存器。5.带同步复位端的触发器。1.always (posedge Clock)beginA=B;if(C)A=1b0;end标准答案:52.always ( A or B)case(A)1b0: F=B;1b1: G=B;endcase标准答案:23.always ( posedge A or posedge B )if(A)C=1b0;elseC=D;标准答案:14.always (posedge Clk or negedge Rst)if(Rst) A=1b0;else A=B;标准答案:2 (产生了异步逻辑

12、)18)在下题中,模块被综合后将产生几个触发器?always (posedge Clk)begin: Blkreg B, C;C = B;D = C;B = A;end1. 2个寄存器 B 和 D2. 2个寄存器 B和 C3. 3个寄存器 B, C 和 D4. 1个寄存器 D5. 2个寄存器 C 和D标准答案:219)在下题中,各条语句的顺序是错误的。请根据电路图调整好它们的次序。标准答案:1) 2)reg FF1,FF2,FF3; always (posedge Clock)beginOutput= FF3;FF3 = FF2;FF2 = FF1;FF1 = Input;endreg FF1

13、,FF2,FF3; always (posedge Clock)beginFF1 = Input; FF2 = FF1; FF3 = FF2;Output= FF3;end20)根据左表中SEL与OP的对应关系,在右边模块的空括号中填入相应的值。SEL:OP000:1001:3 casex(SEL)010:1 3b( ): OP=3;011:3 3b( ): OP=1;100:0 3b( ): OP=0;101:3 endcase110:0111:3标准答案:casex(SEL)3bXX1: OP=3;3b0X0: OP=1;3b1X0: OP=0;endcase21)在以下表达式中选出正确的

14、.1) 4b1010 & 4b1101 = 1b12) 4b1100 = 1b13) !4b1011 | !4b0000 = 1b14) & 4b1101 = 1b15) 1b0 | 1b1 = 1b16) 4b1011 & 4b0100 = 4b11117) 4b01011 =5b010118) !4b0010 is 1b09) 4b0001 | 4b0000 = 1b1标准答案:3), 5), 8), 9)22)在下一个模块旁的括号中填入display的正确值。integerI;reg3:0A;reg7:0B;initialbeginI=-1;A=I;B=A;$display(%b,B);

15、( )A=A/2;$display(%b,A);( )B=A+14$diaplay(%d,B);( )A=A+14;$display(%d,A);( )A=-2;I=A/2;$display(%d,I);( )end标准答案:I=-1;A=I;B=A;$display(%b,B);(00001111)A=A/2;$display(%b,A);(0111)B=A+14$diaplay(%d,B);(21)A=A+14;$display(%d,A);(5)(A为4位,所以21被截为5)A=-2;I=A/2;$display(%d,I);(7)(A=-2,则是1110)23)请问1,0与下面哪一个值

16、相等。1). 2b01 2). 2b10 3). 2b004). 64H000000000002 5). 64H0000000100000000标准答案:5(位拼接运算符必须指明位数,若不指明则隐含着为32位的 二进制数即整数。)24)根据下题给出的程序,确定应将哪一个选项填入尖括号内。1. defs.Reset 2.defs.v.Reset3. M.Reset 4.Reset1 标准答案:1(模块间调用时,若引用其他模块定义的参数,要加上其他模块名,做为这个参数的前缀。)module Minclude defs.v.if(OP=)Bus=0;endmodule2. 标准答案:4paramet

17、er Reset=8b10100101; (File defs.v)module Minclude defs.v.if(OP=)Bus=0;endmodule25)如果调用Pipe时,想把Depth的值变为8,问程序中的空括号内应填入何值?Module Pipe(IP,OP)parameter Option=1;parameter Depth=1;.endmodulePipe( ) P1(IP1,OP1);标准答案:#(1,8)(其中1对应参数Option,8对应参数Depth.)26)若想使P1中的Depth的值变为16,则应向空括号中填入哪个选项。module Pipe (IP ,OP);

18、parameter Option =1;parameter Depth = 1;endmodulemodulePipe P1(IP1 ,OP1);( );endmodule1.defparam P1.Depth=16;2.parameter P1.Depth=16;3.parameter Pipe.Depth=16;4.defparam Pipe.Depth=16;标准答案:1(用后缀改变引用模块的参数要用defparam及用本模块名作为引用参数的前缀,如p1.Depth。)27)如果我们想在Test的monitor语句中观察Count的值,则在空括号中应填入什么?Module TestTop

19、 T();initial$monitor( )endmodulemodule Top;Block B1();Block B2();endmodulemodule Block;Counter C();endmodulemodule Counter;reg 3:0 Count;.endmodule标准答案:T.B1.C.Countor Test.T.B1.C.Count28)下题中用initial块给reg7:0V符值,请指明每种情况下V的8位都是什值。这道题说明在数的表示时,已标明字宽的数若用XZ表示某些位,只有在最左边的X或Z具有扩展性。第九章 设计和验证例题 例1用基本逻辑单元组成触发器。(

20、文件名为:flop.v)module flop(data,clock,clear,q,qb);input data,clock,clear;output q,qb; nand #10 nd1(a,data,clock,clear), / 注意结束时用逗号,最后才用分号 nd2(b,ndata,clock), / 表示nd1 到nd8 都是nand(与非门) nd4(d,c,b,clear), nd5(e,c,nclock), nd6(f,d,nclock),nd8(qb,q,f,clear);nand #9 nd3(c,a,d),nd7(q,e,qb);not #10 iv1(ndata,da

21、ta),iv2(nclock,clock);endmodule 图9.1.2. D型主从触发器的电路结构图 1) flop f1op_d( d1, clk, clrb, q, qn); 2) flop flop_d (.clock(clk),.q(q),.clear(clrb),.qb(qn),.data(d1); 例2用触发器组成带清零端的四位寄存器。(文件名为:hardreg.v) include flop.vmodule hardreg(d,clk,clrb,q);input clk,clrb;input3:0 d;output3:0 q;flop f1(d0,clk,clrb,q0,)

22、, / 注意结束时用逗号,最后才用分号 f2(d1,clk,clrb,q1,), / 表示f1 到f4 都是flop f3(d2,clk,clrb,q2,),f4(d3,clk,clrb,q3,);endmodule 例3用行为描述的方法来描述带请零端的四位寄存器。(文件名为:hardreg.v)module hardreg(d,clk,clrb,q);input clk,clrb;input3:0 d;output3:0 q;reg 3:0 q; always (posedge clk or posedge clrb) begin if (clrb) q = 0; else q end_first_pass; end/*延迟200个单位时间,触发事件end_first_pass*/$finish; /结束仿真endendmodule

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2