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

下載本文檔

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

文檔簡(jiǎn)介

作業(yè)1假設(shè)一工廠車間內(nèi)有2個(gè)大容器,一段時(shí)間內(nèi)只適用一個(gè)。大容器中的液體必須有適宜的溫度,即在25-30c之間。每個(gè)容器有2個(gè)溫度傳感器分別感知溫度高于25度或高于30度。兩個(gè)容器也都有液面過低傳感器。當(dāng)溫度過高或過低,或大容器中液面太低時(shí),由蜂鳴器提醒操作員進(jìn)行操作。操作員撥動(dòng)開關(guān),可選擇使用哪個(gè)容器。請(qǐng)?jiān)O(shè)計(jì)一個(gè)由門邏輯組成的電路,當(dāng)溫度低于25度或高于30或液面過低時(shí)啟動(dòng)蜂鳴器。解決方案對(duì)每個(gè)選定的大容器,啟動(dòng)蜂鳴器的條件是“溫度低于25或溫度高于30或頁(yè)面水平過低〞,為每個(gè)容器做一個(gè)由門邏輯組成的電路,可以執(zhí)行這個(gè)任務(wù)。開關(guān)用來控制多路選擇器,選擇監(jiān)視的是哪個(gè)大容易,在兩個(gè)大容器的傳感器組合電路輸出之間做選擇。多路選擇器的輸出可以激活蜂鳴器。完整的電路圖如下圖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ā)一個(gè)時(shí)序電路,該電路只有一個(gè)輸入S并產(chǎn)生一個(gè)輸出Y。每當(dāng)S在連續(xù)3個(gè)時(shí)鐘周期內(nèi)出現(xiàn)相同的數(shù)值時(shí),輸出Y為1;否那么輸出Y為0.假設(shè):在給定時(shí)鐘周期的前提下,S的值是在當(dāng)前時(shí)鐘周期結(jié)束時(shí),下一個(gè)時(shí)鐘的上升沿時(shí)刻被定義的。解決方案為了在連續(xù)3個(gè)時(shí)鐘周期內(nèi)比擬S的值,需要存儲(chǔ)前兩個(gè)周期的數(shù)值,并與S的當(dāng)前值進(jìn)行比擬。可以用一對(duì)D觸發(fā)器,以流水線的方式連接,以便存儲(chǔ)數(shù)值。如下圖。當(dāng)時(shí)只沿出現(xiàn)時(shí),第一個(gè)觸發(fā)器ff1把來自于上一個(gè)時(shí)鐘周期的S值存入。這一數(shù)值被轉(zhuǎn)到第二個(gè)觸發(fā)器ff2的數(shù)據(jù)庫(kù),當(dāng)時(shí)鐘沿再次出現(xiàn)時(shí),ff2將來自兩個(gè)周期之前的S值存入。當(dāng)且僅當(dāng)3個(gè)連續(xù)的S值都是1或者都是0時(shí),輸出Y是1。“與〞門g1和g2共同判定3個(gè)值是否都是1.反相器和g3/g4和g5對(duì)3個(gè)值取反,因此,“與〞門g6和g7確定3個(gè)值是否都是0,“或〞門g8將2個(gè)備選項(xiàng)結(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模型,請(qǐng)?zhí)砑右粋€(gè)輸入信號(hào)blank〔空白〕,該輸入信號(hào)可以不顧及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請(qǐng)編寫一個(gè)verilog模型,該模型描述一個(gè)自動(dòng)溫度調(diào)節(jié)器。該溫度調(diào)節(jié)器有兩位8位無符號(hào)二進(jìn)制輸入,輸入數(shù)據(jù)分別表示以華氏度為計(jì)量單位的目標(biāo)溫度和實(shí)際溫度。假定兩個(gè)溫度都高于凍結(jié)溫度〔32〕,該溫度調(diào)節(jié)器的探測(cè)器有兩個(gè)輸出:1當(dāng)實(shí)際溫度低于目標(biāo)溫度5f時(shí),把加熱器翻開;2當(dāng)實(shí)際溫度超過目標(biāo)溫度5f時(shí),把制冷器翻開。Modulethermoseat(outputheater_on,cooler_on,Input[7:0]target,actual);Assignheater_on=actual<target-5;Assigncooler_on=actual>target+5;Endmodule作業(yè)5請(qǐng)?jiān)O(shè)計(jì)一個(gè)能對(duì)16個(gè)時(shí)鐘周期進(jìn)行計(jì)數(shù)的電路,并由此產(chǎn)生控制信號(hào)ctrl,每當(dāng)計(jì)數(shù)器計(jì)到第8和第12個(gè)時(shí)鐘周期時(shí),控制信號(hào)ctrl變?yōu)?,其余時(shí)間控制信號(hào)ctrl均為0.解決方案,我們需要一個(gè)4位的計(jì)數(shù)器,該計(jì)數(shù)器從0計(jì)數(shù)到15,然后返回到0.在第8個(gè)周期計(jì)數(shù)值是0111,在第12個(gè)周期計(jì)數(shù)值為1011.通過對(duì)這個(gè)兩個(gè)計(jì)數(shù)值進(jìn)行譯碼,并對(duì)這兩個(gè)譯碼信號(hào)進(jìn)行邏輯或,便可產(chǎn)生要求的控制信號(hào)。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請(qǐng)編寫一個(gè)verilog模型來描述一個(gè)具有時(shí)鐘輸入/加載控制和數(shù)據(jù)輸入端口及一個(gè)最終計(jì)數(shù)輸出端口的時(shí)間間隔定時(shí)器。該定時(shí)器能夠定時(shí)的時(shí)間間隔必須大于1000個(gè)時(shí)鐘周期。解決方案,數(shù)據(jù)輸入和計(jì)數(shù)器的位寬至少需要有10位,因?yàn)檫@是表示大于十進(jìn)制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請(qǐng)修改上例中的時(shí)間間隔定時(shí)器,使得當(dāng)該定時(shí)器減到0時(shí),可以重新加載以前曾經(jīng)加載過的值,而不是返回到最大的計(jì)數(shù)值。解決方案需要使用一個(gè)獨(dú)立的存放器來存儲(chǔ)加載到計(jì)數(shù)器中的數(shù)值。當(dāng)加載輸入load為1時(shí),一個(gè)新的數(shù)據(jù)值被加載到獨(dú)立的存放器和計(jì)數(shù)器。當(dāng)減到最終計(jì)數(shù)0時(shí),獨(dú)立存放器中存儲(chǔ)的數(shù)據(jù)被加載到計(jì)數(shù)器中。修改后的時(shí)間間隔定時(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è)請(qǐng)編寫按鍵去抖氣的verilog模型,去抖采樣的時(shí)間間隔為10ms假設(shè)系統(tǒng)的時(shí)鐘頻率為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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論