1. 时序逻辑代码设计和仿真
组合逻辑+触发器=时序逻辑
1.1 计数器
代码:
module con( clk , res , y);
input clk;
input res;
output[7:0] y;
reg[7:0] y;//触发器,register。触发器定义成reg型变量,才能在awalys里面赋值
wire[7:0] sum;//+1运算的结果;assign赋值,wire型变量
assign sum=y+1;//组合逻辑部分
always@(posedge clk or negedge res)//敏感变量为时钟和复位沿
if(~res) begin
y<=0;//res为低时y寄存器复位;触发器复位时动作
end
else begin
y<=sum;//触发器正常工作时的动作,可以不定义sum,直接用y<=y+1
end
endmodule
Test bench:
//Test bench of counter
`timescale 1ns/10ps
module con;
reg clk,res;
wire[7:0] y;
con con(
.clk(clk),
.res(res),
.y(y)
);
initial begin
clk<=0;res<=0;