作業(yè)答案(知識講座)_第1頁
作業(yè)答案(知識講座)_第2頁
作業(yè)答案(知識講座)_第3頁
作業(yè)答案(知識講座)_第4頁
作業(yè)答案(知識講座)_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

作業(yè)1假設(shè)一工廠車間內(nèi)有2個大容器,一段時間內(nèi)只適用一個。大容器中的液體必須有適宜的溫度,即在25-30c之間。每個容器有2個溫度傳感器分別感知溫度高于25度或高于30度。兩個容器也都有液面過低傳感器。當溫度過高或過低,或大容器中液面太低時,由蜂鳴器提醒操作員進行操作。操作員撥動開關(guān),可選擇使用哪個容器。請設(shè)計一個由門邏輯組成的電路,當溫度低于25度或高于30或液面過低時啟動蜂鳴器。解決方案對每個選定的大容器,啟動蜂鳴器的條件是“溫度低于25或溫度高于30或頁面水平過低〞,為每個容器做一個由門邏輯組成的電路,可以執(zhí)行這個任務(wù)。開關(guān)用來控制多路選擇器,選擇監(jiān)視的是哪個大容易,在兩個大容器的傳感器組合電路輸出之間做選擇。多路選擇器的輸出可以激活蜂鳴器。完整的電路圖如下圖Modulevat_buzzer(inputabove_30_0,above_25_0,low_level_0,Inputabove_30_1,above_25_1,low_level_1,Inputselect_vat_1,Outputbuzzer);Wirebelow_25_0,temp_bad_0,wake_up_0;Wirebelow_25_1,temp_bad_1,wake_up_1;Notu1(below_25_0,above_25_0);Oru2(temp_bad_0,above_30_0,below_25_0);Oru3(wake_up_0,temp_bad_0,low_level_0);Notu4(below_25_1,above_25_1);Oru5(temp_bad_1,above_30_1,below_25_1);Oru3(wake_up_1,temp_bad_1,low_level_1);Muxselection(buzzer,select_vat_1,wake_up_0,wake_up_1);EndmoduleModulevat_buzzer(inputabove_30_0,above_25_0,low_level_0,Inputabove_30_1,above_25_1,low_level_1,Inputselect_vat_1,Outputbuzzer);Assignbuzzer=select_vat_1?low_level_1|(above_30_1|~above_25_1):low_level_0|(above_30_0|~above_25_0);endmodule作業(yè)2開發(fā)一個時序電路,該電路只有一個輸入S并產(chǎn)生一個輸出Y。每當S在連續(xù)3個時鐘周期內(nèi)出現(xiàn)相同的數(shù)值時,輸出Y為1;否那么輸出Y為0.假設(shè):在給定時鐘周期的前提下,S的值是在當前時鐘周期結(jié)束時,下一個時鐘的上升沿時刻被定義的。解決方案為了在連續(xù)3個時鐘周期內(nèi)比擬S的值,需要存儲前兩個周期的數(shù)值,并與S的當前值進行比擬??梢杂靡粚觸發(fā)器,以流水線的方式連接,以便存儲數(shù)值。如下圖。當時只沿出現(xiàn)時,第一個觸發(fā)器ff1把來自于上一個時鐘周期的S值存入。這一數(shù)值被轉(zhuǎn)到第二個觸發(fā)器ff2的數(shù)據(jù)庫,當時鐘沿再次出現(xiàn)時,ff2將來自兩個周期之前的S值存入。當且僅當3個連續(xù)的S值都是1或者都是0時,輸出Y是1?!芭c〞門g1和g2共同判定3個值是否都是1.反相器和g3/g4和g5對3個值取反,因此,“與〞門g6和g7確定3個值是否都是0,“或〞門g8將2個備選項結(jié)合在一起,以給出最后的輸出。moudleseq_equ(y,s,clk);Inputs,clk;Outputy;Regs1,s2;Wirey1,y0;AssignY1=s&s1&s2;Assigny0=~s&~s1&~s2;Assigny=y1|y0;always@(posedgeclk)beginS1<=s;S2<=s1;Endendmodule作業(yè)3編寫七段解碼器的verilog模型,請?zhí)砑右粋€輸入信號blank〔空白〕,該輸入信號可以不顧及BCD碼的輸入,使所有片段燈都不亮。Modulesever_seg_decoder(output[7:1]seg,input[3:0]bcd,inputblank);reg[7:1]seg_tmp;always@*case(bcd)4`b0000:seg_tmp=7`b0111111;//04`b0001:seg_tmp=7`b0000110;//14`b0010:seg_tmp=7`b1011011;//24`b0011:seg_tmp=7`b0111111;//34`b0100:seg_tmp=7`b1001111;//44`b0101:seg_tmp=7`b1101101;//54`b0110:seg_tmp=7`b1111101;//64`b0111:seg_tmp=7`b0000111;//74`b1000:seg_tmp=7`b1111111;//84`b1001:seg_tmp=7`b1101111;//9Defaut:seg_tmp=7`b1000000;//-非法BCD碼字endcase;//assignseg=blank?7`b0000000:seg_tmp;endmodule作業(yè)4請編寫一個verilog模型,該模型描述一個自動溫度調(diào)節(jié)器。該溫度調(diào)節(jié)器有兩位8位無符號二進制輸入,輸入數(shù)據(jù)分別表示以華氏度為計量單位的目標溫度和實際溫度。假定兩個溫度都高于凍結(jié)溫度〔32〕,該溫度調(diào)節(jié)器的探測器有兩個輸出:1當實際溫度低于目標溫度5f時,把加熱器翻開;2當實際溫度超過目標溫度5f時,把制冷器翻開。Modulethermoseat(outputheater_on,cooler_on,Input[7:0]target,actual);Assignheater_on=actual<target-5;Assigncooler_on=actual>target+5;Endmodule作業(yè)5請設(shè)計一個能對16個時鐘周期進行計數(shù)的電路,并由此產(chǎn)生控制信號ctrl,每當計數(shù)器計到第8和第12個時鐘周期時,控制信號ctrl變?yōu)?,其余時間控制信號ctrl均為0.解決方案,我們需要一個4位的計數(shù)器,該計數(shù)器從0計數(shù)到15,然后返回到0.在第8個周期計數(shù)值是0111,在第12個周期計數(shù)值為1011.通過對這個兩個計數(shù)值進行譯碼,并對這兩個譯碼信號進行邏輯或,便可產(chǎn)生要求的控制信號。Moduledecoder_cuonter(outputctrl,inputclk);Reg[3:0]count_value;always@(posedgeclk)count_value<=count_value+1;assignctrl=count_value==4`b0111|count_value==4`b1011;endmodule作業(yè)6請編寫一個verilog模型來描述一個具有時鐘輸入/加載控制和數(shù)據(jù)輸入端口及一個最終計數(shù)輸出端口的時間間隔定時器。該定時器能夠定時的時間間隔必須大于1000個時鐘周期。解決方案,數(shù)據(jù)輸入和計數(shù)器的位寬至少需要有10位,因為這是表示大于十進制1000所需要的最小位寬。所以該模塊的定義為Moduleinterval_times_rtl(outputtc,input[9:0]data,inputload,clk);Reg[9:0]count_value;always@(posedgeclk)if(load)count_value<=data;elsecount_value<count_value-1;assigntc==count_value==0;endmodule作業(yè)7請修改上例中的時間間隔定時器,使得當該定時器減到0時,可以重新加載以前曾經(jīng)加載過的值,而不是返回到最大的計數(shù)值。解決方案需要使用一個獨立的存放器來存儲加載到計數(shù)器中的數(shù)值。當加載輸入load為1時,一個新的數(shù)據(jù)值被加載到獨立的存放器和計數(shù)器。當減到最終計數(shù)0時,獨立存放器中存儲的數(shù)據(jù)被加載到計數(shù)器中。修改后的時間間隔定時器的輸入和輸出沒有任何改變。Moduleinterval_times_rtl(outputtc,input[9:0]data,inputload,clk);Reg[9:0]count_value,load_value;always@(posedgeclk)if(load)begincount_value<=data;load_value<=data;endelseif(count_value==0)count_value<=load_value;elsecount_value<count_value-1;assigntc==count_value==0;endmodule作業(yè)請編寫按鍵去抖氣的verilog模型,去抖采樣的時間間隔為10ms假設(shè)系統(tǒng)的時鐘頻率為50hzModuledebouncer(outputregpa_debounced,Inputpb,Inputclk,reset);Reg[18:0]count500000;//其值的范圍在0到499999之間Wireclk_100hz;Regpb_samples;always@(posedgeclkorposedgereset)if(reset)count500000<=499999;elsei

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論