我也发表个东西:使用CPLD进行倍频
关于倍频,大家都认为应该用PLL才能实现,不过我用CPLD实现了,不记得用了几个门了,大约要三四十个单元,这个倍频的作用范围大约是5MHZ到25MHZ吧,如果要更低频率,就需要更多的单元原理是DLL,延迟门,我是参考了台湾一个大学的论文的,当时要做个倍频,用外部PLL电流很大而且电路复杂点,这算是比较完美的解决
点击此处下载armok01144385.rar INCLUDE "DLLMUX.INC";
INCLUDE "DLLMUX2.INC";
SUBDESIGN LCDtttt
(
CLOCK:INPUT;
DBCLK:OUTPUT;
)
VARIABLE
DLLNODE:LCELL;
MUXSEL:DFF;
DFMUX:DLLMUX;
DOUTX:DLLMUX2;
XORPD:NODE;
BEGIN
DLLNODE.IN=DLLNODE.OUT;
DLLNODE0.IN=CLOCK;
DFMUX.DATA=DLLNODE.OUT;
DFMUX.SEL[]=MUXSEL[]-1;
DOUTX.DATA=DLLNODE.OUT;
DOUTX.SEL[]=MUXSEL;
MUXSEL[].CLK=CLOCK;
IF XORPD THEN
MUXSEL[].D=MUXSEL[]-1;
ELSE
MUXSEL[].D=MUXSEL[]+1;
END IF;
XORPD=CLOCK$DFMUX.RESULT;
DBCLK=CLOCK$DOUTX.RESULT;
END;
用AHDL写的,因为当时是用于LCD的时钟,所以起名叫LCDtttt,起名的问题总是很头大,如果要试验20次,估计我的单元名字要叫LCDtttttttttttttttttt了
最后液晶稳定地显示了,真开心 谢谢。
里面有三个文件:
DLLMUX.INC
DLLMUX2.INC
LCDTTTT.TDF
是如何打开的? 使用MAXPLUS BASELINE, 要用到倍频时,把LCDtttt当作一个宏单元就可以了,LCDtttt里包含了DLLMUX和DLLMUX2
呵呵,主要是DLL的思想比较神奇,通过输出和输入的XORPD运算,计算应该选择哪个输出 我把那个论文也传上来吧,是个POWERPOINT文件
点击此处下载armok01144386.rar 台湾人说“类比电路”,就是我们说的“模拟电路”的意思 就是利用数电设计时尽量要避免的竞争与冒险。 最近正在搞倍频,谢谢楼主分享! 不用这么复杂吧.边沿触发方式, 每用一个宏or寄存器可以做到 2 倍频. 谢谢分享! 楼主,你的CPLD倍频程序,能否用VHDL重写一下,AHDL看不懂。 外加rc,用硬件延时,占用更少 谢谢楼主,下载台湾的论文看看,AHDL看不懂,只有自己用VHD写了 ,哈哈 哦哦哦 学习 mark 已经验证过,可以实现将11M倍频到22M,用的是AHDL,不知道怎么变成Verilog HDL语言。 mark 学习 用AHDL VHDL 或者verilog 软件哈 支持 都是牛人啊 mark mark 学习
页:
[1]