作者proach (p.roach)
站内Electronics
标题Re: [问题] 如何有效的缩减CPLD使用的PAL数?
时间Mon May 12 23:07:21 2008
※ 引述《icetofux (豆腐)》之铭言:
: 最近在进行CPLD期末作业的时候,发现一个问题,就是当CODE写完并且於软体上完成
: 模拟,准备DOWNLOAD到实习版时,发现所使用CPLD中的PAL数不够,於是针对CODE进
: 行修改。
: 修改的过程中我发现,并不是单纯的缩减功能就可以有效的减少PAL的使用量,有时
: 候删除某些功能使其工作量减少,却反而用掉更多的PAL;但是如果能减少REG的使用
: 量,则可以有效的减少使用的PAL数量,但我目前已经将能去除的REG都去除了,还是
: 不够用。
CPLD主要是由 registers, IO, Sum-of-Product网路所构成,新一点的
还会加上 PLL, SRAM...等东西,但在逻辑部分依旧是相同原理。
基本上这没有固定答案,大概给你几个建议。
1. 调整合成工具的选项,一定有 Optimization Speed or Area, 请调整为
往面积优化,应该还有不同努力程度可以试试看,有的时候会有反效果。
2. 尽量以 RTL所撰写,你只要负责 register的变化,之间的行为是
combinational logics, 现在的 compiler( synthesis tool)应该都比人脑聪明。
3. 注意你的信号,是否有可以共用的信号,而你的写法让tool无法优化,
例如 A, Abar, 都有使用到,这就会浪费一些资源。但这也很难说,
也许tool在使用 Abar的地方是以A的型态在运算的。
4. 翻一下 CPLD的 user's guide,了解你用的架构是几个输入的 Sum of Product,
假设是18 inputs, 就不该写 19 inputs的设计,这会让信号多绕一圈,而且
浪费资源。如果不能避开,则尽量想办法共用之。
ps.大部分宣称自己会 FPGA or CPLD的人,连最基本的 User's Guide与 Datasheets
都没看过..... orz
: 这个题目我想应该学长也有写过,所以我相信绝对有可以DOWNLOAD进实习版上的CPLD
: 容量大小的写法,但是因为这是作业,所以不太可能向老师去索取其他人写的CODE,
: 向老师询问减少PAL使用量的方法,似乎也没有比较正面的解答。
: 因为CODE写完後,於CPLD中的实际硬体规划是由软体在进行,所以我并不知到它到底
: 怎麽做的,所以想请问版上有经验的人,於CODE撰写的过程中,是不是有什麽小技巧
: 可以有效的减少PAL的使用量呢?
: 注1:PAL是我查WIKI中所记述的CPLD中单位,我不晓得这样形容是否恰当。
: 注2:我使用的语言为verilog。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.160.65.149
1F:推 horsehead:推推推推推 05/13 08:21