先給大家出一個(gè)題目:當(dāng)x為5時(shí),y=x << 6 + x <<3 + x << 2 + x的結(jié)果為多少,即y的值是多少?
我先不給出答案,先貼上正確的運(yùn)算符優(yōu)先級(jí)順序,如下圖所示:
俗話說(shuō)溫故而知新,今天回顧一下verilog的運(yùn)算符的優(yōu)先級(jí)。
說(shuō)一下回顧這個(gè)原因:今天打算用verilog實(shí)現(xiàn)一個(gè)乘法器,即:y=77*x。為了加快運(yùn)算時(shí)間,將77轉(zhuǎn)換為二級(jí)制(1001101),然后使用了移位寄存器來(lái)實(shí)現(xiàn)乘法運(yùn)算,具體代碼如下:y=x << 6 + x <<3 + x << 2 + x。但是仿真結(jié)果不對(duì),仿真結(jié)果為0的概率比較大。之前還以為是x的位寬太小導(dǎo)致的,但是修改位寬之后還是不行,所以又重新審視了一下這段代碼,懷疑是運(yùn)行操作符的優(yōu)先級(jí)有問(wèn)題導(dǎo)致的,查閱書籍發(fā)現(xiàn)確實(shí)是這樣的:加法的優(yōu)先級(jí)高于左移運(yùn)算,導(dǎo)致先進(jìn)行加法運(yùn)算再進(jìn)行移位運(yùn)算,所以結(jié)果和預(yù)期不一致。
實(shí)際上,要實(shí)現(xiàn)y=77*x運(yùn)算,正確的verilog代碼如下:y=(x << 6)+(x <<3)+(x << 2)+ x。
所以說(shuō),剛開始給出題目的答案不是我不給出,實(shí)際上按照正確優(yōu)先級(jí)計(jì)算的結(jié)果沒(méi)有太多的意義。
審核編輯:湯梓紅
-
Verilog
+關(guān)注
關(guān)注
28文章
1364瀏覽量
111561 -
乘法器
+關(guān)注
關(guān)注
9文章
211瀏覽量
37713 -
運(yùn)算符
+關(guān)注
關(guān)注
0文章
172瀏覽量
11303
原文標(biāo)題:考題
文章出處:【微信號(hào):FPGA雜記,微信公眾號(hào):FPGA雜記】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
JAVA語(yǔ)言的運(yùn)算符的優(yōu)先級(jí)
STM32學(xué)習(xí)及應(yīng)用筆記二:一次運(yùn)算符優(yōu)先級(jí)造成的錯(cuò)誤
C語(yǔ)言運(yùn)算符的優(yōu)先級(jí)和結(jié)合性
Bug之邏輯運(yùn)算符優(yōu)先級(jí)分享!
C語(yǔ)言運(yùn)算符優(yōu)先級(jí)(超詳細(xì))
C語(yǔ)言入門教程-運(yùn)算符優(yōu)先級(jí)
01_常用運(yùn)算符及優(yōu)先級(jí)
C語(yǔ)言運(yùn)算符優(yōu)先級(jí)
條件運(yùn)算符是什么_條件運(yùn)算符有哪些

超詳細(xì)的C語(yǔ)言運(yùn)算符優(yōu)先級(jí)
c語(yǔ)言運(yùn)算符優(yōu)先級(jí)規(guī)律

評(píng)論