verilog 移位运算符 说明_FPGA、数字IC系列(2)——电子科大与北航部分Verilog题目与解析...
1.?在不影響邏輯功能的情況下, CMOS與非門的多余輸入端可 ______。
A.接高電平
B.接低電平
C.懸空
D.通過電阻接地
答案?:A
解析?:CMOS與非門,只要有一個輸入端為低電平,與運算后均為低電平,輸出為高電平,影響了輸出結果,若接地或懸空會使輸出始終為1。
CMOS與門、與非門:多余端通過限流電阻(500Ω)接電源;
CMOS或門、或非門:多余端通過限流電阻(500Ω)接地;
TTL與門、與非門:
(1)將多余輸入端接高電平,即通過限流電阻與電源相連接;
(2)通過大電阻(大于1kΩ)到地,相當于輸入端外接高電平;
(3)把多余輸入端懸空(相當于有大電阻),輸入端相當于外接高電平;
(4)TTL門電路的工作速度不高,信號源驅動能力較強,多余輸入端可與使用的輸入端并聯。
摘自http://www.elecfans.com/analog/20150113362835.html
TTL或門、或非門:通過接小于1 KΩ(500Ω)的電阻到地。
2.?欲產生序列信號 11010111,則至少需要 ______級觸發器。
A.2
B.3
C.4
D.5
答案:B
解析:
觸發器產生序列信號時,計算序列長度N=8,由2^3=8得:至少需要3級觸發器;
欲用移位寄存器產生序列信號1101010,則至少需要()級觸發器,答案是6。
1101010--1101010--1101010
(1)先用3級,則移位狀態為110 - 101 - 010 - 101 - ...,有重復,不可以;
(2)用4級,移位狀態為1101- 1010 - 0101 - 1010 - ...,有重復,不可以;
(3)用5級,移位狀態為11010 - 10101 - 01010 - 10101 - ...,有重復,不可以;
(4)用6級,移位狀態為110101 - 101010 - 010101 - 101011 - 010110 - 101101 - 011010 - 110101...,沒有重復的回到初始狀態,可以;
3.?一個 8位二進制減法計數器, 初始狀態為 00000000, 問經過 268個輸入脈沖后, 此計數器的狀態為 ______。
A.11001111
B.11110100
C.11110010
D.11110011
答案:B
解析:8位二進制數計數2^8 = 256次后回到00000000,還剩268-256=12次計數,計數1次后從“00000000”減為“11111111”,此后再減11(00001011),得到11110100,選B。
1111 1111
-? ??0000 1011
1111 0100
4.?移位寄存器由 8 級觸發器組成,用它構成的扭環形計數器具有 ______種有效狀態;用它構成的環形計數器具有 ______種有效狀態,構成線性反饋移位寄存器具有 ______種有效狀態。
A.?16,8,511
B.?4,?8,15
C.?16,8,255
D.?8,16,127
答案:C
解析:?
(1)扭環形計數器,每次狀態變化時僅有一個觸發器發生翻轉,譯碼不存在競爭冒險,在n(n≥3)位計數器中,使用2n個狀態,有2^n-2n個狀態未使用;
(2)環形計數器,正常工作時所有觸發器中只有一個是1(或0)狀態,計n個數需要n個觸發器,狀態利用率低;
(3)n個寄存器的線性反饋移位寄存器LFSR可以產生的最長的隨機序列是2^n?1長度(即m序列)。LFSR常被用來生成m序列,也可產生和校驗CRC。
擴展:m序列,最長線性反饋移位寄存器序列,一種典型的偽隨機序列、偽噪聲(Pseudo-Noise Code,PN)序列,有很好的的自相關性和較好的互相關性。 在3G-CDMA系統的前向鏈路(基站到手機方向)中,2^15-1長度的m序列(短碼)作為正交引導PN序列,用于基站同步;使用2^42-1長度的m序列長碼,在前向鏈路中作為掩碼,進行數據加擾和用戶保密; 在3G-CDMA系統的反向鏈路(手機向基站方向)中,因不同m序列之間有良好的相關性,從而產生地址空間,構成邏輯信道和移動臺的地址碼,實現碼分多址; 在4G-LTE的下行同步中,使用兩個長度為31的m序列級聯成輔同步序列SSS。 |
ZC序列,自相關性為0,恒幅值,零自相關序列,它和自己的(非整周期)移位序列的相關值為 0,而且兩個互質的ZC序列的互相關也接近于0,傅里葉變換后仍具備以上特性,在OFDM系統中作為訓練序列,作同步用。
常用的CAZAC序列(恒幅值、零自相關性)主要包括Zadoff-Chu序列(即ZC序列)、Frank序列、Golomb多相序列和Chirp序列。CAZAC序列常用于通信系統的同步算法中。
5.?若要將一異或非門當做反相器 ( 非門) 使用,則輸入端 A、 B端的連接方式是 ______。
A.A 或 B 中有一個接“ 1”
B.A 或 B 中有一個接“ 0”
C.A 和 B 并聯使用
D.不能實現
答案:B
解析:輸入與0“異或”是其本身,取“非”后是輸入的取反,相當于反相器。
6.?實現同一功能的 Mealy 型同步時序電路比 Moore 型同步時序電路所需要的 ______。A.狀態數目更多B.狀態數目更少C.觸發器更多D.觸發器更少答案:B
解析:
(1)Mealy型:輸出信號不僅取決于當前狀態,還取決于輸入;
(2)Moore型:輸出信號只取決于當前狀態;
Mealy型比Moore型輸出超前一個時鐘周期,Moore型比Mealy多一個狀態。
7.?假定某 4 比特位寬的變量 a 的值為 4’b1011 ,計算下列運算表達式的結果:&a, {3{a}},~a,{a[2:0],a[3]},(a<4’d3) || (a>=a) ,!a
答案:
&a = 0 | {3{a}} = 12’b101110111011 |
~a = 4’b0100 | {a[2:0],a[3]} = 4’b0111 |
(a<4’d3) || (a>=a) = 1’b1 | !a = 1’b0 |
解析:
(1)“&”按位與,“&&”是邏輯與,&a是a中的各位相與,結果為1 bit的數據,a中有0,相與后結果為0;
(2)“{}”位拼接符,{3{a}}是3個a依次從高位到低位拼起來;
(3)“~”按位取反,~a對a中的每一位取反,結果的位數與a相同;
(4)“{}”位拼接符,{a[2:0],a[3]}是按出現的順序從高位到低位拼起來,a[2:0]=011,放在高3位,a[3]=1,結果為4’0111,實現了循環移位(左移)的效果;
(5)“||”邏輯或,“和“>=”的結果是邏輯值“1”或“0”,邏輯或后仍為邏輯值,有1個為1結果就為1;
(6)“!”邏輯取反,非0則1,非1則0,a不為0,則邏輯取反后為0。
8.?下面兩段代碼中信號in,q1,q2和q3的初值分別為 0,1,2和3,那么經過1個時鐘周期后,左側程序中q3 的值變成(),右側程序中q3 的值變成()。
?
答案:0, 2
解析:
(1)左側是阻塞賦值“=”,阻塞的意思是要等到當前賦值語句的賦值結束后才能進行下一個語句的賦值,即in的初值0賦給q1,q1更新為0后才賦值給q2,到q3時也是獲得了0;
(2)右側是非阻塞賦值“<=”,非阻塞的意思是不同的賦值語句之間互相不影響,在下一個時鐘時將q2在上一時鐘的值2賦給了q3,q3輸出2。
9.?一個大型的組合電路總延時為100ns,采用流水線將它分為兩個較小的組合電路,理論上電路最高工作頻率可達()。
答案:20 MHz
解析:拆分后每個延時50ns,流水線后取其中最大的延時,即50ns,對應20MHz。
10.?塊語句有兩種,一種是 begin-end 語句, 通常用來標志()執行的語句;一種是 fork-join 語句,通常用來標志()執行的語句。
答案:順序,并行
解析:
(1)begin_end用于將多條語句組成順序塊,語句按順序一條一條執行(除了帶有內嵌延遲控制的非阻塞賦值語句),每條語句的延遲時間是相對于由上一條語句的仿真時間而言;
(2)fork-join并行塊,塊內語句同時執行。
11.?在高速系統設計中,下列哪種優化方案的目的不是為了提高系統的工作頻率()。
A.?流水線B. 樹型結構C. 遲置信號后移D.資源共享
答案:D
解析:
(1)面積優化,提高資源利用率以降低功耗要求:串行化,資源共享,邏輯優化;(2)速度優化,提高運行速度:流水線設計,寄存器配平,關鍵路徑優化,遲置信號后移。
12.?狀態機的編碼風格包括一段式、兩段式和三段式,下列描述正確的是()A、一段式寄存器輸出,易產生毛刺,不利于時序約束;B、二段式組合邏輯輸出,不產生毛刺,有利于時序約束;C、三段式寄存器輸出,不產生毛刺,有利于時序約束;D、所有描述風格都是寄存器輸出,易產生毛刺,有利于時序約束。?
答案:C
解析:
(1)一段式:一個always塊,既描述狀態轉移,又描述狀態的輸入輸出,當前狀態用寄存器輸出;
(2)二段式:兩個always塊,時序邏輯與組合邏輯分開,一個always塊采用同步時序描述狀態轉移;另一個always塊采用組合邏輯判斷狀態轉移條件,描述狀態轉移規律以及輸出,當前狀態用組合邏輯輸出,可能出現競爭冒險,產生毛刺,而且不利于約束,不利于綜合器和布局布線器實現高性能的設計;
(3)三段式:三個always塊,一個always模塊采用同步時序描述狀態轉移;一個always采用組合邏輯判斷狀態轉移條件,描述狀態轉移規律;第三個always塊使用同步時序描述狀態輸出,寄存器輸出。
三段式與二段式相比,關鍵在于根據狀態轉移規律,在上一狀態根據輸入條件判斷出當前狀態的輸出,從而在不插入額外時鐘節拍的前提下,實現了寄存器輸出。
狀態機編碼:
二進制碼Binary?Code和格雷碼Gray?Code占用的位寬少,相應的使用的觸發器資源少,但是狀態對比時需要比較多個bit,消耗的組合邏輯比較多,適用于組合電路資源豐富的情況(CPLD);
獨熱碼One-Hot Code的狀態比較時只比較1bit,節省邏輯資源,使用的觸發器資源比較多,適用于觸發器資源豐富的情況(FPGA);總體來講,狀態較少時(4-24個狀態)用獨熱碼效果好,狀態多時格雷碼(狀態數大于24)效果好。
對四個狀態編碼:
二進制碼:
S0 = 2'b00;????????S1 = 2'b01;????????S2 = 2'b10;????????S3 = 2'b11;
格雷碼相鄰碼元之間有且只有一位不同:
S0 = 2'b00;????????S1 = 2'b01;????????S2 = 2'b11;????????S3 = 2'b10;
獨熱碼只有一位是“1”:
S0 = 2'b0001;????S1 = 2'b0010;????S2 = 2'b0100;????S3 = 2'b1000;
有時候也用連續編碼,狀態值連續:
S0 = 2'd0;???????????S1 = 2'd1;?????????S2 = 2'd2;??????????S3 = 2'd3;
13.?關于過程塊以及過程賦值描述中,下列正確的是()?A、在過程賦值語句中表達式左邊的信號一定是寄存器類型;
B、過程塊中的語句一定是可綜合的;
C、在過程塊中,使用過程賦值語句給wire 賦值不會產生錯誤;
D、過程塊中時序控制的種類有簡單延遲、邊沿敏感和電平敏感。
答案:A
解析:
(1)過程賦值:Verilog HDL 中提供initial塊和always塊這兩種過程賦值塊,實現行為級建模。這兩種語句之間的執行是并行的,若與語句塊(begin ....end)相結合,則語句塊中的執行是按順序執行的。左側被賦值的數據類型必須是寄存器類型的變量(reg),賦值方式有阻塞賦值“=”與非阻塞賦值“<=”。
(2)連續賦值:連續賦值語句用于組合邏輯的建模。左側被賦值的數據類型是wire類型的變量,右邊可以是常量、由運算符如邏輯運算符、算術運算符參與的表達。
assign out=in;
任何一個輸入的改變都將立即導致輸出更新;在initial或always外的assign賦值語句稱為連續賦值語句,一般在描述純組合電路時使用。
14.?關于函數的描述下列說法不正確的是( B )A、函數定義中不能包含任何時序控制語句;
B、函數至少有一個輸入,包含任何輸出或雙向端口;
C、函數只返回一個數據,其缺省為 reg 類型;
D、函數不能調用任務,但任務可以調用函數。?
答案:B
解析:
function <返回值的類型或范圍(可選,默認是1bit寄存器類型)> (函數名);
<端口說明語句>
<變量類型說明語句>
begin
<語句>
......
end
endfunction
A:函數定義中不能包含任何時間控制語句,即任何#、@、wait等語句,任務中可以使用延遲、事件和時序控制結構;
B:函數至少有一個輸入變量,不能包含任何輸出和雙向端口,任務可以有任意多個輸入、雙向和輸出變量;
C:函數function有一個返回值,缺省時默認返回1bit的reg寄存器類型數據,任務task沒有返回值;
D:函數不能啟動任務,但是任務能啟動其他任務或函數。
歡迎關注:FPGA探索者
?
總結
以上是生活随笔為你收集整理的verilog 移位运算符 说明_FPGA、数字IC系列(2)——电子科大与北航部分Verilog题目与解析...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 冷热分离和直接使用大数据库_还不知道HB
- 下一篇: 光大信用卡欠款2年没还什么结果