0

0

一周掌握FPGA Verilog HDL语法 day 7

看不見的法師

看不見的法師

发布时间:2025-05-06 19:38:22

|

251人浏览过

|

来源于php中文网

原创

大侠好,欢迎来到fpga技术江湖,江湖偌大,相见即是缘分。大侠可以关注fpga技术江湖,在“闯荡江湖”、"行侠仗义"栏里获取其他感兴趣的资源,或者一起煮酒言欢。

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

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

思考题实例运用

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

代码语言:javascript代码运行次数:0运行复制
<code class="javascript">    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</code>

参考答案: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运行复制
<code class="javascript">    always @( )         if(!Nreset)             Q<=0;         else if(!Nset)             Q<=1;         else             Q<=D;</code>

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运行复制
<code class="javascript">    always @(posedge Clock)         begin             A<=B;             if(C)                 A<=1'b0;         end</code>

参考答案:5

(2)

代码语言:javascript代码运行次数:0运行复制
<code class="javascript">    always @( A or B)         case(A)             1'b0: F=B;             1'b1: G=B;         endcase</code>

参考答案:2

(3)

代码语言:javascript代码运行次数:0运行复制
<code class="javascript">    always @( posedge A or posedge B )         if(A)             C<=1'b0;         else             C<=D;</code>

参考答案:1

(4)

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

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

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

代码语言:javascript代码运行次数:0运行复制
<code class="javascript">    always @(posedge Clk)         begin: Blk            reg B, C;             C = B;             D <= C;             B = A;         end</code>

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运行复制
<code class="javascript">    reg FF1,FF2,FF3;         always @(posedge Clock)         begin             Output= FF3;             FF3 = FF2;             FF2 = FF1;             FF1 = Input;         end</code>

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

一周掌握FPGA Verilog HDL语法 day 7

参考答案:

casex(SEL)

3'bXX1: OP=3;

3'b0X0: OP=1;

Woy AI
Woy AI

通过 Woy.ai AI 导航站发现 2024 年顶尖的 AI 工具!

下载

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运行复制
<code class="javascript">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</code>

参考答案:

代码语言:javascript代码运行次数:0运行复制
<code class="javascript">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)</code>

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运行复制
<code class="javascript">module M     'include "defs.v"     ....     if(OP==<defs.Reset>)     Bus=0; endmodule</code>

2. 标准答案:4

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

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

代码语言:javascript代码运行次数:0运行复制
<code class="javascript">Module Pipe(IP,OP)     parameter Option=1;     parameter Depth=1;     ... endmodule Pipe( ) P1(IP1,OP1);</code>

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

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

代码语言:javascript代码运行次数:0运行复制
<code class="javascript">module Pipe (IP ,OP);       parameter Option =1;       parameter Depth = 1;       …………endmodule </code>
代码语言:javascript代码运行次数:0运行复制
<code class="javascript">module       Pipe P1(IP1 ,OP1);       ( ); endmodule</code>

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运行复制
<code class="javascript">Module Test     Top T();     initial     $monitor( ) endmodule </code>
代码语言:javascript代码运行次数:0运行复制
<code class="javascript">module Top;     Block B1();     Block B2(); endmodule </code>
代码语言:javascript代码运行次数:0运行复制
<code class="javascript">module Block;     Counter C(); endmodule</code>
代码语言:javascript代码运行次数:0运行复制
<code class="javascript">module Counter;     reg [3:0] Count;     .... endmodule</code>

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

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

代码语言:javascript代码运行次数:0运行复制
<code class="javascript">    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</code>

参考答案:

8’b00000000

8’b00000001

8’bXXXXXXXX

8’bZZZZZZZX

8’BXXXXXXZZ

8’b0000001X

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

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
java基础知识汇总
java基础知识汇总

java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。

1561

2023.10.24

Go语言中的运算符有哪些
Go语言中的运算符有哪些

Go语言中的运算符有:1、加法运算符;2、减法运算符;3、乘法运算符;4、除法运算符;5、取余运算符;6、比较运算符;7、位运算符;8、按位与运算符;9、按位或运算符;10、按位异或运算符等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

241

2024.02.23

php三元运算符用法
php三元运算符用法

本专题整合了php三元运算符相关教程,阅读专题下面的文章了解更多详细内容。

128

2025.10.17

if什么意思
if什么意思

if的意思是“如果”的条件。它是一个用于引导条件语句的关键词,用于根据特定条件的真假情况来执行不同的代码块。本专题提供if什么意思的相关文章,供大家免费阅读。

846

2023.08.22

counta和count的区别
counta和count的区别

Count函数用于计算指定范围内数字的个数,而CountA函数用于计算指定范围内非空单元格的个数。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

203

2023.11.20

JavaScript浏览器渲染机制与前端性能优化实践
JavaScript浏览器渲染机制与前端性能优化实践

本专题围绕 JavaScript 在浏览器中的执行与渲染机制展开,系统讲解 DOM 构建、CSSOM 解析、重排与重绘原理,以及关键渲染路径优化方法。内容涵盖事件循环机制、异步任务调度、资源加载优化、代码拆分与懒加载等性能优化策略。通过真实前端项目案例,帮助开发者理解浏览器底层工作原理,并掌握提升网页加载速度与交互体验的实用技巧。

28

2026.03.06

Rust内存安全机制与所有权模型深度实践
Rust内存安全机制与所有权模型深度实践

本专题围绕 Rust 语言核心特性展开,深入讲解所有权机制、借用规则、生命周期管理以及智能指针等关键概念。通过系统级开发案例,分析内存安全保障原理与零成本抽象优势,并结合并发场景讲解 Send 与 Sync 特性实现机制。帮助开发者真正理解 Rust 的设计哲学,掌握在高性能与安全性并重场景中的工程实践能力。

68

2026.03.05

PHP高性能API设计与Laravel服务架构实践
PHP高性能API设计与Laravel服务架构实践

本专题围绕 PHP 在现代 Web 后端开发中的高性能实践展开,重点讲解基于 Laravel 框架构建可扩展 API 服务的核心方法。内容涵盖路由与中间件机制、服务容器与依赖注入、接口版本管理、缓存策略设计以及队列异步处理方案。同时结合高并发场景,深入分析性能瓶颈定位与优化思路,帮助开发者构建稳定、高效、易维护的 PHP 后端服务体系。

164

2026.03.04

AI安装教程大全
AI安装教程大全

2026最全AI工具安装教程专题:包含各版本AI绘图、AI视频、智能办公软件的本地化部署手册。全篇零基础友好,附带最新模型下载地址、一键安装脚本及常见报错修复方案。每日更新,收藏这一篇就够了,让AI安装不再报错!

84

2026.03.04

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

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