总结
豆包 AI 助手文章总结

一周掌握FPGA Verilog HDL语法 day 7

看不見的法師
发布: 2025-05-06 19:38:22
原创
147人浏览过
大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分。大侠可以关注FPGA技术江湖,在“闯荡江湖”、"行侠仗义"栏里获取其他感兴趣的资源,或者一起煮酒言欢。

今天给大侠带来的是一周掌握fpga verilog hdl 语法,今天开启第七天,也就是最后一天。

最后两天推出思考题(附参考答案),大侠可以自行思考,检测一下自己这一周的语法学习效果,结合实例理解理论语法,会让你理解运用的更加透彻。下面咱们废话就不多说了,一起来看看吧。

思考题实例运用

14)在下题中循环执行完后,V的值是多少?

代码语言:javascript代码运行次数:0运行复制
    reg [3:0] A;     reg V ,W;         integer K;     ....     A=4'b1010;         for(K=2;K>=0;K=K-1)         begin             V=V^A[k];             W=A[K]^A[K+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,5

16)在下题中,always状态将描述一个带异步Nreset和Nset输入端的上升沿触发器,则空括号内应填入什么,可从以下五种答案中选择。

代码语言:javascript代码运行次数:0运行复制
    always @( )         if(!Nreset)             Q<=0;         else if(!Nset)             Q<=1;         else             Q<=D;
登录后复制

1.negedge Nset or posedge Clock

2.posedge Clock

3.negedge Nreset or posedge Clock

4.negedge Nreset or negedge Nset or posedge Clock

5.negedge Nreset or negedge Nset

参考答案:4

17)在下题中,给出了几种硬件实现,问以下的模块被综合后可能是哪一种?

1.带异步复位端的触发器。

2.不能综合或与预先设想的不一致。

3.组合逻辑。

4.带逻辑的透明锁存器。

5.带同步复位端的触发器。

(1)

代码语言:javascript代码运行次数:0运行复制
    always @(posedge Clock)         begin             A<=B;             if(C)                 A<=1'b0;         end
登录后复制

参考答案:5

(2)

代码语言:javascript代码运行次数:0运行复制
    always @( A or B)         case(A)             1'b0: F=B;             1'b1: G=B;         endcase
登录后复制

参考答案:2

(3)

代码语言:javascript代码运行次数:0运行复制
    always @( posedge A or posedge B )         if(A)             C<=1'b0;         else             C<=D;
登录后复制

参考答案:1

(4)

代码语言:javascript代码运行次数:0运行复制
    always @(posedge Clk or negedge Rst)         if(Rst)              A<=1'b0;         else              A<=B;
登录后复制

参考答案:2(产生了异步逻辑)

18)在下题中,模块被综合后将产生几个触发器?

代码语言:javascript代码运行次数:0运行复制
    always @(posedge Clk)         begin: Blk            reg B, C;             C = B;             D <= C;             B = A;         end
登录后复制

1. 2个寄存器 B 和 D

2. 2个寄存器 B和 C

3. 3个寄存器 B, C 和 D

4. 1个寄存器 D 5. 2个寄存器 C 和D

参考答案:2

19)在下题中,各条语句的顺序是错误的。请根据电路图调整好它们的次序。

一周掌握FPGA Verilog HDL语法 day 7

参考答案:

代码语言:javascript代码运行次数:0运行复制
    reg FF1,FF2,FF3;         always @(posedge Clock)         begin             Output= FF3;             FF3 = FF2;             FF2 = FF1;             FF1 = Input;         end
登录后复制

20)根据左表中SEL与OP的对应关系,在右边模块的空括号中填入相应的值。SEL:OP

一周掌握FPGA Verilog HDL语法 day 7

参考答案:

casex(SEL)

3'bXX1: OP=3;

3'b0X0: OP=1;

3'b1X0: OP=0;

endcase

21)在以下表达式中选出正确的.

1) 4'b1010 & 4'b1101 = 1'b1

2) ~4'b1100 = 1'b1

3) !4'b1011 || !4'b0000 = 1'b1

4) & 4'b1101 = 1'b1

5) 1b'0 || 1b'1 = 1'b1

6) 4'b1011 && 4'b0100 = 4'b1111

7) 4'b0101

8) !4'b0010 is 1'b0

9) 4'b0001 || 4'b0000 = 1'b1

参考答案:3), 5), 8), 9)

22)在下一个模块旁的括号中填入display的正确值。

代码语言:javascript代码运行次数:0运行复制
integerI; 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             $diaplay("%d",B);( )             A=A+14;             $display("%d",A);( )             A=-2;I=A/2;             $display("%d",I);( )         end
登录后复制

参考答案:

代码语言:javascript代码运行次数:0运行复制
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}与下面哪一个值相等。

1). 2'b01

2). 2'b10

3). 2'b00

4). 64'H000000000002

5). 64'H0000000100000000

参考答案:5 (位拼接运算符必须指明位数,若不指明则隐含着为32位的二进制数[即整数]。)

24)根据下题给出的程序,确定应将哪一个选项填入尖括号内。

1. defs.Reset

2."defs.v".Reset

3. M.Reset

4.Reset

一周掌握FPGA Verilog HDL语法 day 7

1 参考答案:1 (模块间调用时,若引用其他模块定义的参数,要加上其他模块名,做为这个参数的前缀。)

代码语言:javascript代码运行次数:0运行复制
module M     'include "defs.v"     ....     if(OP==<defs.Reset>)     Bus=0; endmodule
登录后复制

2. 标准答案:4

代码语言:javascript代码运行次数:0运行复制
parameter Reset=8'b10100101; (File defs.v) module M 'include "defs.v" .... if(OP==<Reset>Bus=0; endmodule
登录后复制

25)如果调用Pipe时,想把Depth的值变为8,问程序中的空括号内应填入何值?

代码语言:javascript代码运行次数:0运行复制
Module Pipe(IP,OP)     parameter Option=1;     parameter Depth=1;     ... endmodule Pipe( ) P1(IP1,OP1);
登录后复制

参考答案:#(1,8) (其中1对应参数Option,8对应参数Depth.)

26)若想使P1中的Depth的值变为16,则应向空括号中填入哪个选项。

代码语言:javascript代码运行次数:0运行复制
module Pipe (IP ,OP);       parameter Option =1;       parameter Depth = 1;       …………endmodule 
登录后复制
代码语言:javascript代码运行次数:0运行复制
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

(用后缀改变引用模块的参数要用defparam及用本模块名作为引用参数的前缀,如p1.Depth。)

27)如果我们想在Test的monitor语句中观察Count的值,则在空括号中应填入什么?

代码语言:javascript代码运行次数:0运行复制
Module Test     Top T();     initial     $monitor( ) endmodule 
登录后复制
代码语言:javascript代码运行次数:0运行复制
module Top;     Block B1();     Block B2(); endmodule 
登录后复制
代码语言:javascript代码运行次数:0运行复制
module Block;     Counter C(); endmodule
登录后复制
代码语言:javascript代码运行次数:0运行复制
module Counter;     reg [3:0] Count;     .... endmodule
登录后复制

答案:T.B1.C.Countor Test.T.B1.C.Count

28) 下题中用initial块给reg[7:0]V符值,请指明每种情况下V的8位都是什值。这道题说明在数的表示时,已标明字宽的数若用XZ表示某些位,只有在最左边的X或Z具有扩展性。

代码语言:javascript代码运行次数:0运行复制
    Reg [ 7 :0 ] V        initial        begin             V = 8’b0;             V = 8’b1;             V = 8’bX;             V = 8’BZX;             V = 8’BXXZZ;             V = 8’b1X;        end
登录后复制

参考答案:

8’b00000000

8’b00000001

8’bXXXXXXXX

8’bZZZZZZZX

8’BXXXXXXZZ

8’b0000001X

最后一天 Day 7 到这里就结束了,也代表这一周学Verilog HDL 语法到这里就结束了,熟练透彻的使用语法也是做研发设计进阶的不可缺的部分,大侠可以自行思考练习,愿修炼的炉火纯青,大侠保重,告辞。

以上就是一周掌握FPGA Verilog HDL语法 day 7的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
豆包 AI 助手文章总结
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号