搜索
bottom↓
回复: 23

CPLD输出几HZ的方波怎样实现才能耗资源最少?

[复制链接]

出0入0汤圆

发表于 2015-11-4 16:37:31 | 显示全部楼层 |阅读模式
用CPLD实现几HZ的方波,如果采用计数方法太浪费资源了,怎么做才能最省资源?

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2015-11-4 18:30:06 | 显示全部楼层
计数           

兰州拉面,最便宜也要6块钱

出0入0汤圆

发表于 2015-11-4 18:43:54 | 显示全部楼层
把时钟频率,降低...

出0入0汤圆

发表于 2015-11-4 20:07:21 | 显示全部楼层
没有,不管用什么方法都需要计数,只是计数方法不同而已。试一下DDS的计数方式

出0入22汤圆

发表于 2015-11-4 20:08:17 | 显示全部楼层
时钟输入32k,然后分频应该比较少了。

出0入4汤圆

发表于 2015-11-4 20:12:09 | 显示全部楼层
外面加个电容充放电?喝多了,不知所云,哈哈

出20入186汤圆

发表于 2015-11-4 20:54:59 | 显示全部楼层
时钟输入尽量低,比如时钟输入32K有源晶振,这样分频位数就少了,

出0入0汤圆

发表于 2015-11-4 21:03:49 | 显示全部楼层
几Hz用便宜8位单片机可以了,还省电

出0入0汤圆

 楼主| 发表于 2015-11-4 21:55:30 | 显示全部楼层
RAMILE 发表于 2015-11-4 18:30
计数           

兰州拉面,最便宜也要6块钱

这里用CPLD肯定不止使用这个功能,否则也不用CPLD了,现在问的问题不是问采用什么方案,而是用CPLD实现这样功能最省

出0入0汤圆

 楼主| 发表于 2015-11-4 21:56:42 | 显示全部楼层
yuyu87 发表于 2015-11-4 20:54
时钟输入尽量低,比如时钟输入32K有源晶振,这样分频位数就少了,

时钟固定的情况下,如何实现,听别人说用多个计数器级联,比一个计数器要省

出0入0汤圆

 楼主| 发表于 2015-11-4 21:57:19 | 显示全部楼层
NJ8888 发表于 2015-11-4 21:03
几Hz用便宜8位单片机可以了,还省电

这个我知道,但是这里CPLD还有其他特殊用途

出0入0汤圆

发表于 2015-11-5 16:13:17 | 显示全部楼层
貌似只能计数吧

出0入0汤圆

发表于 2015-11-5 16:45:59 | 显示全部楼层
linbo411 发表于 2015-11-4 21:56
时钟固定的情况下,如何实现,听别人说用多个计数器级联,比一个计数器要省 ...

省不了。

出0入0汤圆

发表于 2015-11-5 16:50:29 | 显示全部楼层
楼主详细说下你的问题,时钟输入是多少,CPLD型号是多少,输出频率是多少
你大概问我们也只能大概回答
最佳方案应该是使用PLL降频,然后再用计数器分频

出0入0汤圆

 楼主| 发表于 2015-11-5 19:34:47 | 显示全部楼层
蓝色风暴@FPGA 发表于 2015-11-5 16:50
楼主详细说下你的问题,时钟输入是多少,CPLD型号是多少,输出频率是多少
你大概问我们也只能大概回答
最佳 ...

CPLD  型号EPM570T100C5N  输入时钟10M,输出频率5HZ

出0入0汤圆

发表于 2015-11-6 09:20:45 | 显示全部楼层
linbo411 发表于 2015-11-5 19:34
CPLD  型号EPM570T100C5N  输入时钟10M,输出频率5HZ

这个芯片没看到PLL,只能用计数器方式,10M->5HZ,至少要用21个LE

出0入0汤圆

发表于 2015-11-9 22:21:26 | 显示全部楼层
蓝色风暴@FPGA 发表于 2015-11-6 09:20
这个芯片没看到PLL,只能用计数器方式,10M->5HZ,至少要用21个LE

计数器方式用以下程序
reg [20:0] counter;
always @(posedge clk)
if( counter==(2000_000-1) ) begin counter <= 0;out<=~out; end
else counter <= counter+1;
占用44个LE
与21个LE相差甚大,不知你21个LE是怎么做的?

出0入0汤圆

发表于 2015-11-10 10:22:34 | 显示全部楼层
zaldy30 发表于 2015-11-9 22:21
计数器方式用以下程序
reg [20:0] counter;
always @(posedge clk)

你这种做法进位链需要占用额外的LE,因为LE是四输入的
要省资源的做法是就用21个LE串联,前面一个LE的输出作为后面一个LE的输入

不过怎么感觉有点钻牛角尖,做了那么多年FPGA,资源从来不是要考虑的问题

出0入0汤圆

发表于 2015-11-10 17:42:16 | 显示全部楼层
蓝色风暴@FPGA 发表于 2015-11-10 10:22
你这种做法进位链需要占用额外的LE,因为LE是四输入的
要省资源的做法是就用21个LE串联,前面一个LE的输 ...

学习了,谢谢!
不过LE串联只能得到2的n次方分频,如何得到任意分频?如果另外加逻辑,就复杂了。

出0入0汤圆

发表于 2015-11-12 09:36:49 | 显示全部楼层
外接一個計數器吧!

出0入0汤圆

发表于 2015-11-13 09:18:20 | 显示全部楼层
楼主,我绝对不相信,既然用了EPM570,不会连这么个计数器都变成非常耗资源的东西.
如果非要省,可以多个计数器级联,虽然D触发器会浪费一点,但是组合逻辑会少一些

出0入0汤圆

 楼主| 发表于 2015-11-13 09:28:26 | 显示全部楼层
xiaobenyi 发表于 2015-11-13 09:18
楼主,我绝对不相信,既然用了EPM570,不会连这么个计数器都变成非常耗资源的东西.
如果非要省,可以多个计数器 ...

不是因为我上次做个分频,内部耗了27%资源,所以我怕再写点东西就不够了?

出0入0汤圆

 楼主| 发表于 2015-11-13 09:29:11 | 显示全部楼层
xiaobenyi 发表于 2015-11-13 09:18
楼主,我绝对不相信,既然用了EPM570,不会连这么个计数器都变成非常耗资源的东西.
如果非要省,可以多个计数器 ...

我的意思怎么写才是最省,这个也是优化设计

出0入0汤圆

发表于 2015-11-13 15:28:16 | 显示全部楼层
linbo411 发表于 2015-11-13 09:29
我的意思怎么写才是最省,这个也是优化设计

其实怎么写才最省,这个基本上无止境的
你可以写几个版本试试
肯定都是计数器,只是分几级,以及每级分多少分频系数
就是触发器与组合逻辑的折中
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 02:22

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表