【verilog 设计】 reg有没有必要全部赋初值?

2024-04-17 11:28

本文主要是介绍【verilog 设计】 reg有没有必要全部赋初值?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、前言

在知乎发现“reg有没有必要全部赋初值”这个问题,与自己近期对Verilog reg的进一步学习相契合,此文对这个问题进行总结。

二、reg的初值赋值方式

就语法意义赋初值而言,就是在声明reg时对其赋值。在工程中,对于数字系统的初始化一般是在上电后使用全局复位变量来实现的,也即利用复位信号来赋初值。

三、reg是否有必要全部赋初值

由于verilog不仅用于ASIC,还用于FPGA,关于reg是否需要全部赋初值又与这两个应用方向二存在差异。

3.1 FPGA场景下reg赋初值

3.1.1 FPGA reg赋初值方式选择

在声明reg变量时对其赋初值,寄存器初值可以靠上电时给对应存储单元置位,可以做初值置位。此外也可以通过复位来赋初值。

但如果只靠声明时赋初值,而不用复位赋初值时,整个系统需要复位重启时,这时FPGA只能通过重新上电来获取处置,这是比直接拉复位信号麻烦的,甚至在某些系统中不可实现的。

如果用复位赋初值,则声明变量时赋初值则完全没必要,因为数字系统一般上电后紧接着就是给一个复位信号。

因此,fpga场景下最好还是采用复位赋初值的方式来实现。

3.1.2 reg是否需要全部赋初值

此处对reg是否全部赋初值等价是否全部的reg都需要复位逻辑。我在之前自己编写的代码中基本上是全部都写了复位逻辑,但最近也看到了别人写不复位的寄存器,因此引发了对是否需要对全部reg赋初值的思考。

首先,全部复位是完全可以的(如果FPGA资源时序允许的话),这样电路复位后的状态是完全可知的,可以避免电路刚上电是出现X态。

其次,控制流需要复位,数据流不进行复位,保证所有数据寄存器在使用前被正确数据覆盖也是可以的。这时上电带来的随机值(X态)对电路功能并没有影响,而且当电路设计错误时,保留X态的传播可以让开发者在波形上更快的发现错误,加快调试进程。另一方面,没有复位逻辑的寄存单元,也可以减少复位信号的扇出,对功耗面积布线都是好处的。

至于,具体是否需要全部编写复位逻辑,可以根据具体的应用场景需求和可用资源而决定。

3.2 ASIC场景下reg赋初值

3.2.1 ASIC reg赋初值方式

对于ASIC来说,在声明reg时赋初值毫无意义,不同于FPGA查找表方式,数字电路并没有某种机制让这个寄存器在一开始确定为某个值。在声明reg时赋初值虽然不算不可综合但是也没哪家的cell上能生效。因此对于ASIC而言,都是通过上电复位来实现赋初值的。

3.2.2 reg 是否需要全部赋初值

这点与FPGA场景下的思路是一致的。

四、参考资料

Verilog reg有没有必要全部初始赋值? - 知乎 (zhihu.com)

这篇关于【verilog 设计】 reg有没有必要全部赋初值?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/911672

相关文章

在线装修管理系统的设计

管理员账户功能包括:系统首页,个人中心,管理员管理,装修队管理,用户管理,装修管理,基础数据管理,论坛管理 前台账户功能包括:系统首页,个人中心,公告信息,论坛,装修,装修队 开发系统:Windows 架构模式:B/S JDK版本:Java JDK1.8 开发工具:IDEA(推荐) 数据库版本: mysql5.7 数据库可视化工具: navicat 服务器:SpringBoot自带 ap

DDei在线设计器-API-DDeiSheet

DDeiSheet   DDeiSheet是代表一个页签,一个页签含有一个DDeiStage用于显示图形。   DDeiSheet实例包含了一个页签的所有数据,在获取后可以通过它访问其他内容。DDeiFile中的sheets属性记录了当前文件的页签列表。   一个DDeiFile实例至少包含一个DDeiSheet实例。   本篇最后提供的示例可以在DDei文档直接预览 属性 属性名说明数

基于Springboot + vue 的抗疫物质管理系统的设计与实现

目录 📚 前言 📑摘要 📑系统流程 📚 系统架构设计 📚 数据库设计 📚 系统功能的具体实现    💬 系统登录注册 系统登录 登录界面   用户添加  💬 抗疫列表展示模块     区域信息管理 添加物资详情 抗疫物资列表展示 抗疫物资申请 抗疫物资审核 ✒️ 源码实现 💖 源码获取 😁 联系方式 📚 前言 📑博客主页:

比较学习难度:Adobe Illustrator、Photoshop和新兴在线设计平台

从入门设计开始,几乎没有人不知道 Adobe 公司两大设计软件:Adobe Illustrator和 Photoshop。虽然AI和PS很有名,有一定设计经验的设计师可以在早期探索和使用后大致了解AI和PS的区别,但似乎很少有人会系统地比较AI和PS。目前,设计软件功能多样,轻量级和网页设计软件已成为许多设计师的需求。对于初学者来说,一篇有针对性的AI和PS比较总结文章具有非常重要的指导意义。毕竟

基于Java医院药品交易系统详细设计和实现(源码+LW+调试文档+讲解等)

💗博主介绍:✌全网粉丝10W+,CSDN作者、博客专家、全栈领域优质创作者,博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌💗 🌟文末获取源码+数据库🌟 感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人  Java精品实战案例《600套》 2023-2025年最值得选择的Java毕业设计选题大全:1000个热

展厅设计主要的六大要素

1、从创意开始      展示设计的开始必须创意在先。根据整体的风格思路进行创意,首先要考虑的是主体的造型、大小高度位置以及它和周围展厅的关系。另外其他道具设计制作与运作方式也必须在创意中有明确的体现。      2、平面感      平面感是指对展示艺术设计平面图纸审美和功能两个方面理性的感觉认识。它是三维空间设计认识的基础,也是施工的重要依据。展示空间的设计应先在展场环境的平面

办理河南建筑工程乙级设计资质的流程与要点

办理河南建筑工程乙级设计资质的流程与要点 办理河南建筑工程乙级设计资质的流程与要点主要包括以下几个方面: 流程: 工商注册与资质规划:确保企业具有独立法人资格,完成工商注册,并明确乙级设计资质的具体要求,包括注册资本、人员配置、技术条件等。 专业技术人员配置: 雇佣或签约符合资质要求的专业技术人员,包括但不限于:一级注册结构工程师2名、一级注册建筑师2名、注册暖通工程师1名、注册供配电工

CSS背景属性:打造丰富视觉效果的背景设计

在网页设计中,背景是创建视觉吸引力和设置页面基调的重要元素。CSS提供了多种背景属性来控制元素的背景样式,包括颜色、图像、尺寸、位置和重复方式。本文将详细介绍CSS中的背景属性,包括background简写属性以及background-color、background-image、background-repeat、background-position和background-size等属性。

爱心商城管理系统的设计

管理员账户功能包括:系统首页,个人中心,管理员管理,企业管理,用户管理,论坛管理,商品管理,公告管理,用户捐赠 企业账户功能包括:系统首页,个人中心,商品管理,论坛管理,公告管理,公益企业管理,轮播图信息 开发系统:Windows 架构模式:B/S JDK版本:Java JDK1.8 开发工具:IDEA(推荐) 数据库版本: mysql5.7 数据库可视化工具: navicat 服务器:

周末设计高端企业_集团官网主题Discuz模板

风格名称: 周末设计_高端企业_集团官网 适用版本: Discuz! X3.0、X3.1、X3.2、X3.3、F1.0 风格编码: 使用语言包结构,适合全部编码 周末设计高端企业_集团官网主题Discuz模板