0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于FPGA的除法器純邏輯設(shè)計案例

姚小熊27 ? 來源:電路城論壇 ? 作者:yiqizhenshanhe ? 2020-06-17 10:17 ? 次閱讀

前邊寫了很多關(guān)于板上外圍器件的評測文章,這篇是FPGA純邏輯設(shè)計,是FPGA的另一部分——算法實現(xiàn),上篇文章做了HDC1000傳感器的使用,當時說FPGA是不支持小數(shù)的,本篇記述的是FPGA如何去做除法運算。很多人覺得不就是除法嘛,直接打上/即可,但是,F(xiàn)PGA是不能正確綜合這個除法器的,綜合的結(jié)果只是一個固定數(shù)值,而不像其他微處理器??梢赃@么說,用FPGA實現(xiàn)除法運算是比較麻煩的。

用軟件編程的時候,用到除法器的時候,一個/就能求商,一個%就能求余,很簡單。但是,如果使用硬件來實現(xiàn)除法運算,就需要了解計算機存儲結(jié)構(gòu),二進制的除法和平常使用的十進制除法是一樣的,都是通過輾轉(zhuǎn)相除的原理,

基于FPGA的觸發(fā)器純邏輯設(shè)計

原理如上所述,現(xiàn)在需要把這個原理轉(zhuǎn)換成可實現(xiàn)的設(shè)計方案,從圖可以看出,首先是將除數(shù)與被除數(shù)的最高3位做比較,如果除數(shù)(110)大于被除數(shù)(101),則將商賦值為0(最高位是0可以省略),被除數(shù)向右增加1位再進行比較;當被除數(shù)增加1位,除數(shù)(110)小于被除數(shù)(1010),則將商賦值為1,接著進行二進制減法運算,被除數(shù)(1010)減去除數(shù)(110),變成100;然后被除數(shù)向右再增加1位,變成1001,再與除數(shù)(110)比較,以此類推,最后輸出結(jié)果。

設(shè)計好代碼,用Modelsim仿真驗證,

基于FPGA的觸發(fā)器純邏輯設(shè)計

用$random產(chǎn)生隨機數(shù),實現(xiàn)效果如下:

i_dividend為被除數(shù),i_divisor為除數(shù),o_quotient為商,o_remainder為余數(shù)(下同)。

基于FPGA的觸發(fā)器純邏輯設(shè)計

$random是不能綜合的,所以,只能用其他的進行代替,被除數(shù)用一個計數(shù)器,除數(shù)用數(shù)字3,再進行Modelsim仿真驗證:

基于FPGA的觸發(fā)器純邏輯設(shè)計

由2個圖可知,除法器設(shè)計滿足需求。

進行板上調(diào)試,

基于FPGA的觸發(fā)器純邏輯設(shè)計

綜合后的RTL圖,

基于FPGA的觸發(fā)器純邏輯設(shè)計

Quartus ii軟件查看結(jié)果,一切與預(yù)期一致,設(shè)計成功。

總結(jié):用FPGA實現(xiàn)除法器真麻煩!

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1629

    文章

    21736

    瀏覽量

    603419
  • 除法器
    +關(guān)注

    關(guān)注

    2

    文章

    14

    瀏覽量

    13893
  • 邏輯設(shè)計
    +關(guān)注

    關(guān)注

    1

    文章

    41

    瀏覽量

    11574
收藏 人收藏

    評論

    相關(guān)推薦

    法器是時序邏輯電路嗎

    法器不是時序邏輯電路 ,而是組合邏輯電路的一種。時序邏輯電路和組合邏輯電路的主要區(qū)別在于它們?nèi)绾翁幚磔敵鲂盘枴?組合
    的頭像 發(fā)表于 08-28 11:05 ?582次閱讀

    具有10路解碼輸出的高速CMOS邏輯+進位計數(shù)器/除法器CD74HC4017-EP 數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《具有10路解碼輸出的高速CMOS邏輯+進位計數(shù)器/除法器CD74HC4017-EP 數(shù)據(jù)表.pdf》資料免費下載
    發(fā)表于 05-28 09:47 ?0次下載
    具有10路解碼輸出的高速CMOS<b class='flag-5'>邏輯</b>+進位計數(shù)器/<b class='flag-5'>除法器</b>CD74HC4017-EP 數(shù)據(jù)表

    具有10個解碼輸出的高速CMOS邏輯十進位計數(shù)器/除法器CD74HC4017數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《具有10個解碼輸出的高速CMOS邏輯十進位計數(shù)器/除法器CD74HC4017數(shù)據(jù)表.pdf》資料免費下載
    發(fā)表于 05-28 09:46 ?0次下載
    具有10個解碼輸出的高速CMOS<b class='flag-5'>邏輯</b>十進位計數(shù)器/<b class='flag-5'>除法器</b>CD74HC4017數(shù)據(jù)表

    FPGA學習筆記-關(guān)于FPGA資源

    在和別人討教FPGA的知識時,初步得到的有關(guān)FPGA的印象是:通過程序或者其它設(shè)置,把集成在芯片中的各種邏輯電路組合起來使用。就像用CMOS、TTL門電路搭建處理邏輯更復(fù)雜的電路。帶著
    發(fā)表于 05-22 18:27

    CMOS14級重復(fù)進位二進制計數(shù)器/除法器和振蕩器CD4060B Types數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《CMOS14級重復(fù)進位二進制計數(shù)器/除法器和振蕩器CD4060B Types數(shù)據(jù)表.pdf》資料免費下載
    發(fā)表于 05-20 09:41 ?0次下載
    CMOS14級重復(fù)進位二進制計數(shù)器/<b class='flag-5'>除法器</b>和振蕩器CD4060B Types數(shù)據(jù)表

    具有十個解碼輸出的十進位計數(shù)器/除法器數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《具有十個解碼輸出的十進位計數(shù)器/除法器數(shù)據(jù)表.pdf》資料免費下載
    發(fā)表于 05-17 10:47 ?0次下載
    具有十個解碼輸出的十進位計數(shù)器/<b class='flag-5'>除法器</b>數(shù)據(jù)表

    具有10個解碼輸出的高速CMOS LogicDecade計數(shù)器/除法器CD54HC4017/CD74HC4017數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《具有10個解碼輸出的高速CMOS LogicDecade計數(shù)器/除法器CD54HC4017/CD74HC4017數(shù)據(jù)表.pdf》資料免費下載
    發(fā)表于 05-17 10:42 ?0次下載
    具有10個解碼輸出的高速CMOS LogicDecade計數(shù)器/<b class='flag-5'>除法器</b>CD54HC4017/CD74HC4017數(shù)據(jù)表

    FPGA學習資料分享

    的學習資源Verilog 教程,數(shù)字邏輯設(shè)計 (點擊文字進入鏈接). 具備一定硬件描述語言基礎(chǔ)是發(fā)開FPGA通用的。此外就是根據(jù)廠家型號、環(huán)境和提供的資源,能有效使用組織起來,實現(xiàn)目標功能,這更傾向于實踐應(yīng)用。 大家有關(guān)于實踐應(yīng)用,由淺入深的資料,可以相互的學習交流,共同
    發(fā)表于 03-31 13:23

    fpga和數(shù)字ic區(qū)別 fpga和plc區(qū)別

    邏輯設(shè)計可以通過編程隨時改變應(yīng)用場景,模擬各種硬件的并行運算。而數(shù)字IC則更專注于傳遞、加工、處理數(shù)字信號,它是按照功能分類的集成電路的一種。 兩者在功能和應(yīng)用上也有所不同。FPGA設(shè)計更偏向于產(chǎn)品化,通過在產(chǎn)品上實現(xiàn)邏輯控制、
    的頭像 發(fā)表于 03-14 18:08 ?2645次閱讀

    fpga用的是什么編程語言 fpga用什么語言開發(fā)

    和VHDL都是用于邏輯設(shè)計的硬件描述語言,并且都已成為IEEE標準。它們能形式化地抽象表示電路的結(jié)構(gòu)和行為,支持邏輯設(shè)計中層次與領(lǐng)域的描述,具有電路仿真與驗證機制以保證設(shè)計的正確性,并便于文檔管理和設(shè)計重用。 fpga用什么語言
    的頭像 發(fā)表于 03-14 17:09 ?3510次閱讀

    fpga是干什么工作的

    FPGA(現(xiàn)場可編程門陣列)主要被用于進行邏輯設(shè)計、算法實現(xiàn)、功能定義以及時序優(yōu)化等工作。具體來說,FPGA工程師的主要職責包括但不限于以下幾個方面。
    的頭像 發(fā)表于 03-14 17:09 ?1444次閱讀

    基于VHDL的組合邏輯設(shè)計

    電子發(fā)燒友網(wǎng)站提供《基于VHDL的組合邏輯設(shè)計.ppt》資料免費下載
    發(fā)表于 03-11 09:23 ?2次下載

    數(shù)字電路與邏輯設(shè)計

    電子發(fā)燒友網(wǎng)站提供《數(shù)字電路與邏輯設(shè)計.ppt》資料免費下載
    發(fā)表于 03-11 09:21 ?9次下載

    如何設(shè)計一個16比特的減法器呢?

    減法電路是基本集成運放電路的一種,算術(shù)運算電路主要包括數(shù)字**加法器電路、數(shù)字減法器電路、數(shù)字乘法器電路和數(shù)字除法器電路。
    的頭像 發(fā)表于 02-19 10:00 ?891次閱讀
    如何設(shè)計一個16比特的減<b class='flag-5'>法器</b>呢?

    基于TouchGFX的智能手表設(shè)計 —MVP 架構(gòu)下的邏輯設(shè)計

    電子發(fā)燒友網(wǎng)站提供《基于TouchGFX的智能手表設(shè)計 —MVP 架構(gòu)下的邏輯設(shè)計.pdf》資料免費下載
    發(fā)表于 01-05 11:21 ?1次下載