集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 6682|回复: 16

用verilog编写时,在同一个顶层文件下的两个程序,想共用一个一位寄存器

[复制链接]
FFT 发表于 2010-6-28 00:41:57 | 显示全部楼层 |阅读模式
请教:用verilog编写时,在同一个顶层文件下的两个程序,想共用一个一位寄存器,这个寄存器不作为输出输入管脚,只是内部的变量寄存器,请问应该怎么定义这个寄存器的属性,或者应该怎样做?<br>
<br>
我的做法:定义了在一个程序中设置一个一位寄存器,但不设为input或者output,置位后,另外一个程序调用这个寄存器的结果,但调用不成功,请指教,感谢
CHA 发表于 2010-6-28 01:01:11 | 显示全部楼层
寄存器类型" reg " 只能在" always" 块中赋值.
UFO 发表于 2010-6-28 01:38:18 | 显示全部楼层
请问如果想在一个程序中做一个变量,然后另外一个程序根据这个变量再对其他变量付值,应该怎样做这个中间变量?谢谢指点
encounter 发表于 2010-6-28 01:41:51 | 显示全部楼层
always@(.....)begin<br>
&nbsp;&nbsp;if(你定义的那个寄存器)begin<br>
&nbsp; &nbsp;&nbsp; &nbsp;......<br>
&nbsp;&nbsp;end<br>
&nbsp;&nbsp;else begin<br>
&nbsp; &nbsp;&nbsp;&nbsp;......<br>
&nbsp;&nbsp;end<br>
end<br>
是不是这个意思?<br>
<br>
assign a=(你定义的那个寄存器)?&nbsp;&nbsp;( 逻辑1) : (逻辑2);<br>
这样也可以, 表示如果你定义的那个寄存器不为0时, 执行逻辑1, 否则执行逻辑2.
CHANG 发表于 2010-6-28 02:49:21 | 显示全部楼层
是这个意思,我在case语句中对寄存器a进行付值,在另外的一个程序中判断a的值来对其他的变量付值<br>
就是这个中间寄存器a脱节,达不到预期的目的<br>
你的意思是:用assign语句可以判断a的值,然后对其他变量付值,对吗?<br>
thx
interi 发表于 2010-6-28 03:03:29 | 显示全部楼层
学习了 谢谢
HDL 发表于 2010-6-28 03:37:21 | 显示全部楼层
如果是两个.v文件怎么可能不通过接口达到一个文件访问另一个文件中的变量的目的?
encounter 发表于 2010-6-28 04:27:14 | 显示全部楼层
应该需要吧
tim 发表于 2010-6-28 05:27:18 | 显示全部楼层
4楼正解
HANG 发表于 2010-6-28 05:36:44 | 显示全部楼层
原帖由 skycanny 于 2006-9-21 12:05 发表<br>
4楼正解 我觉得4楼的说法应该是只适用于同一个文件中的两个always语句结构
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2025-5-6 22:55 , Processed in 0.067203 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表