这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » FPGA » 为什么还要再次定义寄存器变量呢?

共8条 1/1 1 跳转至

为什么还要再次定义寄存器变量呢?

助工
2009-03-27 09:09:33     打赏
module compare_n ( X, Y, XGY, XSY, XEY);
input [width-1:0]  X, Y;
output  XGY,  XSY, XEY;
reg   XGY,  XSY,  XEY;
parameter width = 8;
 
always @ ( X or Y )                    //  每当 X 或 Y 变化时
 begin
          if ( X = = Y )
                   XEY = 1;         // 设置X 等于Y的信号为1
          else  XEY = 0;
             
          if (X > Y)
                   XGY = 1;         // 设置X 大于Y的信号为1
          else  XGY = 0;
             
          if (X < Y)
                     XSY = 1;       // 设置X 小于Y的信号为1
          else     XSY =  0;
 end
endmodule 




在上面比较器的程序中, XGY,  XSY, XEY已经定义为输出,为什么还要从新定义为寄存器变量呢?



关键词: 为什么     还要     再次     定义     寄存器     变量    

高工
2009-03-27 10:18:11     打赏
2楼
输出只是IO方向,与信号类型无关,output可以是wire,也可以是reg,input都是wire。默认是wire型,可不写,但reg型必须要写明。

助工
2009-03-27 15:23:16     打赏
3楼

学习了................


助工
2009-03-30 09:18:10     打赏
4楼
wire是不能赋值的,程序中需要对输出赋值

高工
2009-03-30 21:35:09     打赏
5楼

wire是在assign中赋值的,reg是在always里赋值的。 但上例中的XGY,  XSY,  XEY综合得到的是线而不是寄存器。


助工
2009-03-31 10:10:45     打赏
6楼
不错,学习了!

院士
2009-04-02 13:25:31     打赏
7楼

Jason_Zhang很厉害的说


高工
2009-04-04 22:42:07     打赏
8楼

其实我也很业余,很菜鸟的。


共8条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]