CrazyBingo

1Hz ~~ 250MHz的感觉

0
阅读(2773)

做频率计,高频的,250M 左右没问题,再次测试,可是实验室没有20M以上的信号源给我用,怎么办办呢??

在嚎啕大哭的时候,难言,只能用FPGA产生频率给CPLD 来接收,250M没问题吧。

CLK_Deaign = Matlab_Keys + CLK_Generater;

在这个过程中发现了好多问题

(1) Matlab_Keys

(2) CLK_Generater: 两个PLL 不能同时由一个CLK供给时钟。

(3) 低频不能控制高频,否则没响应,就连选择器都有问题,因此 最好用最高时钟来控制

(4) Case语句可以这样写

case(Mode)

4'd0,4'd1,4'd2,4'd3,4'd4,4'd5,4'd6,4'd7,4'd8,4'd9,4'd10:

CLK_OUT = CLK_OUT_r;

。。。。。。。

(5) PLL输出时钟,我选择性的输出,只能用组合逻辑,时序逻辑不行,没响应

always@(posedge CLOCK_50 or negedge RST_n)

begin

case(Mode)

4'd11: CLK_OUT <= CLK_50MHz;

4'd12: CLK_OUT <= CLK_100MHz;

4'd13: CLK_OUT <= CLK_150MHz;

4'd14: CLK_OUT <= CLK_200MHz;

4'd15: CLK_OUT <= CLK_250MHz;

default:CLK_OUT <= CLK_OUT;

endcase

end

这样是严重不行的,虽然只是简单的选择器,但是输出的时钟最低的50M和敏感时钟一样,另外的都比他高,造成无法控制

(6) 《深入浅出婉转FPGA》上有一章节说 FPGA全局时钟的事情,他说:

“Cyclone 系列旗舰基本都是2个PLL,除了EP1C3,Cyclone系列旗舰的全局时钟网络分配情况:PLL1只能由CLK0,CLK1供给,PLL2只能由 CLK2,CLK3供给,否则,出错;PLL c0,c1只能作为内部时钟,e0只能最为外部时钟,否则出错”

我现在用的是CII 怎么可以输出呢???而且我用的是CLK0.CLK4,没问题


(7) 有一位高人告诉我,每个CLK都能作为输入,而且都能输出的,我自己测试出来也是这样的,所以,暂时相信我自己。

/*生成CLK_OUT 1~250MHz*/

always@*

begin

case(Mode)

4'd0,4'd1,4'd2,4'd3,4'd4,4'd5,4'd6,4'd7,4'd8,4'd9,4'd10:

CLK_OUT = CLK_OUT_r;

4'd11: CLK_OUT = CLK_50MHz;

4'd12: CLK_OUT = CLK_100MHz;

4'd13: CLK_OUT = CLK_150MHz;

4'd14: CLK_OUT = CLK_200MHz;

4'd15: CLK_OUT = CLK_250MHz;

endcase

end

(8) 这是 CII 的DS上面的,意思貌似也是只能是CLK0,CLK1,CLK2,CLK3作为时钟输入,看起来好像是这样的,但是……


我PLL1 给的是CLK0, PLL2 给的是CLK4,我需要的效果都出来的,没出现问题啊!

(9) 完了 暂时就这么点想法了,到时候,在加。。

(10) 怪不得,我用的刚好是CLK0,CLK4,RP不错


(11) 

好像pdf上是说,C0,C1内部时钟,c2外部时钟,但是我的工程用组合逻辑之后怎么都可以呢、??

(12)未完待续

(13)