CPLD,晶振是50MHZ的,怎么能分频得出15M,求大神指点。最好是附上VHDL语言程序

如题所述

有3种办法:

    直接利用开发工具(Quartus II或者ISE)中的IP Core将50MHz的时钟信号分频至15MHz;

    先利用开发工具(Quartus II或者ISE)中的IP Core将50MHz的时钟信号3倍频至150MHz,然后再将其10分频,就得到15MHz的时钟分支信号了;

    采用锁相环技术设计非整数分频电路,参阅《FPGA/CPLD应用设计200例》(上册)p.354~357,北京航空航天大学出版社2009年出版。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-08-03
你可以通过例化模块来实现分频,这样的话不涉及编程序,简单些;要用编程的话,用Verilog 可以不?但是编程时的数值涉及小数(50/15),也不太准确;给你贴个之前写的50MHz分成1KHz的程序,参数你写改下,看能用不
module fenpinqi(clk,a);
input clk;
output a;
reg[21:0] cnt;
always @(posedge clk)
begin
if(cnt<=22'd49999)
cnt<=cnt+1'b1;
else
cnt<=22'd0;
end
assign a=(cnt<=22'd24999)?22'b0:22'b1;
endmodule追问

a,不行了,这样计数到初值然后触发输出的方法试过了,这么弄得话50M最大就是一分为二,也就检测一次跳变沿翻转一次,然后是分不到想要的15M了

追答

这样吧,你通过例化模块实现分频也可以,例化个分频模块,输入端设置成50MHz,输出端设置成15MHz,这样会更好实现些。之后你可以仿真下,看看效果对不对。

相似回答