某一时钟clk和它的二分频clk_div2之间怎么互相切换
时间:10-02
整理:3721RD
点击:
注意是互相切换
同源时钟切换很简单,讲切换信号分别于需要切换的时钟下打一拍,然后与其与就可以了,只要保证sel信号和两个待切换信号是同步的就可以了,这个比异步时钟切换简单多了
如果要求无缝切,使用时钟无缝切换电路,如果没有无缝切换需求,直接mux选可以了。
按你的说法我写了如下代码,还请看一下:always @( posedge fosc or posedge rst )
begin
if ( rst )
fosc_ok <= 1'b1;
else
fosc_ok <= sel;
end
always @( posedge fosc_div2 or posedge rst )
begin
if ( rst )
fosc_div2_ok <= 1'b0;
else
fosc_div2_ok <= ~sel;
end
assign clk = ( fosc & fosc_ok ) | ( fosc_div2 & fosc_div2_ok );
sel 是clk时钟域产生的,有可能是fosc,也有可能是fosc_div2。sel是1时选择fosc。
