微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 请教:输入输出寄存的问题

请教:输入输出寄存的问题

时间:10-02 整理:3721RD 点击:
module keyled2 (keyin,ledout);
input  [7:0] keyin;
output [7:0] ledout;
reg [7:0] ledout_reg;
reg [7:0] buffer;
always @ (keyin)
begin
buffer=keyin;
case(buffer)
8'b11111110:ledout_reg=8'b11111110;
8'b11111101:ledout_reg=8'b11111100;
8'b11111011:ledout_reg=8'b11111000;
8'b11110111:ledout_reg=8'b11110000;
8'b11101111:ledout_reg=8'b11100000;
8'b11011111:ledout_reg=8'b11000000;
8'b10111111:ledout_reg=8'b10000000;
8'b01111111:ledout_reg=8'b00000000;
default:ledout_reg=8'b11111111;
endcase
end
assign ledout=ledout_reg;
endmodule
这个模块里ledout_reg是必要的吗,直接用ledout不是一样吗,
同样输入有必要寄存吗(buffer=keyin),都是纯组合的,又不存在时钟以同步的问题
谢谢指点

请教:输入输出寄存的问题
一样的,组合逻辑!

请教:输入输出寄存的问题
always中被赋值得永远都是reg,,
如果要省掉ledout_reg就要声明ledout为reg,,,
buffer是可以直接省掉的,,
!但省掉的永远都是描述上节省的,,
!物理资源(占用寄存器和门数)几乎没有任何变化

请教:输入输出寄存的问题
当然要了 
输出要被定义为 REG型才可以的
不然 默认为WIRE型
呵呵  班门弄斧了

直接用还好一些, 可能这样做是为了增加可读性吧

这样描述就是组合逻辑,没有寄存器。

no difference

个人感觉buffer可以省略掉,ledout_reg可应通过将keyin设为reg型省略,

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top