网站首页 > 技术教程 正文
简单来说硬件描述语言有两种用途:1、仿真,2、综合。
对于wire和reg,也要从这两个角度来考虑。
*********************************************************************************
从仿真的角度来说,HDL语言面对的是编译器(如Modelsim等),相当于软件思路。
这时:
wire对应于连续赋值,如assign
reg对应于过程赋值,如always,initial
*********************************************************************************
从综合的角度来说,HDL语言面对的是综合器(如DC等),要从电路的角度来考虑。
这时:
1、wire型的变量综合出来一般是一根导线;
2、reg变量在always块中有两种情况:
(1)、always后的敏感表中是(a or b or c)形式的,也就是不带时钟边沿的,综合出来还是组合逻辑
(2)、always后的敏感表中是(posedge clk)形式的,也就是带边沿的,综合出来一般是时序逻辑,会包含触发器(Flip-Flop)
在设计中,输入信号一般来说你是不知道上一级是寄存器输出还是组合逻辑输出,那么对于本级来说就是一根导线,也就是wire型。而输出信号则由你自己来决定是寄存器输出还是组合逻辑输出,wire型、reg型都可以。但一般的,整个设计的外部输出(即最顶层模块的输出),要求是寄存器输出,较稳定、扇出能力也较好。
为什么在verilog中要定义wire?
有几种情况变量需要定义成wire。
第一。assign 语句
例如:
reg a,b;
wire and_result;
...
assign and_result =a&&b;
你可以试试把wire定义成reg。综合器会报错。
第二。元件例化时候的输出必须用wire
例如:
wire dout;
ram u_ram
(
...
.out(dout)
...
);
wire按照国外的教材上面的定义:
wire为无逻辑连线。只做连线,wire本身是不带逻辑性的,所以输入什么输出就是什么。所以你尝试着用always语句对wire变量赋值。综合器就会报错。
那么你可能会问。assign c =a&&b不是就是对wire的赋值吗?
其实并非如此。综合器综合时将a&&b综合成ab经过一个与门。而c只是连接到与门输出的线。正真综合出与门的是&&。而不是c。
Abstract
Verilog初学者最常见的问题:『什么时候该用wire?什么时候又该用reg?』
Introduction
大体上来说,wire和reg都类似於C/C++的变数,但若此变数要放在begin...end内,该变数就须使用reg,在begin...end之外,则使用wire。
另外使用wire时,须搭配assign;reg则不必。
input,ouput,inout预设值都是wire。
若wire和reg用错地方,compiler都会提醒,所以不必太担心。
一个很重要的观念,在Verilog中使用reg,并不表示合成後就是暂存器(register)。若在组合电路中使用reg,合成後仍只是net,唯有在循序电路中使用reg,合成後才会以flip-flop形式表示成register。
猜你喜欢
- 2024-11-11 石油钻具螺纹表示方法(石油钻头规格尺寸大全)
- 2024-11-11 SimReg:回归是自我监督知识提炼的一个简单而有效的工具
- 2024-11-11 如何保存SOLIDWORKS系统设置及问题排查
- 2024-11-11 一分钟技巧:把手机号、邮箱注册过的App全挖出来!放心换号码
- 2024-11-11 REG.CN冲刺100万域名 你抢红包 我送靓号!
- 2024-11-11 手机换号注意这10条(手机换号注意些什么)
- 2024-11-11 [干货]光纤通信之缩略语英汉对照表
- 2024-11-11 kobold产品更新:REG-恒流阀-低成本优化调节
- 2024-11-11 金·卡戴珊对侃爷冷静,却为31岁非裔男星心碎,离婚后迷古装剧
- 2024-11-11 电脑Regsvr32使用方法(regsvr32.exe)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)