您的位置:首页 > 其它

数字电路设计之时钟控制器实例

2014-07-26 09:20 78 查看
在计算比如y1=a;y2=y1这样的计算的时候如果使用组合逻辑的阻塞赋值就可以实现,但是在有时钟的时序逻辑里面要完成这个的话就需要一些技巧。因为在时序逻辑里面都是使用非阻塞赋值。

module clk_model(

input wire clk,

input wire rst,

input wire [7:0] a1,

output reg [7:0] y1,

output reg [7:0] y2

);

reg [2:0]cnt;

always@(posedge clk) begin

if(!rst) begin

cnt <= 0;

y1 <= 0;

y2 <= 0;

end

else begin

if(cnt == 2'b11)

cnt <= 2'b00;

else

cnt <= cnt + 1'b1;

case(cnt)

2'b00: begin

y1 <= y1 + 1;

y2 <= y2;

end

2'b01: begin

y1 <= y1;

y2 <= y1 + 1;

end

default: begin

y1 <= y1;

y2 <= y2;

end

endcase

end

end

endmodule
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: