專利名稱:一種計(jì)算機(jī)組成原理和系統(tǒng)結(jié)構(gòu)的實(shí)驗(yàn)裝置的制作方法
技術(shù)領(lǐng)域:
本實(shí)用新型涉及一種計(jì)算機(jī)組成原理和系統(tǒng)結(jié)構(gòu)的實(shí)驗(yàn)裝置,屬計(jì)算機(jī)教學(xué)實(shí)驗(yàn)儀器技術(shù)領(lǐng)域。
背景技術(shù):
計(jì)算機(jī)組成原理和計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)都是大學(xué)很重要的基礎(chǔ)課。目前市場(chǎng)上計(jì)算機(jī)組成原理的實(shí)驗(yàn)裝置有若干種,例如清華大學(xué)科教儀器廠生產(chǎn)的TEC-2000計(jì)算機(jī)組成原理實(shí)驗(yàn)系統(tǒng),其結(jié)構(gòu)框圖如圖1所示,北京理工達(dá)勝科技有限公司生產(chǎn)的EL-JY計(jì)算機(jī)組成原理教學(xué)實(shí)驗(yàn)系統(tǒng)和西安唐都科教儀器開發(fā)有限責(zé)任公司生產(chǎn)的TDN-CM++計(jì)算機(jī)組成和系統(tǒng)結(jié)構(gòu)教學(xué)實(shí)驗(yàn)系統(tǒng)。TEC-2000計(jì)算機(jī)組成原理實(shí)驗(yàn)系統(tǒng),其結(jié)構(gòu)框圖如圖1所示。由中央處理器(以下簡稱CPU)和監(jiān)控程序及靜態(tài)隨機(jī)讀寫(RAM)存儲(chǔ)器組成一臺(tái)實(shí)驗(yàn)計(jì)算機(jī),實(shí)驗(yàn)計(jì)算機(jī)和個(gè)人計(jì)算機(jī)機(jī)中的調(diào)試軟件通過RS232通訊,個(gè)人計(jì)算機(jī)機(jī)中的調(diào)試軟件通過RS232通訊指揮實(shí)驗(yàn)計(jì)算機(jī)的調(diào)試。實(shí)驗(yàn)計(jì)算機(jī)由于使用了固化的監(jiān)控程序,因此實(shí)驗(yàn)計(jì)算機(jī)的指令集是固定的。由于CPU不是由1片現(xiàn)場(chǎng)可編程門陣列FPGA構(gòu)成,系統(tǒng)結(jié)構(gòu)是固定的、不可改變的。由于采用了實(shí)驗(yàn)計(jì)算機(jī)和個(gè)人計(jì)算機(jī)機(jī)上的調(diào)試軟件通過RS232通訊的方式調(diào)試實(shí)驗(yàn)計(jì)算機(jī),無法做到對(duì)實(shí)驗(yàn)裝置中的CPU進(jìn)行半個(gè)時(shí)鐘脈沖和1個(gè)時(shí)鐘脈沖的控制。尤其是采用固化的監(jiān)控程序,指令集及系統(tǒng)結(jié)構(gòu)不可改變,因此不利于發(fā)揮學(xué)生的創(chuàng)造性。
發(fā)明內(nèi)容
本實(shí)用新型的目的是設(shè)計(jì)一種計(jì)算機(jī)組成原理和系統(tǒng)結(jié)構(gòu)的實(shí)驗(yàn)裝置,在該實(shí)驗(yàn)裝置上進(jìn)行指令集可隨時(shí)改變的開放式CPU的設(shè)計(jì)和檢測(cè),實(shí)現(xiàn)CPU系統(tǒng)結(jié)構(gòu)的可變性。
本實(shí)用新型提出的計(jì)算機(jī)組成原理和系統(tǒng)結(jié)構(gòu)的實(shí)驗(yàn)裝置,包括單片機(jī),中央處理器,存儲(chǔ)器,第一、第二、第三和第四三態(tài)總線驅(qū)動(dòng)器,第一和第二三態(tài)輸出的總線發(fā)送接收器;其中(1)單片機(jī),用于接收個(gè)人計(jì)算機(jī)中調(diào)試程序的操作命令,并回送操作命令執(zhí)行的結(jié)果,操作命令用于對(duì)中央處理器進(jìn)行測(cè)試;(2)中央處理器,由裝置使用者進(jìn)行設(shè)計(jì)和測(cè)試,中央處理器的時(shí)鐘由單片機(jī)提供;(3)存儲(chǔ)器,用于存儲(chǔ)上述裝置使用者編寫的對(duì)中央處理器的功能進(jìn)行測(cè)試的程序及其運(yùn)行結(jié)果;(4)第一三態(tài)總線驅(qū)動(dòng)器,用于接通或者斷開單片機(jī)與中央處理器之間的寄存器數(shù)據(jù)總線和單片機(jī)數(shù)據(jù)總線的邏輯連接;(5)第二三態(tài)總線驅(qū)動(dòng)器,用于接通或斷開中央處理器與存儲(chǔ)器之間的CPU存儲(chǔ)器地址總線與存儲(chǔ)器地址總線之間的邏輯連接;(6)第三三態(tài)總線驅(qū)動(dòng)器,用于接通或斷開單片機(jī)與中央處理器之間的CPU存儲(chǔ)器地址總線與單片機(jī)數(shù)據(jù)總線的邏輯連接;(7)第四三態(tài)總線驅(qū)動(dòng)器,用于接通或斷開單片機(jī)與存儲(chǔ)器之間的存儲(chǔ)器地址總線與單片機(jī)地址總線的邏輯連接;(8)第一三態(tài)輸出的總線發(fā)送接收器,用于接通或斷開中央處理器與存儲(chǔ)器之間的CPU數(shù)據(jù)總線與存儲(chǔ)器數(shù)據(jù)總線的邏輯連接;(9)第二三態(tài)輸出的總線發(fā)送接收器,用于接通或斷開單片機(jī)與存儲(chǔ)器之間的單片機(jī)數(shù)據(jù)總線與存儲(chǔ)器數(shù)據(jù)總線的邏輯連接;上述單片機(jī)通過寄存器地址總線、CPU時(shí)鐘線與中央處理器相連,通過單片機(jī)數(shù)據(jù)總線與第二三態(tài)輸出的總線發(fā)送接收器相連,通過單片機(jī)數(shù)據(jù)總線分別與第一、第三三態(tài)總線驅(qū)動(dòng)器相連,通過單片機(jī)地址總線與第四三態(tài)總線驅(qū)動(dòng)器相連;上述中央處理器通過寄存器數(shù)據(jù)總線與第一三態(tài)總線驅(qū)動(dòng)器相連,通過CPU數(shù)據(jù)總線與第一三態(tài)輸出的總線發(fā)送接收器相連,通過CPU存儲(chǔ)器地址總線分別與第二、第三三態(tài)總線驅(qū)動(dòng)器相連;上述存儲(chǔ)器通過存儲(chǔ)器數(shù)據(jù)總線分別與第一、第二三態(tài)輸出的總線發(fā)送接收器相連,通過存儲(chǔ)器地址總線分別與第二、第四三態(tài)總線驅(qū)動(dòng)器相連。
本實(shí)用新型提出的計(jì)算機(jī)組成原理和系統(tǒng)結(jié)構(gòu)的實(shí)驗(yàn)裝置,具有既滿足驗(yàn)證性實(shí)驗(yàn)又滿足開放式、創(chuàng)新式實(shí)驗(yàn)的優(yōu)點(diǎn),使用者可以在本實(shí)用新型裝置上設(shè)計(jì)各種普通CPU、具有流水功能的CPU、具有高速緩存(cache)功能的CPU、超標(biāo)量CPU,并成功地對(duì)設(shè)計(jì)的CPU進(jìn)行測(cè)試,與已有技術(shù)相比,具有更好的教學(xué)效果。采用本實(shí)用新型的計(jì)算機(jī)組成原理和系統(tǒng)結(jié)構(gòu)的實(shí)驗(yàn)裝置,實(shí)現(xiàn)了現(xiàn)有的實(shí)驗(yàn)裝置不能完成的指令集可隨時(shí)改變的開放式CPU的設(shè)計(jì)和檢測(cè),實(shí)現(xiàn)CPU系統(tǒng)結(jié)構(gòu)的可變性;實(shí)現(xiàn)對(duì)CPU進(jìn)行半個(gè)時(shí)鐘和1個(gè)時(shí)鐘和連續(xù)運(yùn)行的控制;實(shí)現(xiàn)對(duì)CPU各內(nèi)部寄存器的檢測(cè)。
圖1是已有技術(shù)的結(jié)構(gòu)框圖。
圖2是本實(shí)用新型提出的計(jì)算機(jī)組成原理和系統(tǒng)結(jié)構(gòu)的實(shí)驗(yàn)裝置的結(jié)構(gòu)框圖。
圖3(1)和圖3(2)是本實(shí)用新型實(shí)驗(yàn)裝置的一個(gè)實(shí)施例的電路圖。
具體實(shí)施方式
本實(shí)用新型提出的計(jì)算機(jī)組成原理和系統(tǒng)結(jié)構(gòu)的實(shí)驗(yàn)裝置的結(jié)構(gòu)框圖如圖2所示,包括單片機(jī)K2,中央處理器K9,存儲(chǔ)器K10,第一、第二、第三和第四三態(tài)總線驅(qū)動(dòng)器K3、K7、K8、K5,第一和第二三態(tài)輸出的總線發(fā)送接收器K6和K4;其中(1)單片機(jī)K2,用于接收個(gè)人計(jì)算機(jī)中調(diào)試程序的操作命令,并回送操作命令執(zhí)行的結(jié)果,操作命令用于對(duì)中央處理器K9進(jìn)行測(cè)試;(2)中央處理器K9,由裝置使用者進(jìn)行設(shè)計(jì)和測(cè)試,中央處理器K9的時(shí)鐘由單片機(jī)提供;(3)存儲(chǔ)器K10,用于存儲(chǔ)上述裝置使用者編寫的對(duì)中央處理器K9的功能進(jìn)行測(cè)試的程序及其運(yùn)行結(jié)果;(4)第一三態(tài)總線驅(qū)動(dòng)器K3,用于接通或者斷開單片機(jī)與中央處理器之間的寄存器數(shù)據(jù)總線和單片機(jī)數(shù)據(jù)總線的邏輯連接;
(5)第二三態(tài)總線驅(qū)動(dòng)器K7,用于接通或斷開中央處理器與存儲(chǔ)器之間的CPU存儲(chǔ)器地址總線與存儲(chǔ)器地址總線之間的邏輯連接;(6)第三三態(tài)總線驅(qū)動(dòng)器K8,用于接通或斷開單片機(jī)與中央處理器之間的CPU存儲(chǔ)器地址總線與單片機(jī)數(shù)據(jù)總線的邏輯連接;(7)第四三態(tài)總線驅(qū)動(dòng)器K5,用于接通或斷開單片機(jī)與存儲(chǔ)器之間的存儲(chǔ)器地址總線與單片機(jī)地址總線的邏輯連接;(8)第一三態(tài)輸出的總線發(fā)送接收器K6,用于接通或斷開中央處理器與存儲(chǔ)器之間的CPU數(shù)據(jù)總線與存儲(chǔ)器數(shù)據(jù)總線的邏輯連接;(9)第二三態(tài)輸出的總線發(fā)送接收器K4,用于接通或斷開單片機(jī)與存儲(chǔ)器之間的單片機(jī)數(shù)據(jù)總線與存儲(chǔ)器數(shù)據(jù)總線的邏輯連接;上述單片機(jī)K2通過寄存器地址總線、CPU時(shí)鐘線與中央處理器K9相連,通過單片機(jī)數(shù)據(jù)總線與第二三態(tài)輸出的總線發(fā)送接收器K4相連,通過單片機(jī)數(shù)據(jù)總線分別與第一、第三三態(tài)總線驅(qū)動(dòng)器K3、K8相連,通過單片機(jī)地址總線與第四三態(tài)總線驅(qū)動(dòng)器K5相連;上述中央處理器K9通過寄存器數(shù)據(jù)總線與第一三態(tài)總線驅(qū)動(dòng)器K3相連,通過CPU數(shù)據(jù)總線與第一三態(tài)輸出的總線發(fā)送接收器K6相連,通過CPU存儲(chǔ)器地址總線分別與第二、第三三態(tài)總線驅(qū)動(dòng)器K7、K8相連;上述存儲(chǔ)器K10通過存儲(chǔ)器數(shù)據(jù)總線分別與第一、第二三態(tài)輸出的總線發(fā)送接收器K6、K4相連,通過存儲(chǔ)器地址總線分別與第二、第四三態(tài)總線驅(qū)動(dòng)器K7、K5相連。
本實(shí)用新型實(shí)驗(yàn)裝置中與單片機(jī)實(shí)現(xiàn)RS232通訊的個(gè)人計(jì)算機(jī)上的調(diào)試程序,采用規(guī)則文件和匯編語言程序相結(jié)合的方法,通過規(guī)則文件定義CPU的指令集,為指令集和CPU系統(tǒng)結(jié)構(gòu)的可變性提供基本條件;通過匯編語言文件設(shè)計(jì)CPU的測(cè)試程序,在調(diào)試軟件的指揮下,使用測(cè)試程序?qū)κ褂谜咴O(shè)計(jì)的CPU進(jìn)行測(cè)試。
本實(shí)用新型裝置中的CPU由一片現(xiàn)場(chǎng)可編程陣列邏輯(以下簡稱FPGA)器件構(gòu)成,通過軟件下載的方式能把普通CPU、具有流水功能的CPU、具有cache功能的CPU、超標(biāo)量CPU等各種不同系統(tǒng)結(jié)構(gòu)的CPU下載到FPGA芯片中,單片機(jī)控制CPU,不需要固化的監(jiān)控程序。
個(gè)人計(jì)算機(jī)上的調(diào)試軟件通過RS232通訊指揮單片機(jī)操作,單片機(jī)將個(gè)人計(jì)算機(jī)機(jī)上的CPU測(cè)試程序通過第四三態(tài)總線驅(qū)動(dòng)器K5和第二三態(tài)輸出的總線發(fā)送接收器K4裝入到存儲(chǔ)器K10中。單片機(jī)通過第四三態(tài)總線驅(qū)動(dòng)器K5和第二三態(tài)輸出的總線發(fā)送接收器K4讀出存儲(chǔ)器K10中的CPU測(cè)試程序和測(cè)試結(jié)果,通過RS232通訊將測(cè)試程序和測(cè)試結(jié)果送到個(gè)人計(jì)算機(jī)機(jī)上的調(diào)試程序。單片機(jī)提供CPU的時(shí)鐘,時(shí)鐘一次可以是一個(gè)、半個(gè)或者連續(xù)時(shí)鐘,半個(gè)時(shí)鐘是指時(shí)鐘由高變低一次或者由低變高一次。CPU通過第二三態(tài)總線驅(qū)動(dòng)器K7和第一三態(tài)輸出的總線發(fā)送接收器K6從存儲(chǔ)器K10讀取指令和數(shù)據(jù),或者向存儲(chǔ)器寫入數(shù)據(jù)。單片機(jī)指定CPU中寄存器的地址,通過第一三態(tài)總線驅(qū)動(dòng)器K3讀取CPU中寄存器數(shù)據(jù),通過RS232通訊將寄存器中的數(shù)據(jù)送到個(gè)人計(jì)算機(jī)上的調(diào)試程序。
以下結(jié)合附圖,詳細(xì)介紹本實(shí)用新型的一個(gè)實(shí)施例。
在圖2中K1是個(gè)人計(jì)算機(jī)中的調(diào)試軟件。它由三部分組成,定義指令集格式的規(guī)則文件、按照規(guī)則文件制定的指令集編程的測(cè)試程序以及負(fù)責(zé)與單片機(jī)K2通訊指揮對(duì)CPU測(cè)試的部分。規(guī)則文件和測(cè)試程序都是使用者編制的,使用者首先寫出規(guī)則文件,確定自己設(shè)計(jì)的CPU的指令集,然后寫出匯編格式的測(cè)試程序,調(diào)試程序根據(jù)規(guī)則文件確定的指令集將測(cè)試程序編譯成二進(jìn)制格式的目標(biāo)程序。調(diào)試軟件通過RS232通訊向單片機(jī)發(fā)出各種調(diào)試命令,將二進(jìn)制格式的測(cè)試程序(下文中的測(cè)試程序均指二進(jìn)制格式的測(cè)試程序)裝入到存儲(chǔ)器K10中,從存儲(chǔ)器K10中讀回測(cè)試程序,檢查測(cè)試程序是否正確裝入到存儲(chǔ)器K10中,讀出保存在存儲(chǔ)器K10中測(cè)試結(jié)果,進(jìn)行單步運(yùn)行、半個(gè)時(shí)鐘運(yùn)行、設(shè)置斷點(diǎn)、運(yùn)行到斷點(diǎn)和讀CPU中寄存器的值等調(diào)試命令。
K2是單片機(jī)。它接收個(gè)人計(jì)算機(jī)中的調(diào)試軟件K1通過RS232通訊發(fā)來的命令,根據(jù)這些命令單片機(jī)將測(cè)試程序裝入到存儲(chǔ)器K10中,從存儲(chǔ)器K10中讀回測(cè)試程序,檢查測(cè)試程序是否正確裝入到存儲(chǔ)器K10中,讀出保存在存儲(chǔ)器K10中測(cè)試結(jié)果,執(zhí)行單步運(yùn)行、半個(gè)時(shí)鐘運(yùn)行、設(shè)置斷點(diǎn)、運(yùn)行到斷點(diǎn)和讀CPU中寄存器的值等調(diào)試命令,從而實(shí)現(xiàn)FPGA芯片中的CPU K10的調(diào)試。單片機(jī)通過三態(tài)總線驅(qū)動(dòng)器K5提供向存儲(chǔ)器K10提供讀、寫地址,通過三態(tài)輸出的總線發(fā)送接收器K4向存儲(chǔ)器K10寫數(shù)據(jù)或者讀存儲(chǔ)器K10中的數(shù)據(jù),實(shí)現(xiàn)單片機(jī)對(duì)存儲(chǔ)器K10的讀、寫。單片機(jī)通過寄存器地址總線指定CPU K10中的寄存器地址,通過三態(tài)總線驅(qū)動(dòng)器K3讀取指定的CPU寄存器中的值。單片機(jī)通過三態(tài)驅(qū)動(dòng)器K8監(jiān)視CPU存儲(chǔ)器地址總線,與單片機(jī)通過CPU時(shí)鐘線向CPU K10提供的時(shí)鐘一起實(shí)現(xiàn)對(duì)CPU測(cè)試程序運(yùn)行的控制。
K3是三態(tài)總線驅(qū)動(dòng)器。當(dāng)單片機(jī)K2讀取CPUK10中的寄存器值時(shí),三態(tài)總線驅(qū)動(dòng)器K3使能,將寄存器數(shù)據(jù)總線和單片機(jī)數(shù)據(jù)總線接通,其他時(shí)間三態(tài)總線驅(qū)動(dòng)器K3禁止,將寄存器數(shù)據(jù)總線和單片機(jī)數(shù)據(jù)總線隔離。
K4是三態(tài)輸出的總線發(fā)送接收器。在單片機(jī)K2讀、寫存儲(chǔ)器K10時(shí),使能三態(tài)輸出的總線發(fā)送接收器,使存儲(chǔ)器數(shù)據(jù)總線和單片機(jī)數(shù)據(jù)總線接通,和使能的三態(tài)總線驅(qū)動(dòng)器K5共同實(shí)現(xiàn)單片機(jī)對(duì)存儲(chǔ)器的讀、寫。其他時(shí)間三態(tài)輸出的總線發(fā)送接收器K4禁止,將存儲(chǔ)器數(shù)據(jù)總線和單片機(jī)數(shù)據(jù)總線隔離。
K5是三態(tài)總線驅(qū)動(dòng)器。在單片機(jī)K2讀、寫存儲(chǔ)器K10時(shí),三態(tài)總線驅(qū)動(dòng)器K5使能,將單片機(jī)地址總線和存儲(chǔ)器地址總線接通,單片機(jī)K2通過三態(tài)總線驅(qū)動(dòng)器K5提供存儲(chǔ)器的K10讀、寫地址,和使能的三態(tài)輸出的總線發(fā)送接收器K4共同實(shí)現(xiàn)單片機(jī)K2對(duì)存儲(chǔ)器的讀、寫。其他時(shí)間三態(tài)總線驅(qū)動(dòng)器K5禁止,將單片機(jī)地址總線和存儲(chǔ)器地址總線隔離。
K6是三態(tài)輸出的總線發(fā)送接收器。在CPU K9讀、寫存儲(chǔ)器K10時(shí),三態(tài)輸出的總線發(fā)送接收器K6使能,接通CPU數(shù)據(jù)總線和存儲(chǔ)器數(shù)據(jù)總線,和使能的三態(tài)總線驅(qū)動(dòng)器K7一起實(shí)現(xiàn)CPU K9對(duì)存儲(chǔ)器K10的讀、寫。其他時(shí)間三態(tài)輸出的總線發(fā)送接收器K7禁止,將CPU數(shù)據(jù)總線和存儲(chǔ)器數(shù)據(jù)總線隔離。
K7是三態(tài)總線驅(qū)動(dòng)器。在CPU K9讀、寫存儲(chǔ)器K10時(shí),三態(tài)總線驅(qū)動(dòng)器K7使能,將CPU存儲(chǔ)器地址總線和存儲(chǔ)器地址總線接通,CPU K9通過三態(tài)總線驅(qū)動(dòng)器K7向存儲(chǔ)器提供讀、寫的存儲(chǔ)器地址,與使能的三態(tài)輸出的總線發(fā)送接收器K6共同實(shí)現(xiàn)CPUK9對(duì)存儲(chǔ)器K10的讀、寫。其他時(shí)間三態(tài)總線驅(qū)動(dòng)器K7禁止,將CPU存儲(chǔ)器地址總線和存儲(chǔ)器地址總線隔離。
K8是三態(tài)總線驅(qū)動(dòng)器。當(dāng)單片機(jī)K2需要讀CPU存儲(chǔ)器地址總線的值時(shí),使能三態(tài)總線驅(qū)動(dòng)器K8,禁止三態(tài)總線驅(qū)動(dòng)器K3,禁止三態(tài)輸出的總線發(fā)送接收器K4。當(dāng)單片機(jī)K2不讀CPU存儲(chǔ)器地址總線的值時(shí),禁止三態(tài)總線驅(qū)動(dòng)器K8。
K9是FPGA中的使用者設(shè)計(jì)的CPU。CPU K9的時(shí)鐘由單片機(jī)K2提供。單片機(jī)K2通過CPU寄存器地址總線向CPU K9指定寄存器地址,通過三態(tài)總線驅(qū)動(dòng)器K3從CPU K10中讀指定的寄存器值。CPU K9通過三態(tài)總線驅(qū)動(dòng)器K7向存儲(chǔ)器K10發(fā)送存儲(chǔ)器地址,通過三態(tài)輸出的總線發(fā)送接收器K6對(duì)存儲(chǔ)器K10進(jìn)行讀、寫。單片機(jī)K2通過三態(tài)總線驅(qū)動(dòng)器K8讀CPU存儲(chǔ)器地址總線。
K10是存儲(chǔ)器。存儲(chǔ)器K10接受單片機(jī)K2和CPU K9的讀、寫。當(dāng)單片機(jī)K2讀、寫存儲(chǔ)器K10時(shí),三態(tài)輸出的總線發(fā)送接收器K4使能,接通單片機(jī)數(shù)據(jù)總線和存儲(chǔ)器數(shù)據(jù)總線,三態(tài)輸出的總線發(fā)送接收器K6禁止,隔離CPU數(shù)據(jù)總線和存儲(chǔ)器數(shù)據(jù)總線;三態(tài)總線驅(qū)動(dòng)器K5使能,接通單片機(jī)地址總線和存儲(chǔ)器地址總線,三態(tài)總線驅(qū)動(dòng)器K7禁止,隔離CPU存儲(chǔ)器地址總線和存儲(chǔ)器地址總線;從而實(shí)現(xiàn)單片機(jī)K2對(duì)存儲(chǔ)器K10的讀、寫。當(dāng)CPU K9讀、寫存儲(chǔ)器K10時(shí),三態(tài)輸出的總線發(fā)送接收器K6使能,接通CPU數(shù)據(jù)總線和存儲(chǔ)器數(shù)據(jù)總線,三態(tài)輸出的總線發(fā)送接收K5禁止,隔離單片機(jī)數(shù)據(jù)總線和存儲(chǔ)器數(shù)據(jù)總線;三態(tài)總線驅(qū)動(dòng)器K7使能,接通CPU存儲(chǔ)器地址總線和存儲(chǔ)器地址總線,三態(tài)總線驅(qū)動(dòng)器K5禁止,隔離單片機(jī)地址總線和存儲(chǔ)器地址總線;從而實(shí)現(xiàn)CPUK9對(duì)存儲(chǔ)器的讀、寫。
在圖3(1)和(2)中圖2中的單片機(jī)K2由圖3(1)中的單片機(jī)AT89S52 U1、振蕩頻率11.0592MHz的晶體振蕩器CY、容量10μF的電解電容C1、阻值1K歐姆的電阻R3、單片機(jī)復(fù)位按鈕KD3、電平轉(zhuǎn)換電路MAX233 U3、9針插座U4、八D型透明鎖存器74LS373 U5、3-8譯碼器74LS138 U6和通用陣列邏輯GAL16V8 U7組成。
AT89S52 U1是一個(gè)數(shù)據(jù)總線8位D0-D7、地址總線16位A0-A15的單片機(jī),其中地址總線的低8位A0-A7和數(shù)據(jù)總線D0-D7是分時(shí)復(fù)用的,使用鎖存信號(hào)ALE將地址總線的低8位A0-A7從數(shù)據(jù)總線D0-D7中分離出來,74LS373 U5完成分離出地址總線的低8位A0-A7的功能,地址總線的低8位A0-A7和高8位中的低3位A8-A10共同組成單片機(jī)地址總線A0-A10。地址總線的高5位不作為地址總線使用,它們作為控制信號(hào)S1、S2、S3、/SELMDL和/SELMDL使用。S1、S2和S3經(jīng)3-8譯碼器74LS138 U6譯碼后產(chǎn)生/SELFAL、/SELFAH、/SELREGL和/SELREGH;當(dāng)/SELFAL為低電平時(shí),使能74LS244 U16、接通CPU地址總線的低8位FA0-FA7和單片機(jī)數(shù)據(jù)總線D0-D7;當(dāng)/SELFAH為低時(shí),使能74LS244 U15,接通CPU地址總線的高8位FA8-FA8和單片機(jī)數(shù)據(jù)總線D0-D7;當(dāng)/SELMDL為低電平時(shí),使能74LS245 U13,接通單片機(jī)數(shù)據(jù)總線D0-D7和存儲(chǔ)器數(shù)據(jù)總線低8位RD0-RD7;當(dāng)/SELMDH為低電平時(shí),使能74LS245 U12,接通單片機(jī)數(shù)據(jù)總線D0-D7和存儲(chǔ)器數(shù)據(jù)總線高8位RD8-RD15。/SELMDL和/SELMDH一方面直接作為控制信號(hào)使用,另一方面連接到GAL16V8 U7產(chǎn)生其他控制信號(hào);當(dāng)/SELMDL為低電平時(shí),使能74LS245 U13,接通單片機(jī)數(shù)據(jù)總線D0-D7和存儲(chǔ)器數(shù)據(jù)總線的低8位RD0-RD7;當(dāng)/SELMDH為低電平時(shí),使能74LS245 U12,接通單片機(jī)數(shù)據(jù)總線D0-D7和存儲(chǔ)器數(shù)據(jù)總線的高8位RD8-RD15。AT89S52 U1產(chǎn)生的串行通訊信號(hào)RXD和TXD送往MAX233 U3,用于和個(gè)人計(jì)算機(jī)機(jī)上的調(diào)試軟件K1進(jìn)行RS232通訊。AT89S52 U1輸出的ALE信號(hào)送往74LS373 U5,將單片機(jī)數(shù)據(jù)總線D0-D7上的存儲(chǔ)器地址總線分離出來,形成存儲(chǔ)器地址總線的低8位A0-A7。AT89S52(U1)產(chǎn)生的/WRD/WWR存儲(chǔ)器讀、寫信號(hào)送往GAL16V8 U7連同其他信號(hào)共同產(chǎn)生對(duì)存儲(chǔ)器HM6116 U10和U11的讀、寫和片選信號(hào)。AT89S52 U1產(chǎn)生的/RAMCTL信號(hào)送往74LS245 U19和U20,送往74LS244 U17和U18,送往GAL16V8 U7。當(dāng)/RANCTL為低電平時(shí),使能74LS245 U19和U20,接通CPU數(shù)據(jù)總線FD0-FD15和存儲(chǔ)器數(shù)據(jù)總線RD0-RD15;使能74LS244 U17和U18,接通CPU地址總線低11位FA0-FA10和存儲(chǔ)器地址總線RA0-RA10。送往GAL16V8 U7的/RAMCTL經(jīng)GAL16V8 U7反相后產(chǎn)生RAMCTL。AT89S52 U1輸出的CPUCLK送往CPU U14作為CPU的時(shí)鐘。AT89S52 U1輸出的REGA0-REGA5送往CPU U14作為寄存器地址。AT89S52 U1內(nèi)部有一個(gè)8K字節(jié)的FLASH存儲(chǔ)器(一般稱為閃存),存儲(chǔ)監(jiān)控程序,監(jiān)控程序指揮AT89S52 U1的運(yùn)行。
CY是一個(gè)振蕩頻率為11.0592MHz的晶體振蕩器,它提供AT89S52的時(shí)鐘。
C1是一個(gè)10μF的電容,R3是一個(gè)阻值2K歐姆的電阻,它們共同產(chǎn)生+5伏電源加電時(shí)AT89S52 U1所需的復(fù)位信號(hào)。
KD3是一個(gè)單片機(jī)復(fù)位按鈕,按下復(fù)位按鈕,產(chǎn)生一個(gè)AT89S52 U1的復(fù)位信號(hào)。
電平轉(zhuǎn)換器MAX233 U3是一個(gè)將來自AT89S52 U1的不符合RS232通訊電平要求的RXD和TXD信號(hào)轉(zhuǎn)換成符合RS232通訊電平要求的RXD和TXD信號(hào)。
U4是一個(gè)9針插座,連接和個(gè)人計(jì)算機(jī)機(jī)上調(diào)試軟件通訊使用的RS232通訊電纜。
U5是鎖存器74LS373。當(dāng)來自AT89S52 U1的ALE為高時(shí),U5將單片機(jī)數(shù)據(jù)總線D0-D7上包含的存儲(chǔ)器地址信號(hào)鎖存,生成單片機(jī)地址總線的低8位FA0-FA7。
U6是一個(gè)3-8譯碼器74LS138,它將來自AT89S52 U1的信號(hào)S0、S1和S2譯碼成/SELFAL、/SELFAH、/SELREGL和/SELREGH。當(dāng)/SELFAL為低電平時(shí),使能74LS244 U16,接通CPU地址總線的低8位FA0-FA7和單片機(jī)數(shù)據(jù)總線D0-D7。當(dāng)/SELFAH為低電平時(shí),使能74LS244 U15,接通CPU地址總線的高8位FA8-FA15和單片機(jī)數(shù)據(jù)總線D0-D7。當(dāng)/SELREGL為低電平時(shí),使能74LS244 U21,接通寄存器總線的低8位REGD0-REGD7和單片機(jī)數(shù)據(jù)總線D0-D7。當(dāng)/SELREGH為低電平時(shí),使能74LS244 U22,接通寄存器數(shù)據(jù)總線的高8位REGD8-REGD15和單片機(jī)數(shù)據(jù)總線D0-D7。
U7是門陣列邏輯器件GAL16V8。它將來自AT89S52 U1的信號(hào)/SELMDL、/SELMDH、/RAMCTL、/MRD、/MWR,來自CPU U14的信號(hào)/CPURD、/CPUWR經(jīng)組合邏輯譯碼轉(zhuǎn)換成信號(hào)/RAM1、/RAM2、RAMCTL、/RWR和/ROE。/RAM1是HM6116 U10的片選信號(hào),當(dāng)/RAM1為低電平時(shí),選中HM6116 U10。/RAM2是HM6116 U11的片選信號(hào),當(dāng)/RAM2為低電平時(shí),選中HM6116 U11。/ROE是HM6116 U10和U11的讀信號(hào),低電平有效。/RWR是HM6116 U10和U11的寫信號(hào),低電平有效。當(dāng)RAMCTL為低電平時(shí),使能74LS244 U8和U9,接通單片機(jī)地址總線A0-A10和存儲(chǔ)器地址總線RA0-RA10。
圖2中的第一三態(tài)總線驅(qū)動(dòng)器K3由圖3(2)中的兩個(gè)74LS244 U21和U22組成。當(dāng)/SELREGL為低電平時(shí),使能74LS244 U21,將寄存器數(shù)據(jù)總線的低8位REGD0-REGD7和單片機(jī)數(shù)據(jù)總線D0-D7接通;當(dāng)/SELREGH為低電平時(shí),使能74LS244 U22,將寄存器數(shù)據(jù)總線的高8位REGD8-REGD15和單片機(jī)數(shù)據(jù)總線D0-D7接通。/SELREGL和/SELREGH由74LS138 U6產(chǎn)生。
圖2中的第二三態(tài)輸出的總線發(fā)送接收器(K4)由圖3(1)中的兩個(gè)74LS245 U12和U13組成。當(dāng)/SELMDL為低電平時(shí),74LS245 U13使能,將單片機(jī)數(shù)據(jù)總線D0-D7和存儲(chǔ)器數(shù)據(jù)總線的低8位RD0-RD7接通;當(dāng)/SELMDH為低電平時(shí),74LS245 U12使能,將單片機(jī)數(shù)據(jù)總線D0-D7和存儲(chǔ)器數(shù)據(jù)總線的高8位RD8-RD15接通。/MRD控制數(shù)據(jù)傳輸方向,當(dāng)/MRD為低電平時(shí),從存儲(chǔ)器數(shù)據(jù)總線向單片機(jī)數(shù)據(jù)總線傳送數(shù)據(jù);當(dāng)/MRD為高電平時(shí),從向單片機(jī)數(shù)據(jù)總線存儲(chǔ)器數(shù)據(jù)總線傳送數(shù)據(jù)。/SELMDL、/SELMDH和/MRD由單片機(jī)AT89S52 U1產(chǎn)生。
圖2中的第四三態(tài)總線驅(qū)動(dòng)器K5由圖3(1)中的由兩個(gè)74LS244 U8和U9組成。當(dāng)RAMCTL為低電平時(shí),74LS244 U8和U9使能,接通單片機(jī)地址總線A0-A10和存儲(chǔ)器地址總線。RAMCTL由GAL16V8 U7產(chǎn)生,它是單片機(jī)AT89S52 U1提供的/RAMCTL的反相。
圖2中的第一三態(tài)輸出的總線發(fā)送接收器K6由圖3(2)中的兩個(gè)74LS245 U19和U20組成。當(dāng)/RAMCTL為低電平時(shí),74LS245 U19和U20使能,接通CPU數(shù)據(jù)總線FD0-FD15和存儲(chǔ)器數(shù)據(jù)總線RD0-RD15。當(dāng)/CPURD為低電平時(shí),數(shù)據(jù)從存儲(chǔ)器數(shù)據(jù)總線傳送到CPU數(shù)據(jù)總線;當(dāng)/CPURD為高電平時(shí),數(shù)據(jù)從CPU數(shù)據(jù)總線傳送到存儲(chǔ)器數(shù)據(jù)總線。/RAMCTL由由單片機(jī)AT89S52 U1提供,/CPURD由CPU U14提供。
圖2中的第二三態(tài)總線驅(qū)動(dòng)器K7由圖3(2)中的兩個(gè)74LS244 U17和U18組成。當(dāng)/RAMCTL為低電平時(shí),兩個(gè)74LS244 17和U18使能,將CPU地址總線的FA0-FA10和存儲(chǔ)器地址總線的RA0-RA10接通。/RAMCTL由單片機(jī)AT89S52 U1提供圖2中的第三三態(tài)總線驅(qū)動(dòng)器K8由圖3(2)中的兩個(gè)74LS244 U21和U22組成。當(dāng)/SELREGL為低電平時(shí),74LS244 U21使能,寄存器數(shù)據(jù)總線的低8位REGD0-REGD7和單片機(jī)數(shù)據(jù)總線D0-D7接通。當(dāng)/SELREGH為低電平時(shí),74LS244 U22使能,寄存器數(shù)據(jù)總線的高8位REGD8-REGD15和單片機(jī)數(shù)據(jù)總線D0-D7接通。/SELREGL和/SELREGH不能同時(shí)為低電平,它們由74LS138 U6產(chǎn)生。
圖2中的CPU K9就是圖3(2)中的CPU U14,它是一片容量為10萬門的FPGA器件,型號(hào)是EP1K100。使用者設(shè)計(jì)的CPU下載到EP1K100器件中后構(gòu)成一個(gè)等待測(cè)試的CPU,CPU內(nèi)部的系統(tǒng)結(jié)構(gòu)可以千差萬別,但它的外部輸入輸出引腳和時(shí)鐘引腳必須要與圖3(2)中U14規(guī)定的引腳一致才能被測(cè)試。CPU的時(shí)鐘CPUCLK(在引腳79)由單片機(jī)AT89S52 U1直接提供。FA0-FA15是CPU地址總線,提供存儲(chǔ)器的讀、寫地址;FD0-FD15是CPU數(shù)據(jù)總線,提供寫入存儲(chǔ)器的數(shù)據(jù)或者從存儲(chǔ)器讀出數(shù)據(jù)。REGA0-REGA15是寄存器地址總線,由單片機(jī)AT89S52 U1直接提供,用于指定CPU中寄存器的地址;REGD0-REGD15是寄存器數(shù)據(jù)總線,CPU通過它向單片機(jī)AT89S52 U1輸出寄存器數(shù)據(jù)。/CPURD(在U14引腳10上)和/CPUWR(在U14引腳11上)分別是CPU產(chǎn)生的存儲(chǔ)器讀、寫信號(hào)。
圖2中存儲(chǔ)器K10由圖3(1)中的兩個(gè)HM6116 U10和U11組成。HM6116是靜態(tài)隨機(jī)讀寫器件,每個(gè)HM6116容量為2048字節(jié),兩個(gè)HM6116并行連接構(gòu)成了一個(gè)11位地址、字長16位的存儲(chǔ)器。地址RA0-RA11構(gòu)成了存儲(chǔ)器地址總線。數(shù)據(jù)D0-D15構(gòu)成了存儲(chǔ)器數(shù)據(jù)總線,其中D0-D7是存儲(chǔ)器數(shù)據(jù)總線低8位,D8-D15是存儲(chǔ)器高8位。單片機(jī)U1每次只能對(duì)一個(gè)HM6116進(jìn)行讀、寫操作,CPU U14同時(shí)對(duì)兩個(gè)HM6116進(jìn)行讀、寫操作。兩個(gè)HM6116的片選信號(hào)/RAM1、/RAM2,讀信號(hào)/ROE,寫信號(hào)/RWR由GAL16V8 U8產(chǎn)生。
權(quán)利要求1.一種計(jì)算機(jī)組成原理和系統(tǒng)結(jié)構(gòu)的實(shí)驗(yàn)裝置,其特征在于該實(shí)驗(yàn)裝置包括單片機(jī),中央處理器,存儲(chǔ)器,第一、第二、第三和第四三態(tài)總線驅(qū)動(dòng)器,第一和第二三態(tài)輸出的總線發(fā)送接收器;其中(1)單片機(jī),用于接收個(gè)人計(jì)算機(jī)中調(diào)試程序的操作命令,并回送操作命令執(zhí)行的結(jié)果,操作命令用于對(duì)中央處理器進(jìn)行測(cè)試;(2)中央處理器,由裝置使用者進(jìn)行設(shè)計(jì)和調(diào)試,中央處理器的時(shí)鐘由單片機(jī)提供;(3)存儲(chǔ)器,用于存儲(chǔ)上述裝置使用者編寫的對(duì)中央處理器的功能進(jìn)行測(cè)試的程序及其運(yùn)行結(jié)果;(4)第一三態(tài)總線驅(qū)動(dòng)器,用于接通或者斷開單片機(jī)與中央處理器之間的寄存器數(shù)據(jù)總線和單片機(jī)數(shù)據(jù)總線的邏輯連接;(5)第二三態(tài)總線驅(qū)動(dòng)器,用于接通或斷開中央處理器與存儲(chǔ)器之間的CPU存儲(chǔ)器地址總線與存儲(chǔ)器地址之間的邏輯連接;(6)第三三態(tài)總線驅(qū)動(dòng)器,用于接通或斷開單片機(jī)與中央處理器之間的CPU存儲(chǔ)器地址總線與單片機(jī)數(shù)據(jù)總線的邏輯連接;(7)第四三態(tài)總線驅(qū)動(dòng)器,用于接通或斷開單片機(jī)與存儲(chǔ)器之間的存儲(chǔ)器地址總線與單片機(jī)地址總線的邏輯連接;(8)第一三態(tài)輸出的總線發(fā)送接收器,用于接通或斷開中央處理器與存儲(chǔ)器之間的CPU數(shù)據(jù)總線與存儲(chǔ)器數(shù)據(jù)總線的邏輯連接;(9)第二三態(tài)輸出的總線發(fā)送接收器,用于接通或斷開單片機(jī)與存儲(chǔ)器之間的單片機(jī)數(shù)據(jù)總線與存儲(chǔ)器數(shù)據(jù)總線的邏輯連接;上述單片機(jī)通過寄存器地址總線、CPU時(shí)鐘線與中央處理器相連,通過單片機(jī)數(shù)據(jù)總線與第二三態(tài)輸出的總線發(fā)送接收器相連,通過單片機(jī)數(shù)據(jù)總線與第一、第三三態(tài)總線驅(qū)動(dòng)器相連,通過單片機(jī)地址總線與第四三態(tài)總線驅(qū)動(dòng)器相連;上述中央處理器通過寄存器數(shù)據(jù)總線與第一三態(tài)總線驅(qū)動(dòng)器相連,通過CPU數(shù)據(jù)總線與第一三態(tài)輸出的總線發(fā)送接收器相連,通過CPU存儲(chǔ)器地址總線分別與第二、第三三態(tài)總線驅(qū)動(dòng)器相連;上述存儲(chǔ)器通過存儲(chǔ)器數(shù)據(jù)總線分別與第一、第二三態(tài)輸出的總線發(fā)送接收器相連,通過存儲(chǔ)器地址總線分別與第二、第四三態(tài)總線驅(qū)動(dòng)器相連。
專利摘要本實(shí)用新型涉及一種計(jì)算機(jī)組成原理和系統(tǒng)結(jié)構(gòu)的實(shí)驗(yàn)裝置,屬計(jì)算機(jī)教學(xué)實(shí)驗(yàn)儀器技術(shù)領(lǐng)域。該裝置包括用于接收個(gè)人計(jì)算機(jī)中調(diào)試程序的操作命令的單片機(jī),由裝置使用者進(jìn)行設(shè)計(jì)和測(cè)試的中央處理器,用于存儲(chǔ)對(duì)中央處理器的功能進(jìn)行測(cè)試的程序的存儲(chǔ)器,三態(tài)總線驅(qū)動(dòng)器以及三態(tài)輸出的總線發(fā)送接收器。本實(shí)用新型裝置的優(yōu)點(diǎn)是,即滿足驗(yàn)證性實(shí)驗(yàn)又滿足開放式、創(chuàng)新式實(shí)驗(yàn),使用者可以在本實(shí)用新型裝置上設(shè)計(jì)各種普通CPU、具有流水功能的CPU、具有cache功能的CPU、超標(biāo)量CPU,并成功地對(duì)設(shè)計(jì)的CPU進(jìn)行測(cè)試。
文檔編號(hào)G09B25/02GK2828985SQ20052011905
公開日2006年10月18日 申請(qǐng)日期2005年9月16日 優(yōu)先權(quán)日2005年9月16日
發(fā)明者湯志忠, 楊春武, 李山山, 潘軻, 于艷麗, 劉敬晗 申請(qǐng)人:清華大學(xué)科教儀器廠