关于cpld实现uart的问题
时间:10-02
整理:3721RD
点击:
肯请高手指点:
小弟用想用maxII系列的cpld——epm570 做个uart,uart带了输入、输出两个缓冲区(都是8×16的)。结果,我的设计占用的逻辑单元接近500个!epm570的570个逻辑单元只做了个uart,就消耗殆尽了!
我试着将两个fifo去掉,占用的逻辑单元只有173个了,这就是说我用到的fifo太耗逻辑资源了(每个fifo占用约150个逻辑单元),这两个fifo的代码是我自己写的。我看了一下quartusII自带的fifo功能块,相同规模的前提下,它也耗用了168个逻辑单元!
刚玩cpld,对自己编写的Verylog程序没把握,请大侠们帮小弟释疑:是不是用cpld实现一个简单的uart就要付出这么高的代价啊?还是我的程序写的太烂了?
请大家多多指教啊,先拜谢了!
小弟用想用maxII系列的cpld——epm570 做个uart,uart带了输入、输出两个缓冲区(都是8×16的)。结果,我的设计占用的逻辑单元接近500个!epm570的570个逻辑单元只做了个uart,就消耗殆尽了!
我试着将两个fifo去掉,占用的逻辑单元只有173个了,这就是说我用到的fifo太耗逻辑资源了(每个fifo占用约150个逻辑单元),这两个fifo的代码是我自己写的。我看了一下quartusII自带的fifo功能块,相同规模的前提下,它也耗用了168个逻辑单元!
刚玩cpld,对自己编写的Verylog程序没把握,请大侠们帮小弟释疑:是不是用cpld实现一个简单的uart就要付出这么高的代价啊?还是我的程序写的太烂了?
请大家多多指教啊,先拜谢了!
写逻辑和写软件程序是不一样的,写逻辑的时候你要心理清除你写出来的代码大概会生成什么样的硬件电路
answerdou ,
请问:
cpld里实现1bit的寄存器是需要一个索存器的,而maxII的一个LE只有一个所存器,所以每实现1bit的一个寄存器就会消耗一个LE,对吗?
除去fifo,其他的模块为什么需要那么多register呢
我也刚接触uart,大家共同进步