最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

【文章】FPGA中正負(fù)數(shù)和定點(diǎn)小數(shù)的表示方法_值得收藏

2022-11-29 07:17 作者:明德?lián)P易老師  | 我要投稿

FPGA中正負(fù)數(shù)和定點(diǎn)小數(shù)的表示方法


本文為明德?lián)P原創(chuàng)文章,轉(zhuǎn)載請(qǐng)注明出處!作者:姬姬姬

在日常生活中,我們常常需要到正數(shù)與負(fù)數(shù),比如南北兩級(jí)氣溫常年為零度以下,這個(gè)時(shí)候我們就需要負(fù)數(shù)來表示溫度。那么在FPGA工程里面也是這樣,我們?nèi)绻胍鰷囟缺O(jiān)測(cè)工程,自然而然的就會(huì)需要到負(fù)數(shù)來表達(dá)零下的溫度。當(dāng)然FPGA中除了數(shù)字正負(fù)的表達(dá),還需要用到小數(shù)。在加減乘除的運(yùn)算中,小數(shù)的出現(xiàn)是不可避免的。作為FPGA工程師,我們無法保證所有設(shè)計(jì)都不出現(xiàn)負(fù)數(shù)或者小數(shù)的情況,不能避免我們就客服,今天就為大家分享一下FPGA中負(fù)數(shù)與小數(shù)的表達(dá)。


一、負(fù)數(shù)的表達(dá)

關(guān)于負(fù)數(shù),大家都知道在任何正數(shù)前加上負(fù)號(hào)便成了負(fù)數(shù),比如“π”前面加上負(fù)號(hào)為“-π”,“0.178”前面加上負(fù)號(hào)為“-0.178”。FPGA傳輸信號(hào)使用的是二進(jìn)制表達(dá),同樣二進(jìn)制的負(fù)數(shù)表達(dá)也是在正數(shù)前面增加一個(gè)負(fù)號(hào)。即“1110”加負(fù)號(hào)為“-1110”,“1010100”前面加負(fù)號(hào)為“-1010100”。

明確了二進(jìn)制負(fù)數(shù)的表達(dá),我們?cè)賮砜紤]如何通過信號(hào)傳輸。在計(jì)算機(jī)中,數(shù)字信號(hào)的大小常用有限位的二進(jìn)制數(shù)表示。信號(hào)1為高電平,信號(hào)0為低電平,高低電平的變化即可得到對(duì)應(yīng)的信號(hào)。想要傳輸多位信號(hào),就增加對(duì)應(yīng)的線即改變位寬。例如我們需要傳輸五位二進(jìn)制數(shù)10100就需要5條線,第一條線為高電平傳輸“1”,第二條線為低電平傳輸“0”,第三條線為高電平傳輸“1”,第四條線為低電平傳輸“0”,第五條線為低電平傳輸“0”。記住信號(hào)傳輸?shù)脑?,我們來考慮負(fù)數(shù)的表示。


在表示負(fù)數(shù)之前,我們需要明確一個(gè)理念—約定,即你我雙方一起遵守一個(gè)協(xié)議從而達(dá)成合作。
就如手機(jī)制造商和耳機(jī)制造商合作一樣,如果想要耳機(jī)與手機(jī)達(dá)成適配,就需要達(dá)成約定使用一個(gè)標(biāo)準(zhǔn)。比如一致的使用圓孔,或者約定使用type-c接口;同時(shí)也要約定使用國際標(biāo)準(zhǔn)還是國家標(biāo)準(zhǔn)。如果沒有達(dá)成約定,兩個(gè)廠家想當(dāng)然的進(jìn)行設(shè)計(jì),手機(jī)使用了國際標(biāo)準(zhǔn)的type-c接口,耳機(jī)卻是國家標(biāo)準(zhǔn)的圓孔,那想要達(dá)成最終合作也只會(huì)變成一場(chǎng)空,無論如何都是無法成功傳輸聲音的。關(guān)于數(shù)據(jù)傳輸也是一樣的,甲乙兩個(gè)模塊之間需要傳輸數(shù)據(jù),一起約定了共傳輸六位數(shù)據(jù),但是第一位數(shù)據(jù)不考慮,只取后五位。即傳輸信號(hào)為“101011”,其實(shí)表達(dá)的為“01011”。這個(gè)時(shí)候兩個(gè)模塊之間一方?jīng)]有遵守約定,就會(huì)得出兩種截然不同的結(jié)果。

理解了約定的概念,我們自然而然就解決了負(fù)數(shù)的問題。前面說過負(fù)數(shù)是在數(shù)的前面增加一個(gè)負(fù)數(shù)符號(hào),那么我們就可以事先約定一條表示正負(fù)的線,并且此線為傳輸數(shù)據(jù)的第一條線,高電平1為負(fù),低電平0為正。這時(shí)傳輸?shù)臄?shù)據(jù)就如下表所示:


?可以看出,我們約定為將第一位表示正負(fù)是完全沒有問題的,當(dāng)然我們也發(fā)現(xiàn),約定前和約定后的數(shù)值是完全不一樣的。因此在設(shè)計(jì)代碼的時(shí)候一定要注意,模塊與模塊之間的傳輸,一定要同時(shí)遵守同一約定。遵守約定后,不論我們是約定第幾條線表示正負(fù),都可以達(dá)到數(shù)據(jù)正確傳輸?shù)男Ч?/p>


二、小數(shù)的表達(dá)

學(xué)習(xí)了負(fù)數(shù)的表達(dá),感受了約定的力量,那么小數(shù)的表達(dá)也就迎刃而解了。這里有的同學(xué)會(huì)問,我也需要增加一根線表示小數(shù)點(diǎn)嗎,其實(shí)是不用的。就算加入了一條線,電平不會(huì)有變化,不但給數(shù)值的表示增加了困難,還浪費(fèi)了資源,屬于多此一舉的行為。但是我們也知道一個(gè)3位二進(jìn)制數(shù)字“101”,小數(shù)點(diǎn)的位置不同時(shí),對(duì)應(yīng)的值就不同。同樣我們需要在事先約定好,這里的約定,即是小數(shù)點(diǎn)的位置。并不需要將小數(shù)點(diǎn)實(shí)際的表示出來,但是傳輸信號(hào)雙方需要約定好,并且互相都以小數(shù)點(diǎn)位置是已知的為基礎(chǔ)進(jìn)行信號(hào)傳輸?shù)摹?/p>

比如對(duì)于剛剛的3位二進(jìn)制數(shù)字“101”,定位小數(shù)點(diǎn)在第二位之后,那么此二進(jìn)制數(shù)字為“10.1”即十進(jìn)制的“2.5”。我們管小數(shù)點(diǎn)位置固定的數(shù)稱為定點(diǎn)小數(shù)。確定了小數(shù)點(diǎn)的位置,自然而然我么就確定了小數(shù)點(diǎn)后有幾位數(shù)。我們使用Qn來表示小數(shù)點(diǎn)后有n位的定點(diǎn)小數(shù),如同樣是5位二進(jìn)制數(shù)字“10101”,將其不同小數(shù)位置表示出來如下:


因此我們只要定位了小數(shù)點(diǎn)后需要跟幾位數(shù)字,就可以在FPGA中表達(dá)小數(shù)。比如約定6位二進(jìn)制數(shù)字的小數(shù)點(diǎn)之后有4位就叫做Q4格式的定點(diǎn)小數(shù),隨機(jī)拿一個(gè)數(shù)字表達(dá)即“0.1010”;比如約定10為二進(jìn)制的小數(shù)點(diǎn)之后有7位就叫做Q7格式的定點(diǎn)小數(shù),隨機(jī)拿一個(gè)數(shù)字表達(dá)即“011.0111010”。

以上就是FPGA中負(fù)數(shù)和小數(shù)的表達(dá),我們?cè)賮砘仡櫼幌?,?fù)數(shù)的表達(dá)方式為增加一位信號(hào),小數(shù)的表達(dá)方式則是定位小數(shù)點(diǎn)。但是不論是哪種方式,我們都想傳達(dá)給大家一個(gè)思想,就是不論多么復(fù)雜的傳輸內(nèi)容,傳輸數(shù)據(jù)雙方都可以對(duì)其進(jìn)行約定,只要約定達(dá)成一致,那么傳輸任何數(shù)據(jù)都沒有問題了。

明德?lián)P專注FPGA研究,本人正在連載兩本書籍:?《基于FPGA至簡(jiǎn)設(shè)計(jì)法實(shí)現(xiàn)的圖像邊緣檢測(cè)系統(tǒng)》(http://www.fpgabbs.cn/forum.php?mod=viewthread&tid=691)、ASICFPGA時(shí)序約束理論與應(yīng)用》(http://www.fpgabbs.cn/forum.php?mod=viewthread&tid=705),有興趣點(diǎn)擊觀看。


【文章】FPGA中正負(fù)數(shù)和定點(diǎn)小數(shù)的表示方法_值得收藏的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
广东省| 临泽县| 灵台县| 枝江市| 弥渡县| 大安市| 桃源县| 包头市| 长丰县| 乌鲁木齐县| 玛沁县| 平安县| 定襄县| 万荣县| 佛坪县| 延川县| 南投市| 化州市| 彰化县| 曲松县| 台江县| 永新县| 蓬溪县| 卓资县| 砀山县| 扎囊县| 海宁市| 尤溪县| 安国市| 定州市| 保定市| 富阳市| 来宾市| 汾阳市| 襄垣县| 澄城县| 汝阳县| 南郑县| 临沂市| 城口县| 克拉玛依市|