Verilog刷题笔记16

题目:
Since digital circuits are composed of logic gates connected with wires, any circuit can be expressed as some combination of modules and assign statements. However, sometimes this is not the most convenient way to describe the circuit. Procedures (of which always blocks are one example) provide an alternative syntax for describing circuits.

For synthesizing hardware, two types of always blocks are relevant:

Combinational: always @(*)
Clocked: always @(posedge clk)
Combinational always blocks are equivalent to assign statements, thus there is always a way to express a combinational circuit both ways. The choice between which to use is mainly an issue of which syntax is more convenient. The syntax for code inside a procedural block is different from code that is outside. Procedural blocks have a richer set of statements (e.g., if-then, case), cannot contain continuous assignments, but also introduces many new non-intuitive ways of making errors. *(*Procedural continuous assignments do exist, but are somewhat different from continuous assignments, and are not synthesizable.)

For example, the assign and combinational always block describe the same circuit. Both create the same blob of combinational logic. Both will recompute the output whenever any of the inputs (right side) changes value.
assign out1 = a & b | c ^ d;
always @(*) out2 = a & b | c ^ d;
在这里插入图片描述
在这里插入图片描述
我的解法:

// synthesis verilog_input_version verilog_2001
module top_module(
    input a, 
    input b,
    output wire out_assign,
    output reg out_alwaysblock
);
	assign out_assign=a&b;
    always @(*) out_alwaysblock=a&b;
endmodule

结果正确:
在这里插入图片描述
此题考查两种赋值方法:
两种类型:

output wire out_assign
output reg out_alwaysblock

对应两种不同赋值方法:

	assign out_assign=a&b;
    always @(*) out_alwaysblock=a&b;

关于 wire 与 reg 的说明:赋值语句的左侧必须是 net 类型(例如,wire),而过程赋值的左侧(在 always 块中)必须是变量类型(例如,reg)。这些类型(wire 与 reg)与合成的硬件无关,只是 Verilog 用作硬件仿真语言时遗留下来的语法。

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

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

相关文章

TA百人计划学习笔记 2.8FlowMap流动效果

资料 源视频 【技术美术百人计划】图形 2.8 flowmap的实现——流动效果实现_哔哩哔哩_bilibili PPT 2800flow map 参考笔记 2.8 flowmap的实现——流动效果实现 语雀UV映射(纹理映射) 对一个贴图进行纹理查找,就要用到uv坐标 理解&#x…

排序算法8----归并排序(非递归)(C)

1、介绍 归并排序既可以是内排序(在内存上的数据排序),也可以是外排序(磁盘上)(硬盘)(在文件中的数据排序)。 其他排序一般都是内排序。 区别于快速排序的非递归&#xf…

Find My相机|苹果Find My技术与相机结合,智能防丢,全球定位

相机是一种利用光学成像原理形成影像并使用底片记录影像的设备,是用于摄影的光学器械。相机让我们能够记录下美丽的风景和珍贵的时刻。当我们到达一个迷人的地方,或者经历了一个特别难忘的时刻时,我们可以使用照相机来拍摄照片,记录下这些美好的回忆。照相机可以帮助…

软件测试面试200问(含答案)

🍅 视频学习:文末有免费的配套视频可观看 🍅 关注公众号【互联网杂货铺】,回复 1 ,免费获取软件测试全套资料,资料在手,涨薪更快 1、B/S架构和C/S架构区别 B/S 只需要有操作系统和浏览器就行&a…

数据守护盾牌:敏感数据扫描与脱敏,让安全合规无忧

前言 在信息时代,数据已经成为企业和组织的核心资产,其价值与日俱增。然而,随着数据使用的普及和复杂度的提升,数据安全与合规问题也变得越来越突出。敏感数据的保护显得尤为重要,因为这些数据一旦泄露或被不当使用&a…

redis数据安全(一)数据持久化

一、Redis数据安全措施: 1、将数据持久化至硬盘 2、将数据复制至其他机器; 复制是在数据持久化的基础上进行的。 二、将数据持久化至硬盘 1、介绍:Redis是一个基于内存的数据库,它的数据是存放在内存中,内存有个问题就是关闭…

世微AP8660B 微小型升压型 DC/DC 调整器

产品概述 AP8660B是一款微小型、高效率、升压型 DC/DC 调整器 。电路由电流模COT 控制环路,误差放大器,斜坡补偿电路 ,比较器和功率开关等模块组成。该芯片可在较宽负载范围 内高效稳定的工作,内置一个 2.5A 的功率开关和软启动保…

LaTeX 多栏文档 Multiple columns如何插入图片并修改样式

在今天写报告的时候用到了 latex 的多栏列表,插入图片的时候感觉很无助 如果不喜欢让Latex自动安排图片位置,可以使用float包,然后可以使用\begin{figure}[H]。 记得提前导入这个包 \usepackage{float} 为了让我的图片的caption居中&#xf…

c语言-库函数memcpy()、memmove()、memcmp()、memset()介绍

文章目录 前言一、库函数memcpy()1.1 memcpy()介绍1.2 memcpy()模拟实现 二、库函数memmove()2.1 memmove()介绍2.2 memmove()模拟实现 三、库函数memcmp()3.1 memcmp()介绍 四、库函数memset()4.1 memset()介绍 总结 前言 本篇文章介绍c语言库函数memcpy()、memmove()、memcm…

物联网与智慧城市的无界未来:如何打破传统束缚,开启智能生活新篇章

目录 一、物联网:连接万物的技术革命 1、物联网的发展历程 2、物联网的核心技术 二、智慧城市:未来城市的蓝图与挑战 1、智慧城市的蓝图 2、智慧城市建设面临的挑战 3、应对挑战的措施 三、物联网与智慧城市的融合:打破传统束缚&…

Linux进程【3】fork函数与进程等待(超详解哦)

fork与进程等待 引言forkfork创建子进程的过程写时拷贝 进程等待waitwaitpid阻塞等待与非阻塞轮询 总结 引言 fork函数在Linux中是一个非常重要的系统调用接口!它用于在当前的已有进程中创建一个新的进程(子进程)。再由父子进程并发地执行不…

nodejs下载安装

一、node下载安装 官网下载 官网 根据自己电脑系统选择合适的版本进行下载,我这里选择window 64 位 下载完点击安装 打开cmd查看安装 此处说明下:新版的Node.js已自带npm,安装Node.js时会一起安装,npm的作用就是对Node.js…

2024年外贸新兴市场有哪些 | 箱讯科技国际贸易平台

当前欧美市场经济增速放缓,通胀持续高位导致物价普遍上涨,进一步引发消费疲软。此外,受原材料价格、劳动力、土地等经营成本上升影响,外贸出口企业利润被进一步压缩。 困顿之中,新兴市场成为破局关键,巨大的…

基于Python flask的猫眼电影票房数据分析可视化系统,可以定制可视化

技术方案 猫眼电影票房数据分析可视化系统是基于Python Flask框架开发的一款用于分析和展示猫眼电影票房数据的Web应用程序。该系统利用Flask提供了一个简单而强大的后端框架,结合Request库进行网络爬虫获取猫眼电影票房数据,并使用Pyecharts进行可视化…

【前后端的那些事】评论功能实现

文章目录 聊天模块1. 数据库表2. 后端初始化2.1 controller2.2 service2.3 dao2.4 mapper 3. 前端初始化3.1 路由创建3.2 目录创建3.3 tailwindCSS安装 4. tailwindUI5. 前端代码编写 前言:最近写项目,发现了一些很有意思的功能,想写文章&…

Elasticsearch8 集群搭建(二)配置篇:(1)节点和集群配置

安装完Elasticsearch后,需要对其进行配置,包括以下几部分:节点和集群配置、系统配置、安全配置。 此篇记录节点和集群配置的内容,后续将更新系统配置和安全配置。 节点和集群配置: 通过编辑/usr/local/elasticsearc…

Midjourney Prompt 常用参数列表

完整参数列表 参数名称调用方法使用案例注意事项V5V4V3niji版本在关键词后加空格,然后带上版本参数: --v 或者 —v--version 或者 —versionvibrant california poppies --v 5版本仅支持 1、2、3、4、5。长宽比在关键词后加空格,然后带上长…

大寒吃什么食物养生?养生食物清单记在手机便签更方便

随着冬季的深入,我们迎来了二十四节气中的最后一个——大寒。寒风凛冽,白雪皑皑,这是大自然在提醒我们,要更加注重身体的保养。而大寒时节,选择对的食物,就显得尤为重要。 每到大寒,我都会精心…

L1-035 情人节(Java)

以上是朋友圈中一奇葩贴:“2月14情人节了,我决定造福大家。第2个赞和第14个赞的,我介绍你俩认识…………咱三吃饭…你俩请…”。现给出此贴下点赞的朋友名单,请你找出那两位要请客的倒霉蛋。 输入格式: 输入按照点赞…

C++代码入门02:Vector中的push_back

图源:文心一言 上机题目练习整理,本篇作为线性表的代码补充,提供了两种(差别并不大)算法,供小伙伴们参考~🥝🥝 第1版:在力扣新手村刷题的记录 方法一:自己写…