零基礎學FPGA(六)今天講習題
習題呢,來自夏雨聞老師的那本教材,就挑幾個感覺自己做著有點難度的寫寫吧
本文引用地址:http://www.ex-cimer.com/article/267959.htm
這個題呢剛開始我是沒看明白,記得書上只講了我們習慣上的用法,這種用法我是沒見過,問了下別人才知道,Verilog中一般是左高右低。第一個沒問題,第二個,input [0:2] IP,習慣上我們這樣寫 input [2:0] IP,這里兩個是等價的,即表示第0 .1 .2 三位。第三個,wire [16:23] A,也是,左高右低,表示第16.17.....22. 23位,左高右低就這樣記就好了。
首先FF呢用二進制表示就是1111_1111,因為是2‘hFF,即取前兩位,即0000_0011,因此,答案1,2正確。
這道題值得注意的是always的這種結構,可以有兩個@語句,這道題本身不難,看下答案,知道有這么一回事就好。
這道題比較有意思,這里I和J是整型,輸出I=-1沒問題。-1也是整數,輸出J=0也沒問題
這里A是3位寄存器變量,值為000,與-1相減,-1的補碼為1111,所以A-1=000+1111,即1111,但這里A是3位的,所以取后三位,所以呢,A就為111即7.同理輸出B為8.
這個題要注意位運算符和邏輯運算符的區(qū)別,像&是位運算符,&&是邏輯運算符。所以第一題是按位與,答案應該是4’b1000,第二題是按位取反,答案是4‘b0011,第三題是邏輯運算,4'b1011是邏輯1,前面一個非號,即左邊是邏輯0,同理,右邊是邏輯1,所以答案應該是1'b1,下面的題也都類似,這里就先不說了。
這個題與上面提到過的那個題,類似,主要是注意寄存器變量的位數就好了,從低位取起,再按照輸出類型確定輸出。
這個題倒不難,但是很容易犯錯,注意默認位數為32位就好了
題目不多,盡量把每個題目做精才是王道!
fpga相關文章:fpga是什么
評論