这是一段待仿真的代码,里面调用的两个子代码作用都是分频,一个是把50M分成10M,一个是把10M分成100k
module double(clk50M,clk10M,clk100K,rst);
input clk50M;
input rst;
inout clk10M;
output clk100K;
clkDiv10 m0(.clk50M(clk50M),.rst(rst),.clk10M(clk10M));
clkDiv m1(.clk10M(clk10M),.rst(rst),.clk100K(clk100K));
endmodule
然后给它加testbench文件
`timescale 1ns/1ns
`include "clkDiv10.v"
`include "clkDiv.v"
module double_tb ;
wire clk10M ;
reg clk50M ;
reg rst ;
wire clk100K ;
always #10 clk50M=~clk50M;
initial
begin
clk50M=0;
rst=0;
#100 rst=1;
#100 rst=0;
#10000 $stop;
end
double
DUT (
.clk10M (clk10M ) ,
.clk50M (clk50M ) ,
.rst (rst ) ,
.clk100K (clk100K ) );
endmodule
结果是仿真出来的分频波形有10M的,但没有100k的,苦思不得其解,望高手指点迷津!
回复 楼主 nevertosaynever 的帖子
你看仿真波形中m1模块的输入clk10M有波形吗? inout双向端口很容易出问题的