15 verilog基础语法-语法总结3

虚拟机:VMware-workstation-full-14.0.0.24051
环 境:ubuntu 18.04.1
应用工具:VCS(verilog compiled simulator,编译型代码仿真器)



练习1

  • 下列模块被综合后会产生几个触发器
always @(posedge Clk)
	begin: Blk
		reg B,C;
		C=B;
		D<=C;
		B=A;
end

//1) 2 个寄存器 BD
//2) 2 个寄存器 BC
//3) 3 个寄存器 B,CD
//4) 1 个寄存器 D
//5) 2 个寄存器 CD

//参考答案:1

练习2

  • 根据图8.4电路调整语句顺序。
Output=FF3
reg FF1,FF2,FF3;
FF2=FF1;
always @ (posedge Clock)
end
FF3=FF2;
begin

在这里插入图片描述

  • 参考答案
    在这里插入图片描述

练习3

  • 根据SEL和OP列的时应关系,在模块的空括号中填入相应的值。
SEL : OP
000 : 1
001 : 3 casex(SEL)
010 : 1 3'b ( ): OP=3 ;
011 : 3 3'b ( ): OP=1;
100 : 0 3'b ( ): OP=0;
101 : 3 endcase
110 : 0
111 : 3

//参考答案:
casex(SEL)
	3'bXX1: OP=3;
	3'b0X0: OP=1;
	3'b1X0: OP=0;
endcase

练习4

  • 下面表达式正确的是?
1) 4'b1010 & 4'b1101 = 1'b1
2)4'b1100 = 1'b1
3)!4'b1011 || !4'b0000 ≈ 1'b1
4& 4'b1101 ≈ 1'b1
51'b0 || 1'b1 = 1'b1
64'b1011 && 4'b0100 = 4'b1111
74'b0101<<1 = 5'b01011
8)!4'b0010 is 1'b0
9) 4'b0001 || 4'b0000 ≈ 1'b1

//参考答案:3)、5)、8)、9

练习5

  • display的正确值是多少
integer I;
reg[3:0] A;
reg[7:0] B;

initial begin
	I=-1; A=I; B=A;
	$display(%b”,B);
	A=A/2;
	$ display(%b”,A);
	B=A+14;
	$ display(%d”,B);
	A=A+14;
	$ display(%d”,A);
	A=-2; I=A/2;
	$ display(%d”,I);
end

//参考答案
I=-1A=IB=A&display(%b ”,B);( 00001111 )
A=A/2;
&display(%b ”,A);( 0111 )
B=A+14;
&display(%d ”,B);( 21 )
A=A+14;
&display(%d ”,A);( 5 )
A=-2; I=A/2;
&display(%d ”,I);( 7 )

练习6

  • {1,0}和下面哪个值相等
1) 2'b01 
2) 2'b10 
3) 2'b00
4) 64'H000000000002
5) 64'H0000000100000000

//参考答案:5

练习7

  • 填空
1 )defs.Reset 
2) “defs.v”.Reset
3) M.Reset 
4) Reset

在这里插入图片描述

  • 参考答案
    在这里插入图片描述
    在这里插入图片描述

练习8

  • 如果调用Pipe时,想把Depth的值变为8,问程序中的空括号内填入何值?
Module Pipe(IP,OP)
parameter Option=1;
parameter Depth=1;
…
endmodule
Pipe( ) P1(IP1,OP1);

//参考答案:#(1,8)

练习9

  • 若想使P1中的Depth的值变为16,则应向空括号中填入哪个选项。
module Pipe(IP,OP);
	parameter Option=1;
	parameter Depth=1;
	...
endmodule

module
	Pipe P1(IP1,OP1);
	( );
endmodule

1)defparam P1.Depth=16;
2)parameter P1.Depth=16;
3)parameter Pipe.Depth=16;
4)defparam Pipe.Depth=16;

//参考答案:1

练习10

  • 若想在Test的monitor语句中观察Count的值,则在括号中填入什么
module Test
	Top T( );
initial
	&monitor( )
endmodule

module Top;
	Block B1();
	Block B2();
endmodule

module Block;
	Counter C();
endmodule

module Counter;
	reg[3:0]Count;
	...
endmodule

//参考答案:T.B1.C.Counter,TB2.C.Count

练习11

  • 如所示方框中用initial块给reg [7:0] V赋值,请指明每种情况下V的8位数都是什么值
    在这里插入图片描述

作者:xlinxdu
版权:本文版权归作者所有
转载:未经作者允许,禁止转载,转载必须保留此段声明,必须在文章中给出原文连接。

  • 9
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xlinxdu

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值