依旧是以i2c为例
基本仿真都是以信号定义->产生时钟->产生激励->模块例化
1、信号定义
这里全部统一 1、输入定义为reg型 2、输出定义为wire型
3、双向口定义为wire(必须使用三态门)(例如 assign sda = sda_out_en?sda_out:1'bz;
assign sda_in = sda;)
2.产生时钟
时钟有多钟写法
(1)parameter T=20 //定义时钟周期
initial begin
clk = 0 ;//初始值为零
end
always #(T/2)clk = ~clk ;
如果觉得麻烦
(2)直接
always #10 clk=~clk
这是我平时用的最多的写法
3、产生激励(复位定义)
激励根据自己需求写 #代表延时的
例如
initial begin
rst =1 ;
# T*20 //延时20个周期
rst =0 ;
#T*100 //再延时100个周期
end
(这里只例举了一种最简单的写法,特殊激励总共还有好多,如果需要可以私信我扣扣1316256023)
4.例化
例化都是一样的,就不在赘述