FPGA至簡(jiǎn)設計法高效設計[1241003385]

發(fā)布時(shí)間:2018-9-20 09:19    發(fā)布者:luckyb1
至簡(jiǎn)設計法高效設計
上一節我們描述了明德?lián)P的通用設計方法。在闡述案例過(guò)程中,我們畫(huà)出了大量的波形圖。有讀者可能會(huì )問(wèn),在工作中,我們是不是也需要先大量地畫(huà)波形圖,再來(lái)寫(xiě)代碼呢?
不是的!工作中,我們要設計的系統更加的復雜,一個(gè)模塊的信號也非常地多,如果我們每個(gè)模塊都要畫(huà)波形圖,這不是明德?lián)P提倡的至簡(jiǎn)設計。何況,信號一天,畫(huà)出來(lái)的波形信號也是相當地多,也容易迷糊當中。
上一節我們畫(huà)的波形圖,主要是為了讓讀者更清晰地理解功能、計數器和信號的關(guān)系。如果我們牢記明德?lián)P的規則,我們的設計將非常簡(jiǎn)單。我們要做的不是波形設計,而是功能設計。
功能設計就是根據功能需求,編寫(xiě)我們的設計代碼。我們以上一節中的案例4為例,說(shuō)明什么叫功能設計。
案例4的功能要求是:當收到en=1時(shí),dout間隔1個(gè)時(shí)鐘后,產(chǎn)生2個(gè)時(shí)鐘周期的高電平脈沖,并且重復3次。
由題意可知,要對“間隔”和“高電平”個(gè)數進(jìn)行計數,但沒(méi)有信號表示“高隔”,為此想出補充一個(gè)信號flag_add,用來(lái)表示計數區域。間隔時(shí)間+高電平時(shí)間,得到計數器數3個(gè)。
                              
我們看到重復3次這一句話(huà),這就說(shuō)明還有一個(gè)計數器計數重復的次數。自然地想到,每完成一次就加1,一共加3次。得到代碼如下。
在設計計數器0的時(shí)候,新增了信號flag_add。那進(jìn)一步思考,什么時(shí)候要產(chǎn)生動(dòng)作,那就讓flag_add1。自然,從題意可知,en==1是開(kāi)始,重復次數完了,那就結束,不用再產(chǎn)生信號。所以flag_add代碼。
最后我們再來(lái)設計dout,由題意可知,每次均是間隔1個(gè)之后dout1,2個(gè)時(shí)鐘之后變0。那用什么來(lái)數這個(gè)12呢?cnt0。綜合起來(lái),就是說(shuō)cnt0數到1個(gè)后,dout1,數完后變0。
總結:從功能的文字描述中出發(fā),根據功能要求來(lái)設計代碼。在設計時(shí),一定要理解清楚信號的因果關(guān)系,例如為什么變0,為什么變1,從功能說(shuō)明中找答案。經(jīng)常訓練這種思考和設計方式,幾分鐘就能設計出精妙的代碼,而且因果關(guān)系、邏輯關(guān)系清楚,幾乎不存在出錯的可能,從而寫(xiě)出所想即所得的代碼。

本文地址:http://selenalain.com/thread-547471-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页