第四节 时序逻辑代码设计与仿真(计数器和伪随机码发生器)
一、计数器
1.什么叫做时序逻辑电路
由组合逻辑 + 触发器 = 时序逻辑
注意:如果要构成触发器(trigger),必须要有时钟信号和复位信号,且两个signal必须为边沿触发。
2.原理图
3.Verilog设计代码
module counter( clk, rst_n, y ); input clk,rst_n; output reg [7:0] y; //wire [7:0] sum; //assign sum = y+1 ; always @(posedge clk or negedge rst_n) begin if (!rst_n) //negative edge reset begin y <= 0; end else begin // y <= sum; y <= y+1; end end endmodule
4.测试代码
//testbench of the counter module `timescale 1ns/1ns module counter_testbench(); reg CLK,RST_N; wire [7:0] Y; counter U1( .clk(CLK), .rst_n(RST_N), .y(Y) ); initial begin #0 CLK <= 0; RST_N <= 0; #17 RST_N <= 1; #500 $stop; end always #5 CLK <= ~CLK; //时钟周期为10ns endmodule
5.测试结果