Board logo

标题: cpld外部晶振的疑问 [打印本页]

作者: anotherchen    时间: 2006-7-25 16:06     标题: cpld外部晶振的疑问

如果cpld输入的时钟不是一个标准的脉冲


即每个周期都是一样的,但每一个周期内,高电平比低电平长


这样的时钟输入,会不会影响cpld的计数处理?

如:

always@(posedge clk)

begin

y=y+1;

if(y==8'b11111)

f=~f;

end

 


 

[此贴子已经被作者于2006-7-25 16:06:57编辑过]


作者: bemoon    时间: 2006-7-25 17:51

就是占空比不是50%的意思把,不会影响的。
顺便说一句,你的程序有点问题,边缘触发的always块里面最好用非阻塞赋值。
作者: stone133    时间: 2006-7-25 22:10

posedge 这个关键字的意思就是使用上升沿,所以他和你高电平持续时间没有关系,周期对了就可以了
作者: anotherchen    时间: 2006-7-26 09:32

多谢指点
然而实际中得出来的结果好像不一样
之前用很准确的时钟,就如bemoon所说占空比50%,程序计数后得出脉冲很准确
然后换上别的时钟,由于电容可能选择不对,占空比没有50%,每个周期应该是对的
但程序计数后得出脉冲就不准确了,得出的脉冲与计算的值相差10倍!!

顺便请问:32.768k的晶振,,电容值怎样选取?

to bemoon:always块最好用非阻塞赋值,是不是说阻塞的话
信号不是同时处理,可能会出现不想的结果?
作者: stone133    时间: 2006-7-26 13:12

lz说的32.768应该是一个晶体,而不是一个晶振,电容值不同,得到的结果会有微小的偏差,但是不会有10倍这样的误差,lz最好实测一下;
阻塞和不阻塞都可以用,但是要注意到他们的区别:阻塞是一条语句完成赋值就会生效,非阻塞是等语句都执行完,赋值才会同时生效;

作者: anotherchen    时间: 2006-7-26 16:43

晶体振荡器不就是晶振么?
我试过33p、103、104的电容
所产生出来的脉冲,相差可大了
33p的看不了,103是30us的脉冲,而104出来的是20ms
而且都是占空比不对称的

究竟用多大才对呢?

阻塞与非阻塞的定义明白,但具体用起来的区别究竟是什么呢?
作者: bemoon    时间: 2006-7-26 17:46

这么麻烦不如干脆用有源晶振好了。

作者: stone133    时间: 2006-7-26 18:27

晶体振荡器是晶振,可以不用任何外围电路,只要加电就可以输出时钟,而警惕必须要用外围电路(电容)来起振;
同意楼上的,干脆用晶振,也不贵,很好买,用起来也简单




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0