徐睿++韋璐
摘要:虛擬元件庫是數字邏輯虛擬實驗平臺最重要的組成部分之一,良好的數字元件模型有助于提升虛擬元件庫的可擴展性、易維護和易操作性等。本文在抽象和形式化表示數字元件的基礎上,采用Qt MVC架構設計和開發(fā)了一個數字邏輯虛擬實驗平臺。該平臺全局一致的數字元件模型能有效提升虛擬元件庫的可用性和開放性,為建立統一的虛擬實驗教學環(huán)境提供依據和保障,使用者和研究者可依需進行二次開發(fā),節(jié)省時間,提高績效。
關鍵詞:QT;MVC;虛擬元件;虛擬實驗平臺;建模
中圖分類號:TP391.41
文獻標識碼:A
DOI: 10.3969/j.issn.1003-6970.2016.01.022
0 引言
計算機等信息與電子工程等專業(yè)的教學不僅注重理論教學,更強調實驗與實踐教學,提高學生的知識應用能力。傳統實驗室和實驗設備能夠給學生提供真實的實驗場景,但建設資金高昂、資源損耗較大,且存在儀器與設備落后,實驗教學形式單一等諸多問題。虛擬實驗室利用計算機來模擬實驗環(huán)境以及實驗過成,學生無需進入實驗室,只需要通過計算機登錄實驗平臺既可以選擇實驗。虛擬數字實驗平臺通過虛擬化數字元件和實驗的方式,具有投入成本低廉、無損耗、維護簡單、更新快等優(yōu)點,易于保證數據采集的實時性,以及數據處理、顯示、存儲的完整性和連續(xù)性等優(yōu)勢,為解決傳統實驗室存在的問題提供了一種有效的解決途徑。2015年1月,我國教育部批準了100個國家級的虛擬仿真實驗教學中心,必定進一步推動和提高我國實驗教學管理信息化和支持服務信息化水平。
虛擬實驗平臺已經成為諸多工程和學術領域的重要實驗手段,各種新型的架構和設計方法不斷涌現,如MVC架構下基于B/S的網絡實驗室架構、基于MVC設計模式的虛擬實驗平臺模塊化的設計方法等等?;贚abView、Proteus等EDA軟件也常被用作模擬和數字電路的虛擬實驗平臺。這些商用軟件功能強大,注重于電子元器件和板級電路的物理特性和功能特性的仿真,但由于版權等問題,并不適于課堂教學和學生自主實驗等方面的應用。中南大學的數字電路虛擬實驗室系統[X]在實驗運行的過程中,能夠實時展示芯片的狀態(tài)信息,并構建了教學節(jié)點的測試實驗庫。高翔等基于Qt[X]的場景視圖模式開發(fā)和設計了虛擬實驗構件建模設計軟件。張婧采用輸入輸出緩沖接口說明(I/OBuffer Information Specifica-tion,IBIS)設計了虛擬實驗的數字芯片的建模方式,通過簡單的文本數據來描述數字模型的行為。
然而,按傳統實驗進行“虛擬化”的處理方式,不僅功能有限、開發(fā)工作量大,易于造成資源浪費和重復開發(fā);而且缺乏系統性的研究,也使得關于虛擬實驗教學的教學設計和教學模式嚴重滯后。因此,本文從數字邏輯元件的特性入手,首先對數字邏輯器件進行抽象和形式化描述,以構建通用的虛擬元件模型。然后,在此基礎上采用Qt MVC架構,設計和實現了一個數字邏輯虛擬實驗平臺來驗證模型的可用性。
l 虛擬數字邏輯元件模型
虛擬元件庫的可護展性直接受制于虛擬元件模型的一致性。數字邏輯芯片通常由其內部特性和外部特性兩個方面來描述。其中,外部特性主要不同封裝形式的引腳排列順序等;內部特性則是芯片的邏輯功能。相對于芯片封裝形式的多變性,芯片的內部特性則具有強不變性。由此,本文虛擬元件模型的重點是表示數字邏輯芯片的功能特性,并通過其與封裝模型的關系建立來構造虛擬元件。本文將數字邏輯芯片劃分為組合邏輯芯片與帶控制的組合邏輯芯片等兩種類別,以簡化元件模型的表示和提升元件模型的一致性。
定義1 組合邏輯元件模型C,由六元組(A,I,G,Ω,F,V)表示。其中,屬性組A由芯片的名字等靜態(tài)屬性組成;Ω:I—G,是信號集I與信號組集G之間的映射,對任意的i∈I,有且僅有一個g∈G,使得i∈g。F:I{V}I是元件的邏輯函數,完成以輸入信號查閱真值表V獲得有效輸出信號的處理過程。
定義2 帶控制的組合邏輯元件模型Cctrl,是在組合邏輯元件模型C的基礎上,增加控制表達式成員E而構成的七元組(A,I,G,Ω,F,V,E)。同時,F被重定義為P{VIE}P,表示僅在控制表達式E運算結果為真時,才能通過真值表V獲得輸入信號對應的輸出信號。表達式E是由給定的一組輸入信號gE(gE∈G,gE p,|p|-|gE|>2)參與運算的邏輯表達式。
上述定義中的信號組G是為更好地按功能劃分信號而引入的,與元件信號的功能分組對應,如輸入信號集和輸出信號集等,但并非是必要的。對象的構成模型是從對象的內部結構的角度出發(fā),從對象范型來看,定義2從定義1繼承而來是有利于模型的程序化實現的,如圖1所示。
2 虛擬數字邏輯元件庫
虛擬數字邏輯元件庫主要是管理虛擬元件模型和維護元件及其封裝形式間的關系。但封裝形式可以展示芯片外觀,卻不能展示芯片內部的功能部件。
MVC (Model View Controller)設計模式以模型(M)、視圖(V)、控制(C)分離模型與界面的代碼,使得同一個模型可有多種不同的表現形式,以控制確保模型數據與界面的同步。從而使系統各模塊相對獨立,既提高了代碼重用性和擴展性,也能讓開發(fā)者在一個時間內專注于一個方面而不依賴其他業(yè)務邏輯,明顯提高開發(fā)的效率。
基于元件模型的定義,本文采用MVC設計模式分離元件的封裝形式與其功能部件,并將部件作為封裝形式的子視圖來構建可視化的虛擬數字元件,如圖2所示。
定義3 虛擬數字邏輯元件VC,由四元組(s,c,t,£)表示。其中,s是如DIP40等封裝形式;c是元件模型;t是元件邏輯視圖;£:CPIG→SS是元件信號集或信號組集與封裝形式引腳序號的映射,即將元件模型的信號映射到封裝形式的一個引腳或一組引腳上。
定義4 虛擬數字邏輯元件庫L是帶引腳映射£約束的元件模型集C、封裝形式集S和元件邏輯視圖集T的笛卡爾集。
基于上述定義,虛擬數字邏輯元件模型可以使用不同的封裝形式、元件視圖來表示的同時,也有利于簡化元件的描述和存儲方式,增加元件庫的易用性和擴展性。使用者在可配置的基礎上,針對不同的環(huán)境條件應用需求,設計不同的元件,完成相應的功能。
3 虛擬數字邏輯實驗平臺
如圖3所示,數字邏輯虛擬實驗平臺主要包括虛擬元件庫的管理模塊和實驗平臺兩個模塊。虛擬元件庫管理模塊包括虛擬元件模型、封裝形式和元件邏輯視圖的添加、編輯、刪除以及引腳配置等管理功能。實驗平臺以虛擬電路板的形式,除提供既定的教學實驗外,也允許用戶自主選擇元件、構建實驗電路,并仿真實驗的運行過程,包括新建/打開實驗、保存實驗、運行實驗等功能。
為了降低演示平臺的開發(fā)難度和縮短開發(fā)周期,采用Qt MVC模式,將元件視圖獨立設計,而將元件模型與控制整合在一起,而沒有涉及元件模型、封裝形式、元件視圖和引腳配置的用戶自主管理等功能。
基于Qt平臺開發(fā)的數字邏輯虛擬實驗平臺,其虛擬元件的數據模型是獨立于視圖和控制器的,模型的本身并不用關心自身如何顯示或者如何被控制,但是模型中所存儲的數據一旦發(fā)生了變化便會通過QT平臺的信號與槽的機制進行刷新。信號和槽是QT自行定義的一種通信機制,獨立于標準的C/C++語言,它可以讓對象之間彼此并不了解的情況下將它們的行為聯系起來。在QT中,信號和槽均作為類的成員函數,當槽和信號相連接時,每當信號發(fā)射,槽函數就會被調用,信號和槽通過connect函數連接。當某個信號對其對象或所有者發(fā)生的內部的狀態(tài)發(fā)生改變,信號被虛擬元件發(fā)射。當這個信號被發(fā)射時,與其相關聯的槽將被立刻執(zhí)行。其中槽是普通的成員函數,執(zhí)行槽就等于函數正常調用,它的特殊性在于很多信號可以與其相關聯。當與其關聯的信號被發(fā)射時,這個槽就會被調用。在數字邏輯虛擬實驗平臺中,虛擬元件模型均綁定了一個信號,其中的數據一旦發(fā)生變化,便會發(fā)射信號導致相關的函數,刷新視圖和觸發(fā)該模型的控制器。
實際操作中,實驗開發(fā)者只需給定元件的真值表、引腳、封裝形式等信息,以及帶控制的邏輯元件的控制表達式,即可完成實驗元件自定義和或是擴展系統的元件庫。
4 應用實例
數字邏輯虛擬實驗平臺構建了虛擬元件庫,提供了典型教學與實驗系統的邏輯工作過程演示程序。用戶可以直接使用該虛擬元件庫中的元件為教師的教學及學生的學習提供理想的教學演示。跑馬燈原理演示效果見圖4。
在工作電路上,我們看不到芯片的內部邏輯,只看到實驗程序的結果,即導線顏色和LED燈的變化。該平臺的實驗展示,可以很清晰地看到整個電路的結果變化。學習者不僅可以觀察到元件的實際作用,也可以看到實驗的工作過程,從而使得他們可以從實驗電路的整體工作過程,加深對基礎知識的理解和掌握元件的應用方法。
5 總結
虛擬實驗具有成本低,效率高,范圍廣,可重用性和可操作性強的特點,已貫穿到了工程類專業(yè)的課程教育中。數字邏輯虛擬實驗平臺的基礎是模型元件以及元件庫。本文研究通過對數字邏輯芯片的結構分層,采用基于QMVC框架對數字邏輯芯片的模型進行設計。這種體系結構避免了編程的復雜性,由于虛擬元件的相互獨立型有助于實現虛擬實驗平臺的開放性,只需對元件進行簡單的配置便可作為新的虛擬元件使用,而不用修改相應的程序。