期中考试【Verilog】

news/2024/4/25 14:53:22/文章来源:https://blog.csdn.net/qq_51625007/article/details/128113229

期中考试【Verilog】

  • 前言
  • 推荐
  • 期中考试
    • 一. 单选题(共10题)
    • 二. 填空题(共5题)
    • 三. 简答题(共3题)
    • 四. 其它(共4题)
  • 最后

前言

编写于2022/11/30 13:30

以下内容源自Verilog期中试题
仅供学习交流使用


考试时间 8:40~10:00

首次做:不翻书 9:20左右做完
再次检查:翻书 9:50左右做完
题目难度:不是很难,尽量不翻书


推荐

第四章 数字逻辑电路设计方法【Verilog】

期中考试

题量:22满分:100
作答时间: 11-30 08:41至11-30 10:00

一. 单选题(共10题)

1.(单选题)门级建模的类型有( )
A. or和AND
B. OR和and
C. and和or
D. A、B、C都正确

我的答案: C 必须是小写
正确答案: C

2.(单选题)
VerilogHDL使用的逻辑是( )
A. 二值逻辑
B. 四值逻辑
C. 三值逻辑
D. 八种强度

我的答案: B 0、1、x、z
正确答案: B

3.(单选题)具有多个输出端口的门是( )
A. and
B. or
C. nor
D. not

我的答案: D 基本门电路这个not很特殊,多输出门 另外还有缓存器buf
正确答案: D

4.(单选题)reg[15:0] mem[127:0] 正确的赋值是( )
A. mem[5]=16’ d0;
B. mem=16’ d0;
C. mem[15][127]=1’ b1;
D. mem[5][3:0]=16’ d1

我的答案: A 位宽 个数
正确答案: A

5.(单选题)
下列标识符中那个是合法的( )
A. \din
B. ALWAYS
C. _out*
D. $abc

我的答案: D 我就这个没有检查,以为自己肯定对
正确答案: B 结果,就这个错了
合法标识符只能有数字、字母、下划线、美元符组成
区分大小写
第一个字符只能是字母或下划线

6.(单选题)在verilog语言中,a=4’b1011,那么 &a=( )
A. 4’b1011
B. 4’b1111
C. 1’b1
D. 1’b0

我的答案: D 归约与
正确答案: D

7 (单选题)在verilog语言中整型数据与( )位寄存器数据在实际意义上是相同的。
A. 8
B. 16
C. 32
D. 64

我的答案: C 整型数据4个字节
正确答案: C

8.(单选题)assign连续赋值语句主要用于对( )类型变量赋值。
A. wire
B. reg
C. integer
D. time

我的答案: A
正确答案: A

9.(单选题)
verilog语言内部已使用的词称为关键字或保留字,( )不是关键字。
A. output
B. tri
C. Module
D. begin

我的答案: C
正确答案: C

10.(单选题)
过程赋值语句,多用于对( )类型语句赋值。
A. reg
B. wire
C. net
D. integer

我的答案: A
正确答案: A

二. 填空题(共5题)

11.(填空题)
verilog语言规定的两种主要物理数据类型分别是____________和_____________,程序模块中输入输出信号的缺省类型为___________________。

我的答案:
(1) 连线型
(2) 寄存器型
(3) wire
正确答案:
(1) 连线类型;寄存器类型
(2) 寄存器类型;连线类型
(3) wire

12.(填空题)
块语句有两种,一种是begin-end语句,通常用来标志________________执行的语句;另一种是fork-join语句,通常用来标志________________执行的语句。

我的答案:
(1) 串行
(2) 并行
正确答案:
(1) 顺序
(2) 并行

13.(填空题)
写出表达式以实现对应电路的逻辑功能

assign F=__________________________________。

在这里插入图片描述

我的答案:
(1) (A&B)|(C与非D)异或E 我的想法是写成(AB+(–CD))⊕E ,数字电路的表达式有点符号打不出来,用了汉字代替
正确答案:
(1) ((A&B)|(~ (C&D)))^ E;(A&B|(~ (C&D)))^E

  1. (填空题)
    根据图中输入输出关系将verilog模块定义补充完整,其中信号A为5比特宽度,其余信号为1比特宽度。
    在这里插入图片描述

我的答案:
(1) output[4:0] A
(2) input B
(3) inout C
正确答案:
(1) input B;
(2) inout C ;
(3) output [4:0] A;

15.(填空题)
1、 假设某4比特位宽的变量a的值为4’b1010,计算下列运算表达式的结果:

&a=_______________________;

{3{a}}=____________________;

!a=_______________________。

我的答案:
(1) 1’b0 归约与
(2) 12’b101010101010 复制
(3) 0 逻辑非
正确答案:
(1) 0;1’b0
(2) 12’b101010101010
(3) 0;1’b0

三. 简答题(共3题)

16.(简答题)请解释下列名词:HDL,EDA,FPGA,IP,RTL。

看书

HDL:是一种高级程序设计语言,通过对数字电路和系统的语言描述,可以对数字集成电路进行设计和验证
EDA:一些公司提供功能强大的电子设计自动化工具
FPGA:现场可编程门阵列
IP核:具有知识产权核的集成电路芯核的总称
RTL:数字电路设计和代码编码阶段   

17.(简答题)always语句和initial语句的关键区别是什么?能否相互嵌套?

initial:在时刻0开始,只能执行一次
always:在触发条件下,便可执行
不能相互嵌套

18.(简答题)
分别画出下面两个程序综合出的电路图(其中d为输入)。

阻塞赋值=和非阻塞赋值<=的区别

① input d,clk;output q0,q1,q2; reg  q0,q1,q2;always@(posedge  clk)beginq0<=d;q1<= q0;q2<= q1;end② input d,clk;output q0,q1,q2; reg  q0,q1,q2; always@(posedge  clk)beginq0= d;q1= q0;q2= q1;end

我的答案:
在这里插入图片描述

我少画了一个D触发器输出q0
在这里插入图片描述

在这里插入图片描述

测试

module test1(q0,q1,q2,clk,d);input d,clk;output q0,q1,q2; reg  q0,q1,q2;always@(posedge  clk)beginq0<=d;q1<= q0;q2<= q1;end
endmodule
module test2(q0,q1,q2,clk,d);input d,clk;output q0,q1,q2; reg  q0,q1,q2;always@(posedge  clk)beginq0 = d;q1 = q0;q2 = q1;end
endmodule
module test_tb;reg d,clk;wire q0,q1,q2; test1 u1(q0,q1,q2,clk,d);test2 u2(q0,q1,q2,clk,d);always #5 clk = ~clk;initialbeginclk=0;#10 d=0;#50 d=1; 	end
endmodule

在这里插入图片描述

四. 其它(共4题)

19.(其它)
设计一个带复位端且对输入时钟clk进行八分频的电路模块。并设计相应的测试电路。
设计要求:复位信号为同步、高电平有效,时钟的下降沿触发。

module dclk8(out, clk, clr); output [2:0] out; input clk,clr;  reg [3:0] out;//少了always @ (negedge clk)   //negedgeif (clr)	out<=3'b000;  else if (out==3'b111) out<=3'b000; else out<=out+1; 
endmodule
module dclk8_tb; wire[2:0] out; reg clk,clr;  dclk8 u1(out, clk, clr); always #5 clk = ~clk;initialbeginclk=0;clr=1;#10 clr=0;#15 clr=1;#10 clr=0;//应该再补个clr=0		end
endmodule

仿真结果:如下
在这里插入图片描述

只有计数器,不能实现分频

修改

//设计一个带复位端且对输入时钟clk进行八分频的电路模块。并设计相应的测试电路。
//设计要求:复位信号为同步、高电平有效,时钟的下降沿触发。
/*
module dclk8(out, clk, clr); output[3:0] out; input clk,clr;  reg [3:0] out;always @ (negedge clk)   //negedgeif (clr)	out<=3'b000;  else if (out==3'b111) out<=3'b000; else out<=out+1; endmodule
*/module dclk8(clk8, clk, clr); output clk8; input clk,clr; reg  clk8;reg [3:0] out;always @ (negedge clk)   //negedgeif (clr)	out<=3'b000;  else if (out==3'b111) out<=3'b000; else out<=out+1; always @ (out)  if (clr)	clk8<=0;  else if (out==3'b111) clk8=~clk8;endmodule
/*
module dclk8_tb; wire[2:0] out; reg clk,clr;  dclk8 u1(out, clk, clr); always #5 clk = ~clk;initialbeginclk=0;clr=1;#10 clr=0;#15 clr=1;#10 clr=0;//应该再补个clr=0		end
endmodule
*/module dclk8_tb; wire clk8; reg clk,clr;  dclk8 u1(clk8, clk, clr); always #5 clk = ~clk;initialbeginclk=0;clr=1;#10 clr=0;#15 clr=1;#10 clr=0;//应该再补个clr=0		end
endmodule

在这里插入图片描述

20.(其它)
试用Verilog HdL描述一个4位的全加器,并编写测试代码。(端口A、B为加数,CI为进位输入,SUM为和,CO为进位输出。)

module adder4(sum, co, a, b, ci);output[3:0] 	sum;output co;input[3:0] 	a, b;input ci;assign	 {co,sum}=a+b+ci;
endmodule 
module adder4_tb;wire[3:0] 	sum;wire 	co;reg[3:0]  	a,b;reg ci;adder4 u4(sum, co, a, b, ci);//我把实例化忘了initialbegina=4'b0000;b=4'b0000;ci=0;#10 a=4'b0001;b=4'b0001;ci=1;#10 a=4'b0011;b=4'b0011;ci=0;#10 a=4'b0111;b=4'b0111;ci=1;		#10 a=4'b1111;b=4'b1111;ci=0;	end
endmodule

在这里插入图片描述

21.(其它)
设计一奇偶校验位生成电路,输入八位总线信号bus,输出奇校验位odd,偶校验位even。并设计相应的测试电路。

module checker8 (odd,even,bus); output odd,even;input [7:0] bus; assign even=^bus; assign odd=~even; 
endmodule
module checker8_tb; wire odd,even;reg [7:0] bus; checker8 u8(odd,even,bus);//我把实例化忘了initial beginbus=8'b00000000;#10 bus=8'b00000001;#10 bus=8'b10000000;#10 bus=8'b11111111;end
endmodule

在这里插入图片描述

22.(其它)
请用Verilog Hdl设计一个十进制的同步减法计数器,要求具有复位和置数功能,并编写测试代码。

module counter10(count, clk, reset,load,d); output [3:0] count; input clk,reset,load;  input [3:0] d; reg [3:0] count;always @ (posedge clk)if (!reset)	count<=4'b0000; else if (load)	count<=d;  //这个又少了ifelse     if (count==4'b0000)       count<=4'b1001;     else       count<=count-1; 
endmodule
module counter10_tb; wire [3:0] count; reg clk,reset,load;  reg [3:0] d; counter10 c10(count, clk, reset,load,d);//这个没有忘always #5 clk = ~clk;initialbeginclk=0;reset=1;load=1;d=4'b1001#5 load=0;		#50 reset=0;#50 load=1;d=4'b0000;# 5 load=0;		end //又忘了个endendmodule

修改测试代码

module counter10_tb; wire [3:0] count; reg clk,reset,load;  reg [3:0] d; counter10 c10(count, clk, reset,load,d);always #5 clk = ~clk;initialbeginclk=0;reset=1;load=1;d=4'b1001;#10 load=0;		#50 reset=0;#10 reset=1;load=1;d=4'b0000;#10 load=0;		end //又忘了个end/*initialbeginclk=0;reset=0;load=0;#10 reset=1;load=1;d=4'b1001;#10load=0;end //又忘了个e
*/
endmodule

在这里插入图片描述

最后

总结:
不够细心
本来应该能答对的
有可能是手跟不上脑子吧


2022-11-30 15:39


这篇博客能写好的原因是:站在巨人的肩膀上

这篇博客要写好的目的是:做别人的肩膀

开源:为爱发电

学习:为我而行

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_39183.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GeoServer服务迁移出现 EncryptionOperationNotPossibleException 错误的解决方案

目录1.前言2.GeoServer服务迁移一般流程3.遇到问题4.原因分析5.解决办法6.根本原因分析7.总结1.前言 这几天我在迁移 GeoServer 服务的时候发现&#xff0c;报了一个错&#xff0c;EncryptionOperationNotPossibleException &#xff0c;这个错误的大概意思是加密操作不可用异常…

Faster RCNN全文翻译

Abstract—State-of-the-art【最先进的】 object detection networks depend on region proposal algorithms to hypothesize【假设、推测】 object locations.Advances like SPPnet [1] and Fast R-CNN [2] have reduced the running time of these detection networks, expos…

Redis集群方案备忘录

文章目录哨兵模式官方Redis ClusterJedis&#xff08;客户端分片&#xff09;Codis&#xff08;代理分片&#xff09;哨兵模式 优点 哨兵模式是基于主从模式的&#xff0c;解决可主从模式中master故障不可以自动切换故障的问题。缺点 &#xff08;1&#xff09;是一种中心化的…

一些跨平台技术方案的经验参考

今天就站在一个小开发的视角分享一下一个小项目是如何进行跨平台方案选型的 本系列文章先站在公司的的角度对产品技术选型进行分析&#xff0c;然后再根据我们项目实际开发经验进行汇总&#xff0c;供大家参考。 目前大前端技术也非常丰富&#xff0c;可以实现&#xff0c;一…

【uniapp】利用Vuex实现购物车功能

实战项目名称&#xff1a;实现购物车功能 文章目录一、实战步骤1. 先编辑store.js文件2. 定义方法和基本的结构3. 编写SETSHPPING二、在项目中调用1. 触发相应的mutations2. 利用computed计算数量和总价的方法提示&#xff1a;本实战内容大部分为具体实现的思路&#xff0c;界面…

FRED应用:激光二极管的模拟

简介 当提及模拟激光二极管时&#xff0c;FRED软件具有极大的灵活性。在这篇应用笔记中&#xff0c;将会描述简单到详细的激光光源模型。最基本的模型是高斯TEM0,0模。更高级的模型包括在束腰上偏移和发散中的像散光束。激光也可以使用其M2因子表示。最后&#xff0c;可以创…

猿如意开发工具|Sublime Text(4126)

文章目录 一、猿如意是什么&#xff1f; 二、如何使用猿如意下载安装Sublime Text 三、总结 一、猿如意是什么&#xff1f; 猿如意是一款面向开发者的辅助开发工具箱&#xff0c;包含了效率工具、开发工具下载&#xff0c;教程文档&#xff0c;代码片段搜索&#xff0c;全网搜…

Azure DevOps Server 用户组加入 Azure AD Domain Service 管理用户

一&#xff0c;引言 今天我们继续讲解 Azure DevOps Server 的内容&#xff0c;对于管理用户组除了在 Azure DevOps Server 服务器上添加管理员方式外&#xff0c;还有没有其他方式&#xff0c;Azure DevOps 需要加入Azure ADDS 服务域后&#xff0c;Azure DevOps Server 的管理…

oh-my-zsh 为 ls 命令自定义颜色

ls 命令默认显示的颜色是&#xff1a; 白色&#xff1a; 表示普通文件 蓝色&#xff1a; 表示目录 绿色&#xff1a; 表示可执行文件 红色&#xff1a; 表示压缩文件 蓝绿色&#xff1a; 链接文件 红色闪烁&#xff1a;表示链接的文件有问题 黄色&#xff1a; 表示设备文件 灰…

深入理解SR-IOV和IO虚拟化

一、背景 SR-IOV&#xff08;Single Root I/O Virtualization&#xff09;是由PCI-SIG组织定义的PCIe规范的扩展规范《Single Root I/O Virtualization and Sharing Specification》&#xff0c;目的是通过提供一种标准规范&#xff0c;为VM&#xff08;虚拟机&#xff09;提供…

ProcessDB实时/时序数据库——ODBC之连接数据库

目录 前言 一、安装ProcessDB-ODBC驱动 1.下载ProcessDB-ODBC驱动 2.安装ProcessDB-ODBC驱动 二、配置ProcessDB数据源 三、JAVA连接ProcessDB数据库 前言 ProcessDB实时/时序数据库支持ODBC连接数据库&#xff0c;接下来将和大家分享下如何使用ODBC操作ProcessDB实时/时…

基于Java Web的传智播客crm企业管理系统的设计与实现

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下&#xff0c;你想解决的问…

tinymce富文本编辑器做评论区

今天分享一下tinymce富文本编辑器做评论区的全过程。 文章目录一、介绍1.最终效果2.功能介绍3.主要项目包版本介绍&#xff1a;二、每个功能的实现1.自定义toolbar的功能区①对应的样式以及意义②对应的代码实现【忽略了一切非实现该功能的代码】2.展示、收起评论区①对应的样式…

软件测试面试技巧:如何提高面试通过率?这3点一定要做到

对于想要进入到软件测试岗的新手人员来说&#xff0c;面试这一关是非常重要的&#xff0c;它直接关系着你的去留&#xff0c;也关系后续的期待遇问题&#xff0c;那么&#xff0c;有没有什么技巧可以帮忙提高面试通过率呢&#xff1f; 关于这一问题答案&#xff0c;我从这几个方…

Java自动化测试调试中遇到的问题

前言:记录下遇到的问题 Java自动化测试在调试中遇到的问题总结 1、遇到的Waring:must be unique [WARNING] dependencies.dependency.(groupId:artifactId:type:classifier) must be unique: com.vertica.jdbc:vertica-jdbc:jar -> duplicate declaration of version 10.…

数商云供应链管理系统助力化工行业企业实现客户订单管理可视化

订单管理是现代企业商务业务的重要组成部分&#xff0c;可以帮助企业解决订单管理低效、混乱等问题。随着产业互联网时代的到来&#xff0c;越来越多企业放弃传统费时费力的手动操作&#xff0c;开始应用数字化的管理工具来提高企业订单管理的水平。这里以化工行业企业为例&…

RabbitMQ 快速入门七种简单模式

RabbitMQ 快速入门七种简单模式起步七种模式项目依赖1、"Hello World!"(1) Connection 方式(2) RabbitTemplate 方式2、Work Queues生产者消费者3、Publish/Subscribe关系绑定生产者消费者4、Routing消费者生产者5. Topics消费者生产者6、RPC7、Publisher Confirms起…

09 更真实的云原生:Kubeadm实际搭建多节点的Kubernetes集群

文章目录1. 前言2. 什么是 kubeadm&#xff1f;2.1 kubeadm 介绍2.2 kubeadm 原理3. kubeadm 实验环境的架构是什么样的?3.1 Master 节点3.2 Worker 节点3.3 辅助节点3.4 安装前的准备工作3.4.1 修改主机名3.4.2 修改 Docker 配置3.4.3 修改网络设置3.4.4 修改交换分区4. 安装…

Android -- 每日一问:如何理解 Android 中的 Context,它有什么用?

经典回答 官方文档对于 Context 的解释&#xff1a; Interface to global information about an application environment. This is an abstract class whose implementation is provided by the Android system. It allows access to application-specific resources and cla…

Anaconda、Conda、pip、Virtualenv的区别

一、Anaconda 1.1 简介 Anaconda是一个包含180的科学包及其依赖项的发行版本。其包含的科学包包括&#xff1a;conda, numpy, scipy, ipython notebook等。 二、Conda 2.1 简述 conda是包及其依赖项和环境的管理工具。 适用语言&#xff1a;Python, R, Ruby, Lua, Scala, …