131 1300 0010
其他
當前位置: 首頁>> 元件技術(shù)>>其他>>
  • 導航欄目
  • 二極管
  • 整流橋
  • MOS管
  • 其他
  • 基于FPGA的除法器純邏輯設(shè)計案例
    基于FPGA的除法器純邏輯設(shè)計案例
  • 基于FPGA的除法器純邏輯設(shè)計案例
  •   發(fā)布日期: 2020-06-17  瀏覽次數(shù): 1,431

    前邊寫了很多關(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é)果,一切與預期一致,設(shè)計成功。

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


  • ·上一篇:
    ·下一篇:
  • 其他關(guān)聯(lián)資訊
    深圳市日月辰科技有限公司
    地址:深圳市寶安區(qū)松崗鎮(zhèn)潭頭第二工業(yè)城A區(qū)27棟3樓
    電話:0755-2955 6626
    傳真:0755-2978 1585
    手機:131 1300 0010
    郵箱:hu@szryc.com

    深圳市日月辰科技有限公司 版權(quán)所有:Copyright?2010-2023 fdea2011.com 電話:13113000010 粵ICP備2021111333號