Verilog中输入变量能用REG型吗?是不是input a;和reg a;在一个程序中就是连在一起的?可以用reg b;再b=a吗

 我来答
小弯弯呢B2
2011-12-12 · TA获得超过393个赞
知道小有建树答主
回答量:112
采纳率:0%
帮助的人:123万
展开全部
Verilog中输入变量不可以用reg类型,这是因为输入信号对你来说,你无法改变它的值,你只能应用这个值,所以说,你的这种想法根本无法实现。如果你想改变的话,可以在这个输入信号的上一级来做。
我不是很清楚你到底想做什么,还是仅仅问这个问题?如果你是做什么的话,就要改变思路了。
lzback1
推荐于2017-11-24 · TA获得超过2951个赞
知道小有建树答主
回答量:496
采纳率:0%
帮助的人:690万
展开全部
输入信号是可以寄存的,但是需要设计一个寄存器。如果是在语言中编写的话,就需要一个reg型的中间变量来存储输入的input变量。
但是,是寄存器就需要触发,所以对应的,在verilog里最简单的办法就是利用always@()语句,将括号里的敏感变量设置为关于input的电平或者沿触发。
例如电平触发,always@(input1)begin input2<=input1 end
假设input1是输入变量的话,令input2是reg型变量即可。
欢迎追问~
追问
第一种情况:input input1;reg input1;第二种情况:input input1;reg input2;always@(input1)begin input2<=input1;end第一种情况也应该always@(input1)begin input1<=input1;end对吧?输出就不需要是吗?我的理解对吗。。不甚感激!
追答
不是很明白你的意思,输入变量,也就是input1是不能为reg型的,这是verilog里的设定,如果不满足会报错。
至于输出变量和中间变量,就可以视情况任意改为reg型变量了。而输入对于本模块而言是不能控制的,所以只能在其变化或者到达边沿的时候编程,通过寄存器进行保存。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
waist663
2011-12-11 · 贡献了超过242个回答
知道答主
回答量:242
采纳率:0%
帮助的人:112万
展开全部
verilog里一般不声明输出类型的话 默认是wire型的如果你想在输出处寄存一下c3是reg型,你这个主函数是个testbench,子函数a,b,cin在testbench里面
追问
没有能明白。我是新手。。很多概念理解不了。。我只想搞懂能不能把输入信号寄存一下呀?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友ffe94ff
2011-12-13
知道答主
回答量:48
采纳率:0%
帮助的人:17.6万
展开全部
需要用always块
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式