freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

集成電路設(shè)計(jì)綜合技術(shù)講座ppt-資料下載頁

2025-03-23 00:04本頁面
  

【正文】 0]進(jìn)行二次選擇決定最終的輸出。 88 數(shù)據(jù)選擇器設(shè)計(jì) ? module mux4_1d(out, in0,in1,in2,in3,sel) ? output out。 ? input in0, in1, in2, in3。 ? input [1:0] sel。 ? assign out = (in0amp。~sel[1] amp。~sel[0])| (in1amp。~sel[1]amp。sel[0])| (in2amp。sel[1]amp。~sel[0])| (in3amp。sel[1]amp。sel[0])。 ? endmodule ? 上述模塊為 4選 1選擇器的另外一種表達(dá)形式,是通過 verilog直接描述組合電路邏輯關(guān)系的形式來實(shí)現(xiàn)的,通過真值表比較可以發(fā)現(xiàn)與上一個(gè)例子的功能是相同的。 89 數(shù)據(jù)選擇器設(shè)計(jì) ? module mux4_1a(out, in0,in1,in2,in3,sel) ? output out。 ? input in0, in1, in2, in3。 ? input [1:0] sel。 ? wire notsel1, notsel0, w, x, y, z。 ? not (notsel1, sel[1]), (notsel0, sel[0])。 ? and (w, in0, notsel1, notsel0), ? (x, in1, notsel1, sel[0]), ? (y, in2, sel[1], notsel0), ? (z, in3, sel[1], sel[0])。 ? or(out, w, x, y, z)。 ? endmodule ? 上述模塊為 4選 1選擇器的門級表達(dá)形式, 通過分析可以看到,這種形式是用門的形式把上例中的組合邏輯實(shí)現(xiàn)了,但兩個(gè)例子的功能是完全等價(jià)的。 ? 從上述例子可以看到,實(shí)現(xiàn)一個(gè)電路的途徑有很多,可以根據(jù)實(shí)際情況靈活運(yùn)用,同時(shí)也可以看到, verilog語言描述的基礎(chǔ)還是 數(shù)字邏輯電路 90 計(jì)數(shù)器設(shè)計(jì) ? module count4(out, reset, clk)。 ? output [3:0] out。 ? input reset, clk。 ? reg [3:0] out。 ? always @ (posedge clk or negedge reset_b) ? begin ? if (! reset_b) out=0。 ? else out=out+1。 ? end ? endmodule 91 計(jì)數(shù)器的仿真程序 ? `timescale 1ns/1ns ? `include “” ? module count4_top。 ? reg clk, reset, ? wire [3:0] out。 ? parameter DELAY = 100。 ? count4 mycount(out, reset, clk)。 ? always (DELAY/2) clk = ~clk。 ? initial ? begin ? clk = 0。 reset = 0。 ? DELAY reset = 1。 ? DELAY reset = 0。 ? (DELAY*20) $finish。 ? end ? initial $monitor($time, “clk = %d reset = %d out = %d”, clk, reset, out)。 ? endmodule 92 同步置數(shù)同步清零計(jì)數(shù)器設(shè)計(jì) ? module count4(out, data, load, reset, clk)。 ? output [7:0] out。 ? input [7:0] data。 ? input load, reset, clk。 ? reg [7:0] out。 ? always @ (posedge clk) ? begin ? if (!reset) out=8’h00。 ? else if (load) out = data。 ? else out=out+1。 ? end ? endmodule 93 狀態(tài)機(jī) ? 有限狀態(tài)機(jī)是絕大部分控制電路的核心 ? 有限狀態(tài)機(jī)可以分為 ? Moore有限狀態(tài)機(jī) ? 狀態(tài)輸出僅依賴于內(nèi)部狀態(tài),跟輸入無關(guān) ? Mealy有限狀態(tài)機(jī) ? 狀態(tài)輸出不僅決定于內(nèi)部狀態(tài),還跟外部輸入有關(guān) ? 有限狀態(tài)機(jī)可以使用 always語句和 case語句描述,狀態(tài)保存在寄存器中,根據(jù)寄存器的不同的值執(zhí)行不同的操作, case語句的多個(gè)分支代表了不同狀態(tài)的行為 94 moore狀態(tài)機(jī) ? module moore_fsm(clk, reset, A, Z, finish) ? parameter STATE_INT = 0。 ? parameter STATE_ST1 = 1。 ? parameter STATE_ST2 = 2。 ? parameter STATE_FINISH =3。 ? input clk, reset。 ? input A。 ? output [1:0] Z。 ? output finish。 ? reg [1:0] state。 ? reg [1:0] Z。 ? reg finish。 95 moore狀態(tài)機(jī) ? always@ (negedge reset or posedge clk) ? begin ? if(!reset) begin ? state = STATE_INIT。 ? Z = 2’b00。 ? finish = 1’b0。 ? end ? else begin ? case (state) ? STATE_INIT: begin ? state = STATE_ST1。 ? Z = 2’b01。 ? finish = 1’b0。 ? end ? STATE_ST1: begin ? if (A) state = STATE_ST2。 ? else state = STATE_FINISH。 ? Z = 2’b11。 ? finish = 1’b0。 ? end STATE_ST2: begin state = STATE_FINISH。 Z = 2’b10。 finish = 1’b0。 end STATE_FINISH: begin Z = 2’b01。 finish = 1’b1。 end endcase end end endmodule 96 moore狀態(tài)機(jī) ? 實(shí)現(xiàn)過程 ? 首先通過 parameter定義了 moore狀態(tài)機(jī)的幾個(gè)狀態(tài)參數(shù),為常量,用于給狀態(tài)的變量賦值 ? moore狀態(tài)機(jī)的功能在 always結(jié)構(gòu)中得到實(shí)現(xiàn)。 Always結(jié)構(gòu)中通過 clk的上升沿控制。 ? 在 clk的上升沿,如果復(fù)位信號無效,則進(jìn)行狀態(tài)控制,根據(jù)當(dāng)前的狀態(tài) 確定 下一個(gè)狀態(tài) 的值,同時(shí)進(jìn)行本狀態(tài)要 執(zhí)行的操作 ,在本例中改變 Z的值,并且只要不是最后一個(gè)狀態(tài)STATE_FINISH,標(biāo)示 finish都為零 ? 狀態(tài)機(jī)的輸出 Z僅與 moore狀態(tài)機(jī)的狀態(tài)有關(guān),與輸入無關(guān)。 97 mealy狀態(tài)機(jī) ? module mealy_fsm(clk, reset, A, Z, finish)。 ? parameter STATE_INIT = 4’b0001。 ? parameter STATE_ST1 = 4’b0010。 ? parameter STATE_ST2 = 4’b0100。 ? parameter STATE_FINISH = 4’b1000。 ? input clk, reset。 ? input A。 ? output [1:0] Z。 ? output finish。 ? reg [3:0] current_state, next_state。 ? reg [1:0] Z。 ? reg finish。 98 mealy狀態(tài)機(jī) ? always @ (negedge reset or posedge clk) ? begin ? if (!reset) current_state = STATE_INIT。 ? else current_state = next_state。 ? end ? always @ (current_state or A) ? begin ? finish = 1’b0。 ? case (current_state) ? STATE_INIT: begin ? next_state = STATE_ST1。 ? Z = 2’b01。 ? end ? STATE_ST1:begin ? if (A) begin ? next_state = STATE_ST2。 ? Z = 2’b11。 ? end else begin next_state = STATE_FINISH。 Z = 2’b10。 end end STATE_ST2: begin next_state = STATE_FINISH。 Z = 2’b10。 end STATE_FINISH: begin // next_state= STATE_FINISH Z = 2’b01。 finish = 1’b1。 end endcase end endmodule 99 狀態(tài)機(jī)編碼方式 ? Onehot 方式,如上例,占用寄存器多,但是電路簡單。 ? 另外可以選擇 Gray Code,因?yàn)楦窭状a每次只有一位發(fā)生變化,可以避免電路上的競爭現(xiàn)象出現(xiàn)。 100 moore 和 mealy的區(qū)別 ? 實(shí)現(xiàn)機(jī)理上并無不同 ? 只是 mealy機(jī)在實(shí)現(xiàn)上把狀態(tài)的變化和輸出開關(guān)的控制分開考慮,形成各自獨(dú)立的 always控制塊,在設(shè)計(jì)較復(fù)雜的狀態(tài)機(jī)上常采用 101 售貨機(jī)的例子 ? 任務(wù)要求 ? 設(shè)計(jì)一個(gè)自動售貨機(jī)的電路 ? 投幣口每次只能投入一枚五角或者一元的硬幣,投入一元五角,則售貨機(jī)自動給出一杯飲料,投入兩枚一元的硬幣,則在給出一杯飲料同時(shí)退出一枚五角硬幣 ? 變量分析:共有四個(gè)變量。投入一元為一個(gè)變量 A(輸入 );投入五角為一個(gè)變量 B(輸入);售貨機(jī)給出一杯飲料,定義為 Y(輸出);售貨機(jī)退出一枚五角硬幣,定義為 Z(輸出)。 ? 狀態(tài)定義,三個(gè)狀態(tài): S0, 未投入任何硬幣; S1,投入一枚五角硬幣; S2,投入一枚一元硬幣 102 售貨機(jī) ? module machine (A, B, Y, Z, reset)。 ? parameter state0 = 2’b00。 ? parameter state1 = 2’b01。 ? parameter state2
點(diǎn)擊復(fù)制文檔內(nèi)容
電大資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1