module music(clk,ret,fm,fm1,fm2);
input clk;
input ret;
output fm,fm1,fm2;
reg clk1;
reg clk2;
reg h,fm;
reg [9:0] cnt;
reg [5:0] cnt1;
reg [2:0] cnt2;
reg [2:0] cnt3;
reg [5:0] div;
parameter a=6'd50,
b=6'd40,
c=6'd30,
d=6'd20,
e=6'd10,
f=6'd5;
always @(posedge clk or posedge ret)
if(!ret)
begin
clk1<=0;
cnt1<=0;
end
else
if(cnt1==6'b111111)
begin
clk1<=~clk1;
cnt1<=0;
end
else
cnt1<=cnt1+1;
always @(posedge clk or posedge ret)
if(!ret)
begin
clk2<=0;
cnt2<=0;
end
else
if(cnt2==3'b111)
begin
clk2<=~clk2;
cnt2<=0;
end
else
cnt2<=cnt2+1;
always @(posedge clk1 or posedge ret)
if(!ret)
begin
fm<=0;
cnt<=0;
end
else if(cnt==10)
begin
fm<=~fm;
cnt<=0;
end
else
cnt<=cnt+1;
/* always @( posedge clk2 or posedge ret)
begin
if(!ret)
begin
cnt3<=0;
end
else
if(cnt3==3'b101)
cnt3<=0;
else
cnt3<=cnt3+1;
case(cnt3)
0: div=a;
1: div=b;
2: div=c;
3: div=d;
4: div=e;
5: div=f;
default : div=0;
endcase
end */
assign fm1=clk1;
assign fm2=clk2;
// assign fm=h;
endmodule
整个程序中 为什么 红 {MOD}的部分 我用clk产生的分频信号 clk1 去做被检测的时钟 fm 就没有输出;
而如果 我把 clk1 换成 clk 输出就是正常的 求教 !!
此帖出自
小平头技术问答
这个就是跨时钟域问题。
为了避免亚稳态出现和传递,在FPGA系统设计采用系统时钟触发。而不能用门控时钟触发!
这里你提到跨时钟域问题,我想学习一下在,
门控时钟? 是指的ret么? 不同步的时钟都是门控时钟么?
题外话:
南京华为 这周叫我去面试 自己说想做逻辑设计 但是 依照现在我这水平 心里没底啊!!我做到什么样子 能很自信的 去找一份满意的工作呢
一周热门 更多>