20×18位符號(hào)定點(diǎn)乘法器的FPGA實(shí)現(xiàn)
SMIC提供的0.18 vm標(biāo)準(zhǔn)單元庫(kù)中,4-2壓縮CMPR42的邏輯表達(dá)式為:
在硬件實(shí)現(xiàn)該模塊時(shí),因?yàn)橛?0個(gè)部分積,一共調(diào)用4-2壓縮4次,分為3級(jí),從頂?shù)降诪?―1―1型。4-2壓縮互聯(lián)如圖3所示。
1.3 溢出處理及四舍五入
定點(diǎn)數(shù)相乘不會(huì)溢出,只不過(guò)結(jié)果的最終位數(shù)有所增加。20 b×18 b結(jié)果為38 b。有時(shí)38 b并不全部存儲(chǔ),只需其中的一些位就可以。這涉及到四舍五人。假設(shè)數(shù)A共20位,1位符號(hào),5位整數(shù)位,14位小數(shù)位,數(shù)B共18位,1位符號(hào)位,2位整數(shù)位,15位小數(shù)位,結(jié)果格式同A。
如圖4所示,因?yàn)橹槐A?位整數(shù),把前3位都看成是符號(hào)位,如果不同,說(shuō)明溢出;反之,沒(méi)溢出。再根據(jù)前兩位真正的符號(hào)判斷是上溢還是下溢,若為O,則上溢,為20'h7ffff,反之,下溢,為20'h80001。在邏輯設(shè)計(jì)上用個(gè)選通可以實(shí)現(xiàn),Verilog HDL代碼為:assignceil=data in[37]:20'h80001:20'h7ffff;其中data in[37]為最高位。
由于Verilog HDL語(yǔ)言是應(yīng)用最為廣泛的硬件描述語(yǔ)言之一,可以進(jìn)行各種層次的邏輯設(shè)計(jì),也可以進(jìn)行仿真驗(yàn)證,時(shí)序分析,并且可移植到不同產(chǎn)家的不同芯片中,代碼可讀性比較強(qiáng),因此本模塊設(shè)計(jì)用Ver-ilog HDL語(yǔ)言。
如果要舍入的數(shù)沒(méi)有溢出,那么還要考慮小數(shù)部分的舍入。若舍入數(shù)為正數(shù),舍入相鄰位為1,舍入時(shí)必須進(jìn)1;反之不用。若舍人數(shù)為負(fù)數(shù),舍入相鄰位為1且舍人相鄰位后面還有一位為1,則舍入時(shí)需加1;反之,不加1。
評(píng)論