找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2324|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

FPGA至簡(jiǎn)設(shè)計(jì)法高效設(shè)計(jì)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:588548 發(fā)表于 2019-8-3 08:54 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
至簡(jiǎn)設(shè)計(jì)法高效設(shè)計(jì)
上一節(jié)我們描述了明德?lián)P的通用設(shè)計(jì)方法。在闡述案例過(guò)程中,我們畫出了大量的波形圖。有讀者可能會(huì)問(wèn),在工作中,我們是不是也需要先大量地畫波形圖,再來(lái)寫代碼呢?
不是的!工作中,我們要設(shè)計(jì)的系統(tǒng)更加的復(fù)雜,一個(gè)模塊的信號(hào)也非常地多,如果我們每個(gè)模塊都要畫波形圖,這不是明德?lián)P提倡的至簡(jiǎn)設(shè)計(jì)。何況,信號(hào)一天,畫出來(lái)的波形信號(hào)也是相當(dāng)?shù)囟啵踩菀酌院?dāng)中。
上一節(jié)我們畫的波形圖,主要是為了讓讀者更清晰地理解功能、計(jì)數(shù)器和信號(hào)的關(guān)系。如果我們牢記明德?lián)P的規(guī)則,我們的設(shè)計(jì)將非常簡(jiǎn)單。我們要做的不是波形設(shè)計(jì),而是功能設(shè)計(jì)。
功能設(shè)計(jì)就是根據(jù)功能需求,編寫我們的設(shè)計(jì)代碼。我們以上一節(jié)中的案例4為例,說(shuō)明什么叫功能設(shè)計(jì)。
案例4的功能要求是:當(dāng)收到en=1時(shí),dout間隔1個(gè)時(shí)鐘后,產(chǎn)生2個(gè)時(shí)鐘周期的高電平脈沖,并且重復(fù)3次。
由題意可知,要對(duì)“間隔”和“高電平”個(gè)數(shù)進(jìn)行計(jì)數(shù),但沒(méi)有信號(hào)表示“高隔”,為此想出補(bǔ)充一個(gè)信號(hào)flag_add,用來(lái)表示計(jì)數(shù)區(qū)域。間隔時(shí)間+高電平時(shí)間,得到計(jì)數(shù)器數(shù)3個(gè)。
我們看到重復(fù)3次這一句話,這就說(shuō)明還有一個(gè)計(jì)數(shù)器計(jì)數(shù)重復(fù)的次數(shù)。自然地想到,每完成一次就加1,一共加3次。得到代碼如下。
在設(shè)計(jì)計(jì)數(shù)器0的時(shí)候,新增了信號(hào)flag_add。那進(jìn)一步思考,什么時(shí)候要產(chǎn)生動(dòng)作,那就讓flag_add為1。自然,從題意可知,en==1是開(kāi)始,重復(fù)次數(shù)完了,那就結(jié)束,不用再產(chǎn)生信號(hào)。所以flag_add代碼。
最后我們?cè)賮?lái)設(shè)計(jì)dout,由題意可知,每次均是間隔1個(gè)之后dout變1,2個(gè)時(shí)鐘之后變0。那用什么來(lái)數(shù)這個(gè)1和2呢?cnt0。綜合起來(lái),就是說(shuō)cnt0數(shù)到1個(gè)后,dout變1,數(shù)完后變0。
總結(jié):從功能的文字描述中出發(fā),根據(jù)功能要求來(lái)設(shè)計(jì)代碼。在設(shè)計(jì)時(shí),一定要理解清楚信號(hào)的因果關(guān)系,例如為什么變0,為什么變1,從功能說(shuō)明中找答案。經(jīng)常訓(xùn)練這種思考和設(shè)計(jì)方式,幾分鐘就能設(shè)計(jì)出精妙的代碼,而且因果關(guān)系、邏輯關(guān)系清楚,幾乎不存在出錯(cuò)的可能,從而寫出所想即所得的代碼。
如果你覺(jué)得有用的話,就請(qǐng)你回個(gè)貼或者贊,證明我的付出沒(méi)有白費(fèi),大家都不容易,q328908175,讓們共同學(xué)習(xí)。

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表