国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于JavaScript的計(jì)算機(jī)組成原理虛擬實(shí)驗(yàn)系統(tǒng)的設(shè)計(jì)

2023-06-03 11:58白家璇辛雨雯崔天宇
電腦知識(shí)與技術(shù) 2023年10期
關(guān)鍵詞:計(jì)算機(jī)組成原理虛擬實(shí)驗(yàn)

白家璇 辛雨雯 崔天宇

關(guān)鍵詞:JavaScript;虛擬實(shí)驗(yàn);計(jì)算機(jī)組成原理

中圖分類(lèi)號(hào):G642;TP391 文獻(xiàn)標(biāo)識(shí)碼:A

文章編號(hào):1009-3044(2023)10-0059-04

0 引言

計(jì)算機(jī)組成原理是中國(guó)民航大學(xué)本科計(jì)算機(jī)專(zhuān)業(yè)的專(zhuān)業(yè)基礎(chǔ)課,通過(guò)學(xué)習(xí),體會(huì)到本課程的實(shí)踐性很強(qiáng),需要?jiǎng)邮植僮鲗?shí)踐才能真正理解理論內(nèi)容,但傳統(tǒng)的只在實(shí)物實(shí)驗(yàn)箱上進(jìn)行實(shí)驗(yàn)操作存在很多不足。譬如:1)固化的內(nèi)部電路,內(nèi)部的每個(gè)功能模塊硬件電路已焊接好,只需連接I/O導(dǎo)線(xiàn)即可搭建電路連接圖,對(duì)硬件電路缺乏設(shè)計(jì)動(dòng)手能力的培養(yǎng),而且也只能做相對(duì)固定的實(shí)驗(yàn),不方便擴(kuò)展,難于進(jìn)行設(shè)計(jì)性和綜合性實(shí)驗(yàn),更新?lián)Q代等都很難跟上時(shí)代的發(fā)展需求;2)已經(jīng)封裝好的實(shí)驗(yàn)箱,其內(nèi)部的實(shí)現(xiàn)原理、運(yùn)行狀態(tài)等都無(wú)法直接觀察;3)實(shí)驗(yàn)室的開(kāi)放時(shí)間有限,因人力資源、學(xué)生自身的上課安排、實(shí)驗(yàn)室課程安排等現(xiàn)實(shí)原因造成大多數(shù)情況下,學(xué)生能使用實(shí)驗(yàn)箱的時(shí)間遠(yuǎn)遠(yuǎn)不足,學(xué)生的實(shí)驗(yàn)時(shí)間和空間受到極大限制;4)在實(shí)驗(yàn)連線(xiàn)時(shí),容易對(duì)同顏色的接線(xiàn)進(jìn)行混淆,同時(shí),如果實(shí)驗(yàn)箱有問(wèn)題或者部分接線(xiàn)的損壞,對(duì)于學(xué)生來(lái)說(shuō)都是未知的,在排查錯(cuò)誤時(shí),不容易將這些硬件的自身問(wèn)題找出來(lái),會(huì)導(dǎo)致實(shí)驗(yàn)效率低下[1]。本文主要介紹一種基于JavaScript設(shè)計(jì)開(kāi)發(fā)的實(shí)驗(yàn)仿真平臺(tái),配合實(shí)物實(shí)驗(yàn)箱進(jìn)行實(shí)驗(yàn),能大大提高學(xué)生的實(shí)驗(yàn)和學(xué)習(xí)效率。

1 系統(tǒng)設(shè)計(jì)方案

本系統(tǒng)在功能上主要開(kāi)發(fā)數(shù)字邏輯課程中的基本邏輯元器件,譬如與、或、非等各種門(mén)電路,D觸發(fā)器等芯片,對(duì)所生成的器件功能驗(yàn)證完成之后,再將這些器件組合應(yīng)用于計(jì)算機(jī)組成原理課程的各種功能模塊的設(shè)計(jì)實(shí)驗(yàn)中,譬如運(yùn)算器、微程序控制器、總線(xiàn)電路、RAM存儲(chǔ)器讀/寫(xiě)、模型機(jī)的模擬實(shí)驗(yàn)等[2]。在此基礎(chǔ)上,作為擴(kuò)展可以再完成微機(jī)接口技術(shù)課程的實(shí)驗(yàn),譬如8253計(jì)數(shù)器/定時(shí)器、8255A并行傳送、8259A中斷等。其中的每一個(gè)器件或模塊都是分解成一個(gè)個(gè)小的實(shí)驗(yàn)分步實(shí)現(xiàn),最后再組合形成一個(gè)具有獨(dú)立功能的模塊。

系統(tǒng)前端采用HTML、CSS、VML 工具,其中CSS實(shí)現(xiàn)系統(tǒng)外觀的設(shè)計(jì)及各個(gè)部件的具體外形,VML實(shí)現(xiàn)組件間的線(xiàn)路連接生成功能;后端采用JavaScript工具;通過(guò)UI界面選擇實(shí)驗(yàn)所需芯片;通過(guò)HTML5File API將電路保存為.txt文件(.txt文件具有還原電路功能);選用Webstorm作為代碼編譯平臺(tái)(Webstorm具有項(xiàng)目重構(gòu)、快捷搜索、自動(dòng)排版、代碼提示、錯(cuò)誤提示等優(yōu)點(diǎn))。另外,還需引入組件調(diào)度模塊,因?yàn)樵谕ㄟ^(guò)組件庫(kù)與電路繪制模塊設(shè)計(jì)好電路圖之后,運(yùn)行時(shí)還需要解決如何讓各個(gè)組件協(xié)調(diào)有序的工作,否則會(huì)出錯(cuò)。系統(tǒng)總體功能模塊結(jié)構(gòu)如圖1所示。

2 系統(tǒng)芯片設(shè)計(jì)

本系統(tǒng)開(kāi)發(fā)涉及邏輯與、或等各種門(mén)電路器件的設(shè)計(jì),74LS139、74LS175、74LS273、74LS374等多個(gè)數(shù)字功能器件的設(shè)計(jì),continuousPulse等多個(gè)基本原件的設(shè)計(jì)、EPROM2716只讀存儲(chǔ)器等多個(gè)存儲(chǔ)芯片的設(shè)計(jì)和SuqueTimer脈沖發(fā)生器的設(shè)計(jì)和運(yùn)算器等多個(gè)模塊的設(shè)計(jì)。

2.1 數(shù)字功能器件設(shè)計(jì)

設(shè)計(jì)一個(gè)芯片器件,首先需通過(guò)代碼定義每個(gè)芯片的外觀,主要包括定義芯片上對(duì)應(yīng)位置引腳的類(lèi)型type、數(shù)據(jù)源器件source、中間器件intermediat、目的器件destination等,每個(gè)芯片的設(shè)計(jì)大同小異,本文以74LS273為例介紹數(shù)字功能器件的設(shè)計(jì)方法。涉及的外觀屬性主要有:id—芯片編號(hào)(唯一,為后面設(shè)計(jì)前端時(shí)引用);type—寄存器上對(duì)應(yīng)位置引腳類(lèi)型;source—數(shù)據(jù)源器件;intermediate—中間器件;destination—目的器件;name—器件外觀顯示名稱(chēng);width—器件外觀寬度;Height—器件外觀高度;PaddingLR—器件左右邊距;Pinname—器件引腳名稱(chēng),Pinwidth—器件引腳寬度(不小于16)。

芯片外觀設(shè)計(jì)好后,還需對(duì)芯片的運(yùn)算條件進(jìn)行設(shè)計(jì)與判斷。74LS273首先對(duì)用戶(hù)的輸入值進(jìn)行有無(wú)變化的判斷,如果有變化,返回true,否則返回false,同時(shí)判斷mr、cp的值(mr為pinNO=0的引腳,cp為pinNo=10的引腳),此處mr為0,處于清0狀態(tài),判斷函數(shù)返回true不為0時(shí),通過(guò)cp時(shí)鐘信號(hào)對(duì)數(shù)據(jù)進(jìn)行鎖存。對(duì)于74LS273的功能實(shí)現(xiàn)函數(shù),還需判斷其pinNo是否為0,即mr 引腳,如果本引腳處于低電平,則74LS273芯片處于清0狀態(tài),否則正常輸出[3-4]。在本74LS273的設(shè)計(jì)中通過(guò)使用for循環(huán)實(shí)現(xiàn)芯片的功能函數(shù),具體編程代碼如圖2所示。

2.2 基本原件設(shè)計(jì)

本文以continuousPulse為例介紹基本原件的設(shè)計(jì)方法,主要討論其工作方式。對(duì)于是否已達(dá)到運(yùn)算標(biāo)準(zhǔn)的函數(shù)判斷,因?yàn)榇斯δ芟喈?dāng)于給一次脈沖,一旦按下這個(gè)脈沖,器件就到達(dá)了運(yùn)算條件,所以只需要簡(jiǎn)單地判斷輸入端口是否有值輸入即可。

對(duì)于輸入引腳值的設(shè)置,系統(tǒng)中使用了if結(jié)構(gòu)進(jìn)行判斷,如果設(shè)置輸入的值為0,則將其值設(shè)置為1,否則設(shè)置為0,同時(shí)判斷芯片是否達(dá)到了運(yùn)算條件[5-6]。

2.3 虛擬組件設(shè)計(jì)

本文以EPROM2716c4為例介紹虛擬組件的設(shè)計(jì)方法,其重要引腳為第11(ce)與12(oe)引腳。首先判斷芯片所有的值是否已經(jīng)輸入,如果ce片選信號(hào)與oe讀信號(hào)中有一個(gè)輸入,則返回True,否則返回False;對(duì)于只讀存儲(chǔ)器是否滿(mǎn)足運(yùn)行條件的判斷,需通過(guò)輸入值進(jìn)行,如果輸入的值沒(méi)有變化,就無(wú)須再重新計(jì)算,當(dāng)ce或oe中有一個(gè)引腳的值為1時(shí),則各個(gè)io引腳變?yōu)楦咦钁B(tài)。

3 計(jì)算機(jī)組成原理仿真實(shí)驗(yàn)

3.1 全加器仿真實(shí)驗(yàn)

全加器仿真實(shí)驗(yàn)的電路圖設(shè)計(jì)如圖3所示,共用到3個(gè)與門(mén)、2個(gè)或門(mén)、2個(gè)異或門(mén),3個(gè)輸入、2個(gè)輸出(輸入、輸出見(jiàn)表1)。當(dāng)Ai和Bi異或后再與Ci-1進(jìn)行異或可得到SUMi,當(dāng)Ai、Bi、Ci-1中只要有兩個(gè)以上的輸入為1,則進(jìn)位Ci=1。所以,只需要將其中的兩個(gè)變量求與,然后再將結(jié)果求或,具體邏輯表達(dá)式為:

此全加器共有3個(gè)輸入量,按照所設(shè)計(jì)的進(jìn)行電路連接,分為輸出“和”SUMi、進(jìn)位輸出Ci,這樣就設(shè)計(jì)了一個(gè)“1位加法器”[7-8]。

按照?qǐng)D3的設(shè)計(jì)進(jìn)行電路連接,得到如圖4所示的電路圖。

由圖3、圖4和表1可知,此全加器設(shè)計(jì)都用1作為輸入(3個(gè)開(kāi)關(guān)均為輸入),在遇到第二個(gè)與門(mén)時(shí),因?yàn)榈谌艦楫惢蜷T(mén),所以就會(huì)有1個(gè)0的輸入,在左邊的最后一個(gè)與門(mén)處,會(huì)接受右分支輸入的1個(gè)0,這個(gè)右分支的0與左分支的1相與,最后輸出0結(jié)果,小燈滅;同時(shí)可以看到,如果右邊的小燈為異或,相對(duì)于左邊,則一個(gè)輸入為0,另外一個(gè)輸入為1,兩者相與,就能得到1,右邊的小燈就會(huì)不斷閃爍,與實(shí)驗(yàn)結(jié)果相符。此時(shí),如果把左邊的與門(mén)改成異或門(mén),原理上左邊的小燈應(yīng)該會(huì)亮[9],仿真實(shí)驗(yàn)結(jié)果也得到了證實(shí),如圖5所示。

3.2 RAM 仿真實(shí)驗(yàn)

本文以RAM6116隨機(jī)存儲(chǔ)器芯片的讀/寫(xiě)操作實(shí)驗(yàn)仿真為例,驗(yàn)證RAM的讀/寫(xiě)操作以及AR地址寄存器的地址寫(xiě)入功能,驗(yàn)證實(shí)驗(yàn)電路圖的設(shè)計(jì)如圖6所示,用到了系統(tǒng)所設(shè)計(jì)的74LS273和74LS245芯片,其中74LS273作為AR地址寄存器使用,同時(shí)也作為總線(xiàn)向RAM6116進(jìn)行寫(xiě)數(shù)據(jù)的傳輸寄存器,74LS245作為一條總線(xiàn)向RAM6116寫(xiě)入中間數(shù)據(jù)寄存器使用,起暫存數(shù)據(jù)作用,其他的還用到控制數(shù)據(jù)輸入開(kāi)關(guān),給“與”上升沿脈沖的單脈沖信號(hào)P1、P2及用于數(shù)據(jù)顯示的顯示燈使用。

此RAM6116的實(shí)驗(yàn)原理:SW7-SW0數(shù)據(jù)開(kāi)關(guān)用于設(shè)置讀/寫(xiě)地址和欲寫(xiě)入存儲(chǔ)器的數(shù)據(jù),經(jīng)三態(tài)門(mén)74LS245與總線(xiàn)相連,通過(guò)總線(xiàn)把地址發(fā)送至AR。靜態(tài)存儲(chǔ)器由1片6116(2K×8)構(gòu)成,但地址輸入引腳A8~A10接地,因此實(shí)際存儲(chǔ)容量為256字節(jié),其余地址引腳A0~A7與AR相連,讀和寫(xiě)的地址均由AR給出。6116的數(shù)據(jù)引腳為輸入、輸出雙向引腳,與總線(xiàn)相連,既可從總線(xiàn)輸入要輸?shù)臄?shù)據(jù),也可以通過(guò)總線(xiàn)輸出數(shù)據(jù)到數(shù)據(jù)燈顯示。共使用了兩組顯示燈,一組顯示從存儲(chǔ)器讀出的數(shù)據(jù),另一組顯示存儲(chǔ)單元的地址[10]。

讀數(shù)據(jù)時(shí),在數(shù)據(jù)開(kāi)關(guān)上設(shè)置好要讀取的存儲(chǔ)單元地址,并打開(kāi)三態(tài)門(mén)74LS245,LDAR置1,發(fā)出P2脈沖,將地址輸入6116,設(shè)置6116為讀操作,即可讀出數(shù)據(jù)并在數(shù)據(jù)燈上顯示。

寫(xiě)數(shù)據(jù)時(shí),先在數(shù)據(jù)開(kāi)關(guān)上設(shè)置好要存儲(chǔ)單元的地址,并打開(kāi)三態(tài)門(mén)74LS245,LDAR置1,發(fā)出一個(gè)P2脈沖,將地址送入6116,然后在數(shù)據(jù)開(kāi)關(guān)上設(shè)置好要寫(xiě)入的數(shù)據(jù),確保三態(tài)門(mén)打開(kāi),設(shè)置6116為寫(xiě)操作,發(fā)出一個(gè)P1脈沖,即可將數(shù)據(jù)寫(xiě)入。RAM驗(yàn)證實(shí)驗(yàn)電路圖和如此相連的電路圖如圖7和圖8所示。設(shè)置電路的初始狀態(tài)為MR=1、CE=1、SW-BUS=1。

1)寫(xiě)操作仿真。以存入11H 為例,調(diào)節(jié)SW7~SW0為存入的地址00000001,LDAR和WE都置為1,打開(kāi)SW-BUS,點(diǎn)擊P2,觀察到中間一排燈泡僅最后一個(gè)點(diǎn)亮,即操作無(wú)誤;關(guān)閉SW-BUS,調(diào)節(jié)SW7~SW0為存入的數(shù)據(jù)00010001,打開(kāi)SW-BUS,然后打開(kāi)CE,點(diǎn)擊P1,可以觀察到上面一排燈泡為00010001,1為亮0為暗(如圖8所示),即操作無(wú)誤,關(guān)閉CE,關(guān)閉SW-BUS。重復(fù)上述過(guò)程直至全部存入[11]。

在圖8中可以看到中間一排燈泡僅最后一個(gè)點(diǎn)亮(操作無(wú)誤),上面一排燈泡為00010001(1為點(diǎn)亮0為滅,操作無(wú)誤),存入正確。

2)讀操作仿真。以讀取11H為例仿真讀操作,接著以上1)中最后存入的繼續(xù),此時(shí)SW-BUS處于關(guān)閉狀態(tài)。調(diào)整SW7~SW0為00000001,然后打開(kāi)SWBUS,點(diǎn)擊P2,打開(kāi)CE和WE,觀察到上面一排燈泡的點(diǎn)亮狀態(tài),然后關(guān)閉CE和SW-BUS。重復(fù)上述過(guò)程,直至完成所有數(shù)據(jù)的讀操作[12]。

4 結(jié)束語(yǔ)

本虛擬實(shí)驗(yàn)系統(tǒng)基于JavaScript開(kāi)發(fā)了許多數(shù)字邏輯組件,大致分為4類(lèi):1)74LS181、RAM等芯片器件;2)與、或、非、異或等各種邏輯門(mén)電路;3)開(kāi)關(guān)、小燈、單脈沖和連續(xù)脈沖等基本元件;4)為了屏蔽電路細(xì)節(jié)或?qū)崿F(xiàn)電路簡(jiǎn)潔,將多個(gè)功能部件封裝為一個(gè)組件而成的各種虛擬組件,譬如時(shí)序電路組件、EPROM2716。在此基礎(chǔ)上,設(shè)計(jì)了計(jì)算機(jī)組成原理課程實(shí)驗(yàn)中的多個(gè)模塊并進(jìn)行了仿真實(shí)驗(yàn),譬如全加器、運(yùn)算器、微控制器等[13]。新冠疫情期間,配合實(shí)物實(shí)驗(yàn)箱,部分模塊已用在了中國(guó)民航大學(xué)計(jì)算機(jī)專(zhuān)業(yè)的計(jì)算機(jī)組成原理課程中。實(shí)踐證明,通過(guò)開(kāi)發(fā)系統(tǒng),大大提高了學(xué)生的分析解決問(wèn)題能力和創(chuàng)新能力;在實(shí)際教學(xué)中應(yīng)用仿真實(shí)驗(yàn),能有效提高學(xué)生的學(xué)習(xí)熱情和學(xué)習(xí)積極性,收到了事半功倍的學(xué)習(xí)效果,受到了學(xué)生的極大歡迎。

同時(shí),基于JavaScript的開(kāi)發(fā)平臺(tái)也存有一些不足,譬如芯片數(shù)量有限,如果在實(shí)驗(yàn)過(guò)程中發(fā)現(xiàn)芯片短缺時(shí),還須重新設(shè)計(jì);通過(guò)VML設(shè)計(jì)的連線(xiàn)也有一定的局限性,對(duì)于較復(fù)雜的實(shí)驗(yàn),連線(xiàn)很多會(huì)很亂,沒(méi)有優(yōu)化機(jī)制。

另外,系統(tǒng)開(kāi)發(fā)也參考了https://blog.csdn.net/qq_51314467/article/details/124159657 和https://blog.csdn.net/qq_51314467/article/details/124733329網(wǎng)站的相關(guān)內(nèi)容,在此一并表示感謝。

猜你喜歡
計(jì)算機(jī)組成原理虛擬實(shí)驗(yàn)
虛擬現(xiàn)實(shí)技術(shù)在初中物理實(shí)驗(yàn)教學(xué)中的應(yīng)用
面向計(jì)算機(jī)系統(tǒng)能力培養(yǎng)的計(jì)算機(jī)組成原理實(shí)驗(yàn)教學(xué)
用“工程思維”引領(lǐng)《計(jì)算機(jī)組成原理》課程教學(xué)
《計(jì)算機(jī)組成原理》課程建設(shè)的改革與探索