Re: [問題] 如何有效的縮減CPLD使用的PAL數?

看板Electronics作者 (p.roach)時間16年前 (2008/05/12 23:07), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《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

05/13 08:21, , 1F
推推推推推
05/13 08:21, 1F
文章代碼(AID): #18A5qgLF (Electronics)
文章代碼(AID): #18A5qgLF (Electronics)