第一篇:傳媒--數(shù)據(jù)通路實驗報告1號
實驗四
數(shù)據(jù)通路實驗
一、實驗?zāi)康?/p>
1、理解總線的概念、作用和特性。
2、掌握用總線控制數(shù)據(jù)傳送的方法。
3、進一步熟悉教學(xué)計算機的數(shù)據(jù)通路。
4、掌握數(shù)字邏輯電路中故障的一般規(guī)律,以及排除故障的一般原則和方法。
5、鍛煉分析問題與解決問題的能力,在出現(xiàn)故障的情況下,獨立分析故障現(xiàn)象,并排除故障。
二、實驗設(shè)備
1、TWL-PCC計算機組成原理教學(xué)實驗系統(tǒng)一臺,排線若干。
2、PC微機一臺(選配)。
三、實驗原理
總線用來連接計算機中的各個功能部件,是計算機的各部件之間傳輸信息的公共通路,包括傳輸數(shù)據(jù)信息的邏輯電路、管理信息傳輸 協(xié)議的邏輯線路和物理連線。分時和共享是總線的兩大特征。所謂共享,是指在總線上可以掛接多個部件,它們都可以使用這一信息通路來和其他部件傳輸信息。所謂分時,是指同一總線在同一時刻,只能有一個部件占領(lǐng)總線發(fā)送信息,其他部件的信息不能發(fā)送到總線上,邏輯上等同于不存在,只有該部件信息發(fā)送完畢釋放總線后才能申請使用。但在同一時刻可以有多個部件接收信息。
本實驗的數(shù)據(jù)通路圖如圖6.1所示。本實驗將輸入設(shè)備,輸出設(shè)備,存儲器,通用寄存器等單元都掛至總線上,這些設(shè)備都需要有三態(tài)輸出控制,各個部件都有自己的輸入輸出控制信號,通過對這些信號的有序控制,就可以正確地通過總線把數(shù)據(jù)傳送給不同的部件。各個部件的控制信號都需要是連接到“開關(guān)組單元”的各個獨立的二進制開關(guān)上來手動控制。連接到總線上的地址寄存器只有輸入線,其輸出直接連接到存儲器的地址用于鎖存需讀寫的存儲器的地址。
本實驗中時序信號用到T3和T4信號,可將“信號源單元”的時鐘輸出SY接到“時序發(fā)生器單元”的Φ上,將OT3和OT4分別連接到 “總線單元”中相應(yīng)的T3和T4端上,二進制開關(guān)撥至“單步”狀態(tài),然后每按動一次啟動鍵START,就會順序產(chǎn)生一個T3、T4時序信號。
根據(jù)掛接在總線上的部件,設(shè)計一個簡單的實驗:將存儲器10H地址存入數(shù)據(jù)93H,然后將存儲器10H地址單元中存儲的數(shù)據(jù)送輸出單元顯示,同時也存入到R0寄存器中。
.D7D0CSOEWECSOEWEA10-----------A0鎖存譯碼(GAL)a b c d e f gORB_LEDWR數(shù)據(jù)開關(guān)輸入設(shè)備單元輸出設(shè)備單元.圖6.1 總線實驗數(shù)據(jù)通路圖
四、實驗步驟
1.本實驗中各個單元的控制信號分別由不同的開關(guān)獨立控制,連線參考圖見圖6.2所示。
2、按照以下幾步操作: ① 數(shù)據(jù)輸入開關(guān)置10H打入地址寄存器。② 數(shù)據(jù)輸入開關(guān)置數(shù)據(jù)93H打入存儲器。③ 存儲器輸出數(shù)據(jù)到輸出設(shè)備同時打入到R0寄存器。
3、連接實驗線路。參考實驗連線圖如圖6.2所示。仔細檢查無誤后,接通電源。
4、置所有控制信號為初始態(tài):輸入設(shè)備(B_SW=1,RD=1)、地址寄存器(C_AR=0)、存儲器(CS=
1、RD=
1、WE=1)、輸出設(shè)備(B_LED=
1、WR=1)、通用寄存器R0(B_R0=
1、C_R0=0)。
5、“時序發(fā)生器單元”中的二進制開關(guān)撥至“單步”狀態(tài)。
① 數(shù)據(jù)開關(guān)置數(shù)10H,打開輸入設(shè)備輸出三 態(tài)門(B_SW=
1、RD=0),打開地址寄存器打入門控信號(C_AR=1),按動時序啟動鍵START,產(chǎn)生的T3節(jié)拍脈沖將總線上的數(shù)據(jù)打入到地址寄存器中。關(guān)掉地址寄存器打入門控信號(C_AR=0)。
② 數(shù)據(jù)開關(guān)置數(shù)93H,存儲器片選有效寫有 效(CS=0、RD=
1、WE=1→0→1),此時將總線上的數(shù)據(jù)93H寫入到存儲器當前地址單元中。關(guān)掉輸入設(shè)備三態(tài)門(B_SW=1)關(guān)掉存儲器片選線(CS=1)。③ 存儲器片選有效讀有效(CS=0、WE=
1、RD=1),輸出設(shè)備片選有效寫有效(B_LED=0、WR=1→0→1),此時存儲器中的數(shù)打入到輸出設(shè)備的數(shù)碼管中顯示,同時,打開通用寄存器RO的打入門控信號(C_R0=1),按動時序啟動鍵START,產(chǎn)生的T4節(jié)拍脈沖將總線上的數(shù)據(jù)打入到通用寄存器R0中。然后關(guān)存儲器(CS=1),關(guān)通用寄存器打入門控信號(C_R0=0)。
五、實驗要求
1、在數(shù)據(jù)傳送過程中,發(fā)現(xiàn)了什么故障?記錄故障現(xiàn)象,排除故障的分析思路,故障定位及故障的性質(zhì)。
2、以第二種實驗接線方法實現(xiàn)本實驗要求,即存儲器、I/O設(shè)備(包括輸入設(shè)備和輸出設(shè)備)有各自的片選線,但是共用一根讀線和一根寫線的方式連接實驗線路,分析有什么區(qū)別,編寫執(zhí)行流程,寫出詳細的實驗步驟,記錄實驗數(shù)據(jù)。
5.D7...D0輸入設(shè)備單元7D.........B_SWSW3(B_SW)0DRDSW2寄存器堆單元7D.........B_R0SW70元DC_R0SW8單線總輸出設(shè)備單元7D.........B_LEDSW90DWRSW10存儲器單元7DCSSW4(CS).........WESW5(WE)0DA7...A0OESW6(OE)T3T4......A7...A0OT3OT4系統(tǒng)總線單元時序信號Φ發(fā)生器單元C_ARSW17地址寄存器單元SY開關(guān)組單元信號源單元.圖6.2參考實驗連線圖
第二篇:數(shù)據(jù)通路實驗報告
數(shù)據(jù)通路實驗報告
數(shù)據(jù)通路實驗報告
一. 實驗概述。
1.數(shù)據(jù)通路的設(shè)計原則。
數(shù)據(jù)通路的設(shè)計直接影響到控制器的設(shè)計,同時也影響到數(shù)字系統(tǒng)的速度指標和成本。一般來說,處理速度快的數(shù)字系統(tǒng),其中獨立傳遞信息的通路較多。當然,獨立數(shù)據(jù)傳送通路的數(shù)量增加勢必提高控制器設(shè)計復(fù)雜度。因此,在滿足速度指標的前提下,為使數(shù)字系統(tǒng)結(jié)構(gòu)盡量簡單,一般小型系統(tǒng)中多采用單一總線結(jié)構(gòu)。在較大系統(tǒng)中可采用雙總線結(jié)構(gòu)或者三線結(jié)構(gòu)。2.數(shù)據(jù)通路的結(jié)構(gòu)。
① 算術(shù)邏輯單元ALU:有S3,S2,S1,S0,M,CN等6個控制端,用于選擇運算類型。
② 暫存器A和B:保存通用寄存器組讀出的數(shù)據(jù)或BUS上來的數(shù)據(jù)。③ 通用寄存器組R:暫時保存運算器單元ALU算出的結(jié)果。④ 寄存器C:保存ALU運算產(chǎn)生的進位信號。
⑤ RAM隨機讀寫存儲器:受讀/寫操作以及時鐘信號等控制。⑥ MAR:RAM的專用地址寄存器,寄存器的長度決定RAM的容量。⑦ IR:專用寄存器,可存放由RAM讀出的一個特殊數(shù)據(jù)。
⑧ 控制器:用來產(chǎn)生數(shù)據(jù)通路中的所有控制信號,它們與各個子系統(tǒng)上的使能控制信號一一對應(yīng)。
⑨ BUS:單一數(shù)據(jù)總線,通過三態(tài)門與有關(guān)子系統(tǒng)進行連接。
數(shù)據(jù)通路實驗報告
二. 實驗設(shè)計及其仿真檢測。
一,運算器。
8位運算器VHDL
數(shù)據(jù)通路實驗報告
數(shù)據(jù)通路實驗報告
二波形仿真
存儲器。
頂層設(shè)計:
其中sw_pc_ar的VHDL語言描述:,數(shù)據(jù)通路實驗報告
波形仿真
三,原仿真實驗電路。
數(shù)據(jù)通路實驗報告
仿真結(jié)果:
四,修改電路。
因為此次實驗結(jié)果需要下載到FPGA板中進行操作及觀察,而原始電路中,需要輸入的變量數(shù)量過多,導(dǎo)致電板中的輸入按鍵不夠用,所以需要對電路進行修改。此時我們引入一個計數(shù)器PC來代替需要手動輸入的指令alu_sel[5..0]以及數(shù)據(jù)d[7...0]。同時還需要引入數(shù)碼管的位選信號譯碼器choose和段選信號譯碼器xianshi。計數(shù)器PC的VHDL語言描述
數(shù)據(jù)通路實驗報告
位選信號譯碼器choose的VHDL語言描述
數(shù)據(jù)通路實驗報告
段選信號譯碼器的VHDL語言描述
經(jīng)過修改和完善以后的電路圖為
數(shù)據(jù)通路實驗報告
完善后的電路的引腳分配情況
數(shù)據(jù)通路實驗報告
三. 實驗過程。
a)進行數(shù)學(xué)運算以及將運算結(jié)果儲存在某個固定的內(nèi)存地址處。然后從該地址處讀出結(jié)果 i.ii.打開pc_sel[2],重置地址計數(shù)器。
打開總線開關(guān)bus_sel[0],和PC_sel[2],pc_sel[1],pc_sel[0],讓地址計數(shù)器開始計數(shù),跳變到某個地址x時關(guān)閉。
iii.打開總線開關(guān)BUS_SEL[4],打開暫存器r1的開關(guān)ld_reg[4],然后打開計數(shù)器開關(guān)en計數(shù)器開始計數(shù),當計數(shù)到需要的數(shù)字a時,關(guān)閉計數(shù)器開關(guān)en,此時數(shù)字a存入暫存器r1,關(guān)閉暫存器的開關(guān)ld_reg[4],后再關(guān)閉總線開關(guān)BUS_SEL[4],然后再打開計數(shù)器的清零開關(guān)clr再關(guān)閉。iv.v.同理第iii步,在暫存器r2中存入數(shù)據(jù)b。打開總線開關(guān)
bus_sel[0].地址計數(shù)器開關(guān)
ld_reg[0]和pc_sel[2],pc_sel[1],pc_sel[0]選擇存儲地址 vi.打開運算器到總線的開關(guān)bus_sel[1],打開計數(shù)器en計數(shù)開關(guān)en當計數(shù)器跳
數(shù)據(jù)通路實驗報告
變到加法指令011001時,關(guān)閉計數(shù)開關(guān)en,然后代開rom的地址開關(guān)pc_sel[2],以及可寫開關(guān)we_rd[1]。將從運算器中計算出來的運算結(jié)果a+b存儲到ram中的x地址中,關(guān)閉可寫開關(guān)we_rd[1],關(guān)閉pc_sel[2]和總線開關(guān),最后將計數(shù)器清零。
vii.打開ram的可讀開關(guān),讀取x地址處的數(shù)據(jù)a+b。
四. 實驗現(xiàn)象。
輸入數(shù)據(jù)a
輸入數(shù)據(jù)b
數(shù)據(jù)通路實驗報告
進行運算并將運算結(jié)果寫入內(nèi)存
數(shù)據(jù)通路實驗報告
從內(nèi)存中讀取計算結(jié)果
數(shù)據(jù)通路實驗報告
五. 實驗心得。
第一次在電板上進行這么多的操作。操作過程雖然很多,但只要理解操作過程,明白各個按鍵所設(shè)置的引腳作用,實驗其實并不難,重點在于要理解過程,明白數(shù)據(jù)的輸入,存入寄存器,運算以及往內(nèi)存中進行存取值的操作,那么數(shù)據(jù)通路的按鍵很容易記住。
在實驗過程中還是存在很多問題的,尤其的剛開始做實驗的時候,不理解數(shù)據(jù)通路實驗過程中各個門的輸入的意義和順序,但真正懂得的時候,實驗就變得簡單了。
第三篇:運算器數(shù)據(jù)通路實驗報告
運算器數(shù)據(jù)通路實驗
設(shè)計報告
學(xué)號: 姓名: 成績: 學(xué)號: 姓名: 成績:
一、實驗名稱:
總線、半導(dǎo)體靜態(tài)存儲器實驗
二、實驗?zāi)康?1.熟悉函數(shù)功能發(fā)生器的功能、使用方法。2.熟悉運算器的數(shù)據(jù)傳送通路。
3.完成幾種算邏運算操作,加深對運算器工作原理的理解。
三、實驗原理
運算器是計算機中對數(shù)據(jù)進行運算操作的重要部件,它的核心是ALU 函數(shù)功能發(fā)生器(由EPM7064S 構(gòu)成),其次還要有存放操作數(shù)和運算的中間結(jié)果之寄存器以及傳送數(shù)據(jù)的總線等部分。選用不同的控制信號,運算器可以完成不同的運算功能。1.函數(shù)功能發(fā)生器(ALU)的功能。
該函數(shù)功能發(fā)生器(ALU),當輸入為Aj、Bj,對應(yīng)輸出為Fj(j=0,1,2,3,4,5,6,7),它可 實現(xiàn)8 種不同的算術(shù)運算和邏輯算,而且通過對控制參數(shù)SEL2~SEL0S0 來選擇。2.數(shù)據(jù)傳送通路實驗電路方案
實驗方案框圖見圖2—5 所示。
圖中SA、SB 為存放兩個現(xiàn)行操作的緩沖寄存器,其中SA 兼作存放中間結(jié)果的累加器,并且可以通過SA 所連接的八個數(shù)據(jù)燈顯示。SA、SB 接收來自總線的數(shù)據(jù)信息送入ALU 進行 算術(shù)或邏輯操作。通過移位門將運算操作結(jié)果送到總線。并且ALU 和總線之間需用三態(tài)門隔 離(采用74LS245)。
四、實驗內(nèi)容
1.按照實驗電路方案框圖,設(shè)計一個能完成下列八種補碼運算指令的八位運算器。該運算器實現(xiàn)的八種功能如表2—1 所示。
表2—1:
2.根據(jù)運算器設(shè)計,選擇所需元器件,畫出實驗電路的詳細邏輯圖,對開關(guān),單脈沖等 定義。因為和上次實驗類似,也是絕大多數(shù)的器件在“數(shù)據(jù)通路”中已安排好,只要控制各 個控制點即可,除了開關(guān)組通過三態(tài)傳輸門(74LS245)的接法和實驗一一樣外,設(shè)置一個指令寄存器(IR),用74LS573 擔當IR。通過八根連接線和“數(shù)據(jù)通路”中的八位總線連接起來。存放ALU 的控制信息SEL2~SEL0。為了便于觀察IR 中內(nèi)容,可以在IR 的輸出端同時接上三 個電平顯示燈。有的同學(xué)如用三個電平開關(guān)設(shè)置SEL2~SLE0。當然可以得出結(jié)果,但是由于 IR 是一個不可缺少的計算機部件,為了達到完整熟悉計算機各組成部分的目的,這里專門設(shè)置了指令寄存器IR。
3.在電路上進行表2—1 所列的八種指令的手動操作,每次一條指令。實驗時可由數(shù)據(jù) 開關(guān)輸入指令碼及操作數(shù),予以功能的驗證。4.本實驗應(yīng)實現(xiàn)的操作
K→SA(開關(guān)輸入的第一個操作數(shù)置入SA,LED 顯示)K→SB(開關(guān)輸入的第二個操作數(shù)置入SB,無顯示)K→IR(開關(guān)輸入的ALU 控制代碼置入IR)
ALU 運算結(jié)果通過ALU-244→SA(將運算結(jié)果送SA 顯示)具體實驗過程(僅僅作為參考)如下:
1)從輸入設(shè)備(八個鈕子開關(guān))置入第一個數(shù)據(jù),74LS245 的E=0,74LS573 的C 由“0”變?yōu)椤?”(鎖存)后再變?yōu)椤?”(保持);送入Sa(該寄存器接有LED 顯示); 2)從輸入設(shè)備(八個鈕子開關(guān))置入第一個數(shù)據(jù),74LS245 的E=0,74LS573 的C 由“0”變?yōu)椤?”(鎖存)后再變?yōu)椤?”(保持);送入Sb(該寄存器沒有接LED 顯示); 3)從輸入設(shè)備(八個鈕子開關(guān))將需要進行運算操作(如加法操作)的控制代碼(具體內(nèi)容可見表3-4)置入到IR,74LS245 的E=0,74LS573 的C 由“0”變?yōu)椤?”(鎖存)后再變?yōu)椤?”(保持);
4)控制接通ALU-244,使運算結(jié)果上總線;
5)將結(jié)果置入Sa,并通過所接的LED 將結(jié)果顯示出來。
五、測試結(jié)果與性能分析
1、測試結(jié)果:
1)數(shù)據(jù)A準備→三態(tài)門①打開→給寄存器Sa脈沖→數(shù)據(jù)進入Sa;
數(shù)據(jù)B準備→給寄存器Sb脈沖→數(shù)據(jù)進入Sb; 數(shù)據(jù)準備(指令)→給指令寄存器IR脈沖→指令進入IR→三態(tài)門①關(guān)閉; 2)ALU按照指令進行計算,結(jié)果進入總線→三態(tài)門②(寄存器Sa往顯示燈)打開→給寄存器Sa脈沖→顯示燈顯示計算結(jié)果
實驗輸入三組數(shù)據(jù)進行計算 00010000 – 00000001 = 00001111;00010101 & 00001010 = 00000000;00001000 + 00000110 = 00001110;
2、性能分析
單總線結(jié)構(gòu)數(shù)據(jù)傳送慢,使用多總線結(jié)構(gòu)可以提高數(shù)據(jù)傳送效率 另外,EPM7064S 器件性能介紹:
高性能和EEPROM的可編程邏輯器件(PLD)的第二代基于Max 架構(gòu) 5.0-V在系統(tǒng)可編程能力(ISP)具有完整的EPLD的邏輯密度
5納秒引腳到引腳的邏輯延時高達175.4 MHz的計數(shù)器頻率(包括互連)
六、課程設(shè)計總結(jié)(包括設(shè)計的總結(jié)和需要改進之處及體會)
通過這次實驗設(shè)計,我們可以了解運算器數(shù)據(jù)通路的工作原理,各組數(shù)據(jù)的走向和時間邏輯關(guān)系,也更清楚認識了指令控制的重要性。另外這是第一次在電腦上對運算器芯片的引腳進行設(shè)置,稍微有一點差錯就會造成實驗結(jié)果的差異,因此使得我們在實驗中更加專注和仔細。這次實驗的分工也很明確,我負責在實驗臺上搭線,張成濤同學(xué)負責在電腦上設(shè)置運算器引腳。但最終因為實驗臺的更換問題,實驗結(jié)果沒有調(diào)試出來。換了一個電腦進行引腳設(shè)置后,終于成功了。由于有協(xié)調(diào)的合作,實驗操作過程也不會復(fù)雜繁瑣,這次實驗過程很有趣,并且讓我們對機器內(nèi)部數(shù)據(jù)通路的理解有更進一步的啟發(fā)。
教師評語:
教師簽字:
日期:
第四篇:實驗4 數(shù)據(jù)通路 實驗報告
班級:計算機科學(xué)與技術(shù)3班
學(xué)號: 20090810310
姓名:
康小雪
日期: 2011-10-14
實驗3 存儲器實驗
預(yù)習(xí)實驗報告
疑問:
1、數(shù)據(jù)通路是干嘛的?
2、數(shù)據(jù)通路如何實現(xiàn)其功能?
3、實驗書上的存儲器部分總線開關(guān)接在高電平上,是不是錯了?
實驗報告
一、波形圖:
參數(shù)設(shè)置:
Endtime:2.0us
Gridsize:100.0ns 信號設(shè)置:
clk:
時鐘信號,設(shè)置周期為100ns占空比為50%。
bus_sel:
sw|r4|r5|alu|pc_bus的組合,分別代表的是總線(sw_bus)開關(guān),將
存儲器r4的數(shù)據(jù)顯示到總線上,將存儲器r5的數(shù)據(jù)顯示到總線上,將alu的運算結(jié)果顯示到總線上,將pc的數(shù)據(jù)打入AR中二進制輸入,低電平有效。
alu_sel:
m|cn|s[3..0]的組合,代表運算器的運算符號選擇,二進制輸入,高
電平有效。
ld_reg:
lddr1|lddr2|ldr4|ldr5|ld_ar的組合,分別表示將總線數(shù)據(jù)載入寄存器
r1,r2,r4, r5或AR中,二進制輸入,高電平有效。
pc_sel:
pc_clr|ld|en的組合,分別代表地址計數(shù)器PC的清零(pc_clr)、裝
載(pc_ld)和計數(shù)使能信號(pc_en),二進制輸入,低電平有效。
we_rd:
信號we和rd的組合,分別代表對ram的讀(we)與寫(rd)的操作,二進制輸入,高電平有效
k:
k [7]~ k [0],數(shù)據(jù)輸入端信號,十六進制輸入。
d:
d[7]~d[0],數(shù)據(jù)輸出中間信號,十六進制雙向信號。
d~result:
d [7] result ~d[0] result,最終的數(shù)據(jù)輸出信號,十六進制輸出。ar:
ar[7]~ ar[0],地址寄存器AR的輸出結(jié)果,十六進制輸出。pc:
pc [7]~ pc [0],地址計數(shù)器PC的輸出結(jié)果,十六進制輸出。
仿真波形
以在01H單元中寫入05H、02H單元中寫入0AH并進行【(A加B)減(非A與B)加B】為例:
1)初始狀態(tài):bus_sel=11111,alu_sel=00000,ld_reg=00000,pc_sel=100,we_rd=00,k=00H,總線上無數(shù)據(jù),呈高阻態(tài)。2)讀取01H單元的05A:
① 置數(shù)法PC=01H:bus_sel=01111,pc_sel=101 ② PC->AR:bus_sel=11110,ld_reg=00001 ③ 讀01H單元的數(shù)據(jù)放入R1中:bus_sel=11111,ld_reg=10000,we_rd=01 3)讀取02H單元的0AH:
① PC+1,PC->AR:bus_sel=11110,ld_reg=00001,pc_sel=111 ② 讀01H單元的數(shù)據(jù)放入R2中:bus_sel=11111,ld_reg=01000,we_rd=01 4)將地址加到03H :bus_sel=11110,ld_reg=00001,pc_sel=111 5)驗證數(shù)據(jù)并運算: bus_sel=11101 ① 讀取R1中的數(shù)據(jù):alu_sel=010000,得到R1=05H ② 讀取R2中的數(shù)據(jù):alu_sel=101010,得到R2=0AH ③ 計算(A加B)結(jié)果存于R4中:alu_sel=011001,ld_reg=00100,結(jié)果為0FH ④ 計算(非A與B)結(jié)果存于03H單元中:alu_sel=100010,we_rd=10,結(jié)果為0AH ⑤ 計算((A加B)加B)結(jié)果存于04H單元中:
? R4->R1:bus_sel=10111,ld_reg=10000 ? PC+1,PC->AR:bus_sel=11110,ld_reg=00001,pc_sel=111 ? 計算((A加B)加B)結(jié)果存于04H單元中:bus_sel=11101,alu_sel=011001,we_rd=10 ⑥ 計算(((A加B)加B)減(非A與B))結(jié)果存于05H中:
?((A加B)加B)->R1:bus_sel=11111,ld_reg=10000,we_rd=01 ?(非A與B)->R2:
? PC=03H:k=03H,bus_sel=01111,pc_sel=101 ? PC->AR:bus_sel=11110,ld_reg=00001 ?(非A與B)->R2:bus_sel=11111,ld_reg=01000,we_rd=01 ? PC=05H:
? PC=05H:k=03H,bus_sel=01111,pc_sel=101 ? PC->AR:bus_sel=11110,ld_reg=00001 ?
?(((A加B)加B)減(非A與B))結(jié)果存于05H中:bus_sel=11101,alu_sel=000110,we_rd=10 最后結(jié)果為0FH。結(jié)論:
本實驗的設(shè)計能結(jié)合了運算器和存儲器,能實現(xiàn)在mif文件中進行初始化,將固定地址單元中存儲的數(shù)據(jù)讀取到運算器中進行(((A加B)加B)減(非A與B))的運算并將結(jié)果存于指定的內(nèi)存單元中,與實驗要求一致,故電路設(shè)計正確。
二、實驗日志
預(yù)習(xí)疑問解答:
1.通路是干嘛的?
在數(shù)字系統(tǒng)中,各個子系統(tǒng)通過數(shù)據(jù)總線連接形成的數(shù)據(jù)傳送路徑稱為數(shù)據(jù)通路.2.通路如何實現(xiàn)其功能?
在這次的實驗中,數(shù)據(jù)通路主要是由運算器部分和存儲器部分組成的,通過運算器的運算結(jié)合存儲器在mif文件的中的操作進行數(shù)據(jù)的傳輸與存儲,從而構(gòu)成一個數(shù)據(jù)通路.錯
3.書上的存儲器部分總線開關(guān)接在高電平上,是不是錯了? 事實證明沒有接錯.
思考題:
1. 畫數(shù)據(jù)通路電路圖時,如何連結(jié)單一總線? 如圖:
ALU模塊的sw_bus依然連接bus_sel,存儲器部分的sw_bus連接高電平.2. 如何統(tǒng)一兩個模塊的總線輸入端k[7..0]及inputd[7..0]?
答:如圖: 輸入放在運算器部分,存儲器部分無輸入,存儲器部分的數(shù)據(jù)要么來自總線傳輸,要么從mif文件中讀取.實驗中遇到的問題:
1.把之前的alu和ram的原理圖拷到了當前工程下面。直接生成該工程的符號文件,連接起來,但是仿真有問題。
幾乎是在每一次和總線交換數(shù)據(jù)的時候都得不到正確的值。下面是解決的過程:
我懷疑是兩個模塊之間通過總線傳輸?shù)臄?shù)據(jù)沒有傳輸成功,于是把alu模塊的d引了一個輸出端口d_alu,從ram模塊的d引出了一個輸出端口d_ram,在仿真波形圖上,然后就可以看到了數(shù)據(jù)到達總線上了,而且這個時候d的值也能看到了,只是后面的最后一個讀操作出來的數(shù)據(jù)不對,本來應(yīng)該是寫進去的07,但現(xiàn)在是17,再仿真就會變成別的數(shù)據(jù)。2.在連接電路圖的時候,我以為存儲器部分的sw_bus連在高電平上是錯的,然后又連到了bus_sel[4],所以得到了上一個部分的仿真結(jié)果,后來不研究了一下那個高電平,發(fā)現(xiàn)是用來處理單一總線問題的,就改成了與書上一樣的圖,我以為上面出現(xiàn)的錯誤結(jié)果和這個有關(guān),改了之后波形圖有變化,但是,還是是錯誤的.但是在兩種情況下功能仿真的結(jié)果都是正確的:
問題解決了~
原因是周期太短,計算結(jié)果還來不及存入到內(nèi)存單元中,把寫入內(nèi)存的時間周期延長一個周期結(jié)果就出來了。電路本身沒有問題。
實驗心得:
這次實驗是基于前兩次實驗的成果而成的綜合,之前沒有發(fā)現(xiàn)驗收成果后模塊中還存在什么問題,把兩個模塊一拼在一起,問題就出來了,而且不止我一個人出現(xiàn)這樣的狀況,一直沒弄明白這是為什么,后來經(jīng)過反反復(fù)復(fù)的仿真和觀察,終于找出了問題的原因,并順利解決了。這一次又學(xué)到了許多東西。
第五篇:計組實驗數(shù)據(jù)通路實驗報告
存儲器實驗
預(yù)習(xí)實驗報告
疑問:
1、數(shù)據(jù)通路是干嘛的?
2、數(shù)據(jù)通路如何實現(xiàn)其功能?
3、實驗書上的存儲器部分總線開關(guān)接在高電平上,是不是錯了?
一、波形圖:參數(shù)設(shè)置:
信號設(shè)置:
clk:
bus_sel:
alu_sel:
ld_reg:
pc_sel:
we_rd:
k:
d:
d~result:
ar:
pc:
仿真波形
實驗報告
Endtime:2.0us
Gridsize:100.0ns
時鐘信號,設(shè)置周期為100ns占空比為50%。
sw|r4|r5|alu|pc_bus的組合,分別代表的是總線(sw_bus)開關(guān),將
存儲器r4的數(shù)據(jù)顯示到總線上,將存儲器r5的數(shù)據(jù)顯示到總線上,將alu的運算結(jié)果顯示到總線上,將pc的數(shù)據(jù)打入AR中二進制輸入,低電平有效。
m|cn|s[3..0]的組合,代表運算器的運算符號選擇,二進制輸入,高
電平有效。
lddr1|lddr2|ldr4|ldr5|ld_ar的組合,分別表示將總線數(shù)據(jù)載入寄存器
r1,r2,r4, r5或AR中,二進制輸入,高電平有效。
pc_clr|ld|en的組合,分別代表地址計數(shù)器PC的清零(pc_clr)、裝
載(pc_ld)和計數(shù)使能信號(pc_en),二進制輸入,低電平有效。信號we和rd的組合,分別代表對ram的讀(we)與寫(rd)的操作,二進制輸入,高電平有效
k [7]~ k [0],數(shù)據(jù)輸入端信號,十六進制輸入。
d[7]~d[0],數(shù)據(jù)輸出中間信號,十六進制雙向信號。
d [7] result ~d[0] result,最終的數(shù)據(jù)輸出信號,十六進制輸出。ar[7]~ ar[0],地址寄存器AR的輸出結(jié)果,十六進制輸出。pc [7]~ pc [0],地址計數(shù)器PC的輸出結(jié)果,十六進制輸出。
以在01H單元中寫入05H、02H單元中寫入0AH并進行【(A加B)減(非A與B)加B】為例:
1)初始狀態(tài):bus_sel=11111,alu_sel=00000,ld_reg=00000,pc_sel=100,we_rd=00,k=00H,總線上無數(shù)據(jù),呈高阻態(tài)。2)讀取01H單元的05A:
① 置數(shù)法PC=01H:bus_sel=01111,pc_sel=101 ② PC->AR:bus_sel=11110,ld_reg=00001 ③ 讀01H單元的數(shù)據(jù)放入R1中:bus_sel=11111,ld_reg=10000,we_rd=01 3)讀取02H單元的0AH:
① PC+1,PC->AR:bus_sel=11110,ld_reg=00001,pc_sel=111 ② 讀01H單元的數(shù)據(jù)放入R2中:bus_sel=11111,ld_reg=01000,we_rd=01 4)將地址加到03H :bus_sel=11110,ld_reg=00001,pc_sel=111 5)驗證數(shù)據(jù)并運算: bus_sel=11101 ① 讀取R1中的數(shù)據(jù):alu_sel=010000,得到R1=05H ② 讀取R2中的數(shù)據(jù):alu_sel=101010,得到R2=0AH ③ 計算(A加B)結(jié)果存于R4中:alu_sel=011001,ld_reg=00100,結(jié)果為0FH ④ 計算(非A與B)結(jié)果存于03H單元中:alu_sel=100010,we_rd=10,結(jié)果為0AH ⑤ 計算((A加B)加B)結(jié)果存于04H單元中:
? R4->R1:bus_sel=10111,ld_reg=10000 ? PC+1,PC->AR:bus_sel=11110,ld_reg=00001,pc_sel=111 ? 計算((A加B)加B)結(jié)果存于04H單元中:bus_sel=11101,alu_sel=011001,we_rd=10 ⑥ 計算(((A加B)加B)減(非A與B))結(jié)果存于05H中:
?((A加B)加B)->R1:bus_sel=11111,ld_reg=10000,we_rd=01 ?(非A與B)->R2:
? PC=03H:k=03H,bus_sel=01111,pc_sel=101 ? PC->AR:bus_sel=11110,ld_reg=00001 ?(非A與B)->R2:bus_sel=11111,ld_reg=01000,we_rd=01 ? PC=05H:
? PC=05H:k=03H,bus_sel=01111,pc_sel=101 ? PC->AR:bus_sel=11110,ld_reg=00001 ?
?(((A加B)加B)減(非A與B))結(jié)果存于05H中:bus_sel=11101,alu_sel=000110,we_rd=10 最后結(jié)果為0FH。結(jié)論:
本實驗的設(shè)計能結(jié)合了運算器和存儲器,能實現(xiàn)在mif文件中進行初始化,將固定地址單元中存儲的數(shù)據(jù)讀取到運算器中進行(((A加B)加B)減(非A與B))的運算并將結(jié)果存于指定的內(nèi)存單元中,與實驗要求一致,故電路設(shè)計正確。
二、實驗日志
預(yù)習(xí)疑問解答:
1.通路是干嘛的?
在數(shù)字系統(tǒng)中,各個子系統(tǒng)通過數(shù)據(jù)總線連接形成的數(shù)據(jù)傳送路徑稱為數(shù)據(jù)通路.2.通路如何實現(xiàn)其功能?
在這次的實驗中,數(shù)據(jù)通路主要是由運算器部分和存儲器部分組成的,通過運算器的運算結(jié)合存儲器在mif文件的中的操作進行數(shù)據(jù)的傳輸與存儲,從而構(gòu)成一個數(shù)據(jù)通路.錯
3.書上的存儲器部分總線開關(guān)接在高電平上,是不是錯了? 事實證明沒有接錯.
思考題:
1. 畫數(shù)據(jù)通路電路圖時,如何連結(jié)單一總線? 如圖:
ALU模塊的sw_bus依然連接bus_sel,存儲器部分的sw_bus連接高電平.2. 如何統(tǒng)一兩個模塊的總線輸入端k[7..0]及inputd[7..0]?
答:如圖: 輸入放在運算器部分,存儲器部分無輸入,存儲器部分的數(shù)據(jù)要么來自總線傳輸,要么從mif文件中讀取.實驗中遇到的問題:
1.把之前的alu和ram的原理圖拷到了當前工程下面。直接生成該工程的符號文件,連接起來,但是仿真有問題。
幾乎是在每一次和總線交換數(shù)據(jù)的時候都得不到正確的值。下面是解決的過程:
我懷疑是兩個模塊之間通過總線傳輸?shù)臄?shù)據(jù)沒有傳輸成功,于是把alu模塊的d引了一個輸出端口d_alu,從ram模塊的d引出了一個輸出端口d_ram,在仿真波形圖上,然后就可以看到了數(shù)據(jù)到達總線上了,而且這個時候d的值也能看到了,只是后面的最后一個讀操作出來的數(shù)據(jù)不對,本來應(yīng)該是寫進去的07,但現(xiàn)在是17,再仿真就會變成別的數(shù)據(jù)。
2.在連接電路圖的時候,我以為存儲器部分的sw_bus連在高電平上是錯的,然后又連到了bus_sel[4],所以得到了上一個部分的仿真結(jié)果,后來不研究了一下那個高電平,發(fā)現(xiàn)是用來處理單一總線問題的,就改成了與書上一樣的圖,我以為上面出現(xiàn)的錯誤結(jié)果和這個有關(guān),改了之后波形圖有變化,但是,還是是錯誤的.但是在兩種情況下功能仿真的結(jié)果都是正確的:
問題解決了~
原因是周期太短,計算結(jié)果還來不及存入到內(nèi)存單元中,把寫入內(nèi)存的時間周期延長一個周期結(jié)果就出來了。電路本身沒有問題。
實驗心得: