第五章練習題 1

2022-10-11 18:51:08 字數 1558 閱讀 8003

1.題目:根據rtl圖給出hdl描述

dff的引腳功能:

pre與clr均為非同步控制訊號;pre置高,dff輸出為1;clr置高,dff輸出為0;

分析:訊號優先順序為 \(clr>pre\);當ena為1時,時鐘啟動,clr為0時,模組清零,pre為1時,模組置1;ena為時鐘控制訊號,

module dffa(set,d,clk,en,reset,q);

input d,clk,en,reset,set;

output q;

reg q;

wire pre;

always@(posedge clk,posedge pre,posedge reset)//這裡需注意邊沿觸發和電平觸發不能混用

begin

if(reset)//reset上沿敏感,因此一旦觸發,將為1

q<=0;

else if(pre)

q<=1;

else if(en)

q<=d;

endassign pre=set&(~reset);

assign q=q;

endmodule

/*一些個人糾結問題的思考與解答:

q1:en訊號要放在敏感訊號表中嗎?

a1:不用。en是時鐘控制訊號,always語句對時鐘敏感,那麼進入always語句的前提是時鐘已經開啟了。

q2:reset是電平觸發,為什麼要用posedge reset?

a2:always語句不允許有邊沿觸發和電平觸發混合形式,當有時鐘應先滿足時鐘敏感訊號觸發;另外高電平觸發的reset在到來乙個上公升沿后一定會在高電平,故if判斷reset是否為1

*/

2.題目:請畫出下述verilog所描述的rtl圖:

module reg1v(d,clk,q,oe);

input d,clk,oe;

output reg q;

wire a;

reg qt;

assign a = oe ? 1』bz : q;

always @(posedge clk) begin

qt <= a&d;

q <= qt;

endendmodule

思路:1.初步判斷,電路有兩個輸入訊號(\(d,oe\)),乙個時鐘訊號(\(clk\)),乙個輸出訊號(\(q\)),並由乙個三態門和乙個always過程語句模組組成.

2.三態門由控制端\(oe\),輸入端\(q\) (可以看到,輸出訊號\(q\)反饋回來成為了輸入量),輸出端為輔助變數\(a\).

3.後端模組是乙個時序電路,敏感訊號是時鐘上公升沿,輸入訊號是(\(a,d\))的與,再經過乙個d觸發器後輸出.

4.畫出電路圖

第五章課後練習題

1.利用迴圈結構解決問題的一般步驟?答.分析需求確定迴圈條件,確定迴圈體,然後巢狀各種 就ok了。2.使用while迴圈結構輸出 100 95 90 85 5。實現程式設計。設定斷點除錯程式,觀察迴圈變數的變化。3.使用do while迴圈實現 計算1 50中是7的倍數的數值之和並輸出。4.從鍵盤接...

python核心程式設計,第五章練習題

5.1 整型,講講python普通整型與長整型區別 python整形一共有三種 布林型,長整型和常規整型。普通型和長整型主要的區別是,能表示的資料位數的不同。5.2 定義乙個函式,用於兩個數相乘,並呼叫這個函式 def plustwo a,b return a b plustwo 3,4 12 pl...

C Primer Plus 第五章之程式設計練習題

include using namespace std intmain cout sum include using namespace std intmain return0 include using namespace std intmain cout 年後 da cl 注意設定型別,應該為d...