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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

綜合后的RTL圖,

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

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

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

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

    關(guān)注

    1624

    文章

    21538

    瀏覽量

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

    關(guān)注

    2

    文章

    14

    瀏覽量

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

    關(guān)注

    1

    文章

    41

    瀏覽量

    11555
收藏 人收藏

    評論

    相關(guān)推薦

    法器是時序邏輯電路嗎

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    FPGA是啥?太難了~

    array 。通俗來說,是一種功能強(qiáng)大似乎無所不能的器件。通常用于通信、網(wǎng)絡(luò)、圖像處理、工業(yè)控制等不同領(lǐng)域的器件。一直強(qiáng)調(diào),邏輯設(shè)計不是程序員,因?yàn)樵谠O(shè)計人員來看,寫邏輯只是FPGA開發(fā)中最
    發(fā)表于 11-03 10:29

    FPGA學(xué)習(xí)筆記:邏輯單元的基本結(jié)構(gòu)

    邏輯單元在FPGA器件內(nèi)部,用于完成用戶邏輯的最小單元。
    的頭像 發(fā)表于 10-31 11:12 ?1571次閱讀
    <b class='flag-5'>FPGA</b>學(xué)習(xí)筆記:<b class='flag-5'>邏輯</b>單元的基本結(jié)構(gòu)

    使用IAR IDE仿真RL78內(nèi)置硬件乘法器除法器注意事項(xiàng)

    使用IAR IDE仿真RL78內(nèi)置硬件乘法器除法器注意事項(xiàng)
    的頭像 發(fā)表于 10-30 17:04 ?998次閱讀
    使用IAR IDE仿真RL78內(nèi)置硬件乘<b class='flag-5'>法器</b>和<b class='flag-5'>除法器</b>注意事項(xiàng)

    單片機(jī)使用硬件除法器求出的商和余數(shù)數(shù)據(jù)怎么處理?

    想問一下大家 單片機(jī)使用硬件除法器求出的商和余數(shù)數(shù)據(jù)怎么處理呢
    發(fā)表于 10-30 08:28