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

如题所述

Verilog中输入变量不可以用reg类型,这是因为输入信号对你来说,你无法改变它的值,你只能应用这个值,所以说,你的这种想法根本无法实现。如果你想改变的话,可以在这个输入信号的上一级来做。
我不是很清楚你到底想做什么,还是仅仅问这个问题?如果你是做什么的话,就要改变思路了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-24
输入信号是可以寄存的,但是需要设计一个寄存器。如果是在语言中编写的话,就需要一个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型变量了。而输入对于本模块而言是不能控制的,所以只能在其变化或者到达边沿的时候编程,通过寄存器进行保存。

本回答被提问者采纳
第2个回答  2011-12-11
verilog里一般不声明输出类型的话 默认是wire型的如果你想在输出处寄存一下c3是reg型,你这个主函数是个testbench,子函数a,b,cin在testbench里面追问

没有能明白。我是新手。。很多概念理解不了。。我只想搞懂能不能把输入信号寄存一下呀?

第3个回答  2011-12-13
需要用always块
相似回答