数字电路设计之时钟控制器实例
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
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
相关文章推荐
- 数字信号在不同时钟域间同步电路的设计
- Verilog HDL 与数字电路设计
- 时钟——黑盒测试用例设计实例
- html5 canvas js(数字时钟)实例代码
- 数字电路设计之ARM的thumb指令中的POP和PUSH指令
- 数字电路设计之奇偶分频的verilog实现
- 数字电路设计中的亚稳态及其解决方法
- 数字电路设计之verilog的define和parameter
- 数字电路设计之五级流水线设计(CPU)
- 数字电路设计之低功耗设计方法五:门控
- html5 canvas js(数字时钟)实例代码
- 电子电路课程设计——8位数字抢答器设计论文
- 数字电路、单片机的抗干扰设计。成功的经验之谈
- 关于数字电路的设计方法的进一步认识
- 完整版 VHDL设计数字电子时钟
- 我的Android进阶之旅------>Android Widget 桌面数字时钟(DigtalClockWidget)实例
- 流水线技术在高速数字电路设计中的应用
- 时钟使能电路的设计
- 数字电路设计之循环右移的verilog实现
- 数字电路设计之堆栈的verilog实现