Verilog刷题笔记16

news2025/1/9 16:43:54

题目:
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 用作硬件仿真语言时遗留下来的语法。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C# dataGridView 列的勾选框改变事件

dataGridView 增加一列 DataGridViewCheckBoxColumn 然后设置复选框值如下图: dataGridView增加两个事件 private void dataGridView1_CurrentCellDirtyStateChanged(object sender, EventArgs e){//提交改变,触发dataGridView1_CellValueChanged事件&…

【数学建模】2024年华数杯国际赛B题-光伏发电Photovoltaic Power 思路、代码、参考论文

1 问题背景 中国电力构成包括传统能源(如煤炭、石油、天然气)、可再生能源(如水电、风能、太阳能、核能)和其他形式的电力。这些发电模式在满足中国巨大的电力需求方面发挥着至关重要的作用。据最新数据显示,中国总发电量超过20万亿千瓦时,居世界第一。…

短信系统搭建主要因素|网页短信平台开发源码

短信系统搭建主要因素|网页短信平台开发源码 随着移动互联网的快速发展,短信系统已成为企业和个人进行信息传递的重要工具。建立一个高效可靠的短信系统对于企业来说非常重要。下面我们将介绍一些影响短信系统搭建的主要因素。 1. 平台选择:在搭建短信系…

嵌入式开发--STM32G4系列片上FLASH的读写

这个玩意吧,说起来很简单,就是几行代码的事,但楞是折腾了我大半天时间才搞定。原因后面说,先看代码吧: 读操作 读操作很简单,以32位方式读取的时候是这样的: data *(__IO uint32_t *)(0x080…

图片太模糊我们怎么提高清晰度呢

在数字时代,图片是我们日常生活中不可或缺的一部分。然而,有时候由于各种原因,我们得到的图片清晰度可能并不理想。这篇文章将介绍三款软件,帮助你提高图片的清晰度,让你的图片更加生动、清晰。 一、水印云 水印云是…

Qt网络通信

1. UDP通信 1.1 udp通信的基本流程 创建套接字 绑定套接字 进行通信 关闭套接字 涉及到的类和信号 QUdpSocket:Udp套接字类,类对象就是一个udp套接字对象 QHostAddress:ip地址类 void readyRead():信号,当有数据到达可…

码住!软件测试人员的基本有哪些?

在软件测试领域,许多人误以为软件测试只是简单的点点鼠标、看看屏幕就能完成。然而,软件测试的复杂性远不止于此。作为一名软件测试人员,你需要具备多项技能和素质来保证测试的有效性和质量。 打字技能可以事半功倍 打字是软件测试人员必备的…

2024年网络安全比赛--内存取证(超详细)

一、竞赛时间 180分钟 共计3小时 二、竞赛阶段 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 1.从内存文件中找到异常程序的进程,将进程的名称作为Flag值提交; 2.从内存文件中找到黑客将异常程序迁移后的进程编号,将迁移后的进程编号作为Flag值…

能做鬼脸、摇滚、自拍,听懂你说的话!GPT-4驱动的实体机器人

东京大学的研究人员将GPT-4模型,集成在实体机器人Alter3中,可将文本、语言直接转化成机器人动作,例如,做一个自拍动作;装一个“鬼样”;做一个摇滚音乐动作等,就连微笑、眨眼这样的面部表情动作也…

IOS-UIAlertController简单使用-Swift

UIAlertControlle时IOS的对话框控制器(警报控制器),简单使用方法如下: 步骤都一样,先是创建UIAlertController,然后创建UIAlertAction,再将UIAlertAction添加到UIAlertController中,…

SpringBoot项目中添加证书授权认证

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、项目场景二、方案思路三、实施流程1.引入库2.编写代码 四、拓展 一、项目场景 在上线的项目中,需要添加一个定时授权的功能,对系统的进…

Springboot 子工程构建完后无法找到springboot依赖

问题: 构建完子工程后无法找到SpringBootTest 解决方案: 最好用这个构建 https://www.cnblogs.com/he-wen/p/16735239.html 1.先观察项目目录 是否正确 2.观察子工程目录 3.看pom.xml中是否引用springboot依赖 4.检查代码 查看父项目是否包含子模块 查看子模块的父项目是否…

OB SQL引擎和存储引擎

文章目录 一 SQL引擎1.1 双模共存1.2 基本操作1.3 查看SQL的执行计划 二 存储引擎2.1 传统数据库存在的问题2.2 LSM-Tree存储2.3 OceanBase转储和合并2.4 控制内存数据落盘2.5 LSMTree存储压缩 三 备份恢复3.1 物理备份系统架构3.2 物理恢复系统架构 一 SQL引擎 1.1 双模共存 …

网安-入门永恒之蓝/黑

永恒之蓝 实验环境:win7,kali 实验目的:拿到win7管理员权限 扫描该网段 nmap -sP 192.168.164.0/24,查看win7ip,也可在win7上查询 扫描端口,445,永恒之蓝是通过445端口进行攻击的 masscan -…

个人网站制作 Part 8 添加电子邮件通知与社交媒体集成 | Web开发项目

文章目录 👩‍💻 基础Web开发练手项目系列:个人网站制作🚀 添加电子邮件通知🔨使用Nodemailer🔧步骤 1: 安装Nodemailer 🚀 社交媒体集成🔨使用社交媒体API🔧步骤 2: 集成…

多输入多输出 | Matlab实现基于LightGBM多输入多输出预测

多输入多输出 | Matlab实现基于LightGBM多输入多输出预测 目录 多输入多输出 | Matlab实现基于LightGBM多输入多输出预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 Matlab实现基于LightGBM多输入多输出预测(完整源码和数据) 1.data为数据集&a…

使用企业订货软件的担忧与考虑|网上APP订货系统

使用企业订货软件的担忧与考虑|网上APP订货系统 网上订货系统担心出现的问题 1,如果在订货系统中定错(多)货物了该怎么办 其实这也是很多人在网购或者是现实中经常会犯的一个错误,但是网上订货平台为大家提供了很多的解决方案,其中对于订单的…

腾讯云 腾讯云服务器 - 腾讯云 产业智变·云启未来

腾讯云服务器CVM提供安全可靠的弹性计算服务,腾讯云明星级云服务器,弹性计算实时扩展或缩减计算资源,支持包年包月、按量计费和竞价实例计费模式,CVM提供多种CPU、内存、硬盘和带宽可以灵活调整的实例规格,提供9个9的数…

jmeter-线程数设置为1,循环10次没问题,循环100次出现异常

一、多次尝试,发现出现异常的接口大致相同。 解决办法:在第一个出现异常的接口下添加超时时间,固定定时器:2000ms,再次运行就没问题了。 二、压力机自身存在的问题 1)在网络编程中,特别是在短…

IOS-数据持久化UserDefaults简单使用-Swift

UserDefaults通过key-value的一种持久化方案,以键值对的形式存储基本类型数据,类似与安卓的SharePreferences。 使用方式,首先就是要获取standerd let userDefaultUserDefaults.standard存取字符串 //存取字符串 var greeting "Hello…