linbo411 发表于 2015-11-4 16:37:31

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

用CPLD实现几HZ的方波,如果采用计数方法太浪费资源了,怎么做才能最省资源?

RAMILE 发表于 2015-11-4 18:30:06

计数         

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

wuzhpo720 发表于 2015-11-4 18:43:54

把时钟频率,降低...

gnocy 发表于 2015-11-4 20:07:21

没有,不管用什么方法都需要计数,只是计数方法不同而已。试一下DDS的计数方式

zxq6 发表于 2015-11-4 20:08:17

时钟输入32k,然后分频应该比较少了。

snkaka 发表于 2015-11-4 20:12:09

外面加个电容充放电?喝多了,不知所云,哈哈

yuyu87 发表于 2015-11-4 20:54:59

时钟输入尽量低,比如时钟输入32K有源晶振,这样分频位数就少了,

NJ8888 发表于 2015-11-4 21:03:49

几Hz用便宜8位单片机可以了,还省电

linbo411 发表于 2015-11-4 21:55:30

RAMILE 发表于 2015-11-4 18:30
计数         

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

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

linbo411 发表于 2015-11-4 21:56:42

yuyu87 发表于 2015-11-4 20:54
时钟输入尽量低,比如时钟输入32K有源晶振,这样分频位数就少了,

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

linbo411 发表于 2015-11-4 21:57:19

NJ8888 发表于 2015-11-4 21:03
几Hz用便宜8位单片机可以了,还省电

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

幸福的鱼 发表于 2015-11-5 16:13:17

貌似只能计数吧

RUANJI 发表于 2015-11-5 16:45:59

linbo411 发表于 2015-11-4 21:56
时钟固定的情况下,如何实现,听别人说用多个计数器级联,比一个计数器要省 ...

省不了。

蓝色风暴@FPGA 发表于 2015-11-5 16:50:29

楼主详细说下你的问题,时钟输入是多少,CPLD型号是多少,输出频率是多少
你大概问我们也只能大概回答
最佳方案应该是使用PLL降频,然后再用计数器分频

linbo411 发表于 2015-11-5 19:34:47

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

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

蓝色风暴@FPGA 发表于 2015-11-6 09:20:45

linbo411 发表于 2015-11-5 19:34
CPLD型号EPM570T100C5N输入时钟10M,输出频率5HZ

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

zaldy30 发表于 2015-11-9 22:21:26

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

计数器方式用以下程序
reg 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是怎么做的?

蓝色风暴@FPGA 发表于 2015-11-10 10:22:34

zaldy30 发表于 2015-11-9 22:21
计数器方式用以下程序
reg counter;
always @(posedge clk)


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

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

zaldy30 发表于 2015-11-10 17:42:16

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

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

Jach 发表于 2015-11-12 09:36:49

外接一個計數器吧!

xiaobenyi 发表于 2015-11-13 09:18:20

楼主,我绝对不相信,既然用了EPM570,不会连这么个计数器都变成非常耗资源的东西.
如果非要省,可以多个计数器级联,虽然D触发器会浪费一点,但是组合逻辑会少一些

linbo411 发表于 2015-11-13 09:28:26

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

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

linbo411 发表于 2015-11-13 09:29:11

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

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

xiaobenyi 发表于 2015-11-13 15:28:16

linbo411 发表于 2015-11-13 09:29
我的意思怎么写才是最省,这个也是优化设计

其实怎么写才最省,这个基本上无止境的
你可以写几个版本试试
肯定都是计数器,只是分几级,以及每级分多少分频系数
就是触发器与组合逻辑的折中
页: [1]
查看完整版本: CPLD输出几HZ的方波怎样实现才能耗资源最少?