|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
目的:掌握基本时序逻辑电路的实现 在verilog hdl中,相对于组合逻辑电路,时序逻辑电路也有规定的表述方式。在可综合的verilog hdl模型中,通常使用always块结构来表述时序逻辑。下面是一个1/2分频器的可综合模型。
//half_clk.v
//名称:1/2分频器
//功能:频率变为原来的一半
module half_clk(reset,clk_in,clk_out);
input clk_in,reset;
output clk_out;
reg clk_out;
always @(posedge clk_in)
begin
if(!reset) clk_out=0;
else clk_out=~clk_out;
end
endmodule
测试模块
//名称:半分频的测试模块
`timescale 1ns/100ps
`define clk_cycle 50
module clk_top;
reg clk,reset;
wire clk_out;
always # `clk_cycle clk=~clk;
initial
begin
clk=0;
reset=0;
#100 reset=0;
#100 reset=1;
#10000 $stop;
end
half_clk half_clk(.reset(reset),.clk_in(clk),.clk_out(clk_out));
endmodule
仿真结果图:
说明:
1、第一次仿真时候没有波形都是直线,后查明是因为单位时间和时间精度写的有误,将1ns/100ps, 写成了 1ns/1ps。因此波形出不来。
问:为什么1ns/1ps出不来波形呢,而1ns/100ps就可以正常出现波形呢???
|
|