verilog中wire一般什么时候应用?

作者&投稿:闳采 (若有异议请与网页底部的电邮联系)
我想请问:在verilog语言中,输出什么时候用wire型,什么时候用reg型??~

verilog里一般不声明输出类型的话 默认是wire型的
如果你想在输出处寄存一下:比如使用always时序语句,则必须声明为reg类型
wire是线网,就是相当于实际中的连接线,你想assign的话就是直接连接,就是用wire型,他的值是随时变化的。比如你想寄存一下,让信号在时钟边沿才变化就需要reg类型了,在程序中用带时钟的always块来实现即可

另外需要注意的是reg型变量不一定是寄存器,因为时序逻辑现在也基本上使用always @*这种语言来写,只是必须被声明为reg型。

输出用wire型的其实并不多,具体情况比如:两给信号的与或等简单逻辑。稍微复杂的即使是组合逻辑也要声明reg型,然后在程序里面用always块来实现组合逻辑

wire 表示连接线,即始终都是后边这个逻辑关系。


即SSEL_active始终为SSELr[1]取反后的结果。

有几种情况变量需要定义成wire。
第一。assign 语句
例如:
reg a,b;
wire and_result;
...
assign and_result =a&&b;
你可以试试把wire定义成reg。综合器会报错。

第二。元件例化时候的输出必须用wire
例如:
wire dout;

ram u_ram
(
...
.out(dout)
...
);

据你上面所说,wire就是连线的意思,一般在assign语句,或是模块例化,就是上面两种情况下使用。

如果只写output[7:0] out,就是wire型,默认是wire型。

至于你所说“如果再特别补充一句reg out的话,就是reg型了?”
答案是不一定的,主要是看你是否想寄存一级,若用于组合逻辑的always块中,一般综合成wire型,如果是时序电路,则是reg型的寄存器。

一般reg,用于always块中,而wire用于上述两种情况,记住就ok了

有几种情况变量需要定义成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。

wire就是导线啊. verilog中有显性定义和隐性定义的区别. 好比protel里画电路, 有些导线上你标了D0, D1, ... 有些导线你没标, 自动赋了N03781096, 不声明不等于它不需要或不存在, 事实上大量存在. 在verilog里面, 你可以用wire 声明特定的导线名称, 多用于testbench互联(即无寄存的直连). 我以前用它(alias)做倒序转化后赋值给一组reg, 可以精简代码.

输出变量如果没有特别声明,默认是wire型;

要在always模块里赋值,必须是寄存器变量。要用assign赋值,必须是wire型。output自动就是wire型。不知道说清楚了么


浙江省高一教材英语词汇
crash \/krAF\/ n.(树倒下的)哗啦声 cherry \/'tFeri\/ n.樱桃 anger \/'ANgE\/ n.发怒 dozen \/'dQzn\/ n.一打,十二个 emperor \/'empErE\/ n.皇帝 care \/k\/E\/ vi.&vt.关心,留心 care for 关心;照顾;喜欢 cheat \/tFi:t\/ n.骗子 vt.骗 vi.欺诈 weave \/'wi:v\/ vt.织;编 weaver \/'wi:vE\/ ...

250分悬赏 哪位知道文件的扩展名的含义,用途(越全越好)
MIM,MIME,MME Internet邮件扩展格式的多用途文件,经常作为发送e-mail时在AOL里附件而创建的文件;在一个多区MIM文件里的文件能用WinZip或其他类似程序打开 J MLI 3D Studio的材料库格式文件 })yQ)q MMF Meal Master格式;一个处方类格式;Microsoft邮件文件 b+ MMG 超过20\/20表或集会数据文件 0<\/!,0 MMM Micr...

windows 系统中扩展文件名的含意
MIM,MIME,MME Internet邮件扩展格式的多用途文件,经常作为发送e-mail时在AOL里附件而创建的文件;在一个多区MIM文件里的文件能用WinZip或其他类似程序打开 J MLI 3D Studio的材料库格式文件 })yQ)q MMF Meal Master格式;一个处方类格式;Microsoft邮件文件 b+ MMG 超过20\/20表或集会数据文件 0<\/!,0 MMM Micr...

FTisland虚爱的歌词(中文和罗马音)
相信着你的爱 ni sa lang eri mi dao nen dai 一切都是谎言 maodu da kao ji ma li ya 都是谎言 ta kao ji ma li ya 你的爱情是谎言 nao ai sa lang en ta kao ji ma li ya 这样疼痛 yi to log a pu gai hai sao 让我悲伤 让我流泪 失去的爱情 nari siri pu gai hai sao wurili gu...

谁有高一英语词汇的列表啊~~~不要登陆就可以下载的要...
theory \/'WiEri\/ n.理论;原理Pisa \/'pi:zE\/ n.比萨(意大利城市)lean \/li:n\/ vi.&vt.(使)倾斜;靠leaning \/'li:niN\/ adj.倾斜的tower \/'tauE\/ n.塔foot \/fut\/ n.英尺at the same time 同时;但,然而again and again 再三地,反复地result \/ri'zQlt\/ n.结果;效果unless \/'Qn'les\/ conj.除非...

文件都有哪些格式,都要用什么样的软件打开,各个软件主要做是用来做什么...
ERI ERWin文件ERR 当RobooHELP帮助编译器企图编译一个帮助系统源文件时用来存储错误消息的文件EPX ERWin文件ESPS ESPS音频文件EUI Ensoniq ESP家族的压缩磁盘映像EVY 特使文档EWL Microsoft Encarta文档EXC Microsoft Word禁止字字典EXE 可执行文件(程序)F FORTRAN文F2R Farandoyle线性模块格式F3R Farandoyle分块线性模块...

h5中div属性加载不出背景图片
iVBORw0KGgoAAAANSUhEUgAAAToAAAA4CAYAAABt\/TTjAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAC6lJREFUeNrtnUuS3MYRQHkEHAFHQIRt2aL4AUUfAJvx0CZFgj+vcQQcAeH1LLB2OBztsBWyQ5RdoiXr5wUWPgCWXmItRTSMHlczIEyhKqsqs1A9k4sMfmYaXd1VeMh\/3hrH8Zat\/PLfv00nq...

我想知道多一点的扩展名的知识
IV Open Inventor中使用的文件格式 ^]\\ IVD 超过20\/20微观数据维数或变量等级文件 No,IVP 超过20\/20的用户子集配置文件 Cnr IVT 超过20\/20表或集合数据文件 2 IVX 超过20\/20微数据目录文件 l?FmS IW Idlewild屏幕保护程序 "=3 IWC Install Watch文档 )T J62 Ricoh照相机格式 _i> am JAR ...

沈河区13070432536: 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)...); ...

沈河区13070432536: 我想请问:在verilog语言中,输出什么时候用wire型,什么时候用reg型?? -
伯戚亚宁: verilog里一般不声明输出类型的话 默认是wire型的 如果你想在输出处寄存一下:比如使用always时序语句,则必须声明为reg类型 wire是线网,就是相当于实际中的连接线,你想assign的话就是直接连接,就是用wire型,他的值是随时变化的....

沈河区13070432536: verilog中什么时候用reg定义. -
伯戚亚宁: verilog变量中用的最多的就是reg,其次是wire. 基于时序逻辑的时候就用reg,组合逻辑一般用wire. always中只能用reg,才能对其赋值.

沈河区13070432536: verilog 中wire的用法 -
伯戚亚宁: reg 寄存器型 wire 线型 wire 赋值用 assign 使用符号 = 例如:wire a; assign a = 1; reg 赋值 必须在 时序逻辑块中,使用符号 <= 例如: reg b; always(posedge clk) b <= 1; 可以想象 : wire 一根线,没有存储能力,即时改变值; reg 一个小房子,能存储上一次值,需要在clk的驱动下改变值.

沈河区13070432536: verilog HDL中wire和reg的区别 -
伯戚亚宁: wire表示直通,即输入有变化,输出马上无条件地反映(如与、非门的简单连接).reg表示一定要有触发,输出才会反映输入的状态.reg相当于存储单元,wire相当于物理连线.reg表示一定要有触发,没有输入的时候可以保持原来的值,但不...

沈河区13070432536: verilog中reg和wire类型的区别 -
伯戚亚宁: verilog中reg和wire类型的区别 wire类型一般用于assign语句赋值,reg类型一般用于always块中,不能用assign赋值

沈河区13070432536: verilog中reg和wire类型的区别和用法 -
伯戚亚宁: wire是线网型,可以相当于一根导线相连,wire型变量可以作为连续赋值中的左值,也可以作为过程赋值语句中的右值;reg是寄存器类型,相当于一个寄存器,可以作为过程赋值语句中的左值和右值.

沈河区13070432536: verilog中reg和wire的区别 -
伯戚亚宁: reg相当于存储单元,wire相当于物理连线. Verilog 中变量的物理数据分为线型和寄存器型.这两种类型的变量在定义时要设置位宽,缺省为1位.变量的每一位可以是0,1,X,Z.其中x代表一个未被预置初始状态的变量或者是由于由两个或多个驱...

沈河区13070432536: Verilog语言reg型变量和wire型变量° -
伯戚亚宁: 简单一点说.REG 用于时序逻辑,WIRE用于组合逻辑. reg 用于 always @ (posedge clk) 的always 块中.wire 用于 assign W_xx = xx&&yy&&zz 中.

沈河区13070432536: verilog语句中wire型和reg的区别 -
伯戚亚宁: reg是寄存器,在硬件里面是映射到一个寄存器实体的,具体操作去了解一下寄存器的操作方法,比如D触发器.wire只是一个数据标识,并不开辟物理内存.assign不可以给reg赋值.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网