• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      利用TCL與Qt實現(xiàn)IP核圖形界面的設計

      2018-01-23 06:29:12董志丹
      電子與封裝 2018年1期
      關鍵詞:程序代碼圖形用戶界面控件

      李 卿,惠 鋒,董志丹

      (無錫中微億芯有限公司,江蘇無錫 214072)

      1 引言

      隨著 FPGA(Field-Programmable Gate Array)的發(fā)展,芯片的性能越來越強、規(guī)模越來越大、開發(fā)周期越來越長,使得芯片設計面臨一系列新的問題,如設計質量難以控制,設計成本越來越高等,IP(Intelligence Property)技術則解決了芯片設計所面臨的難題。IP是指用來生成ASIC和PLD的邏輯功能塊,又稱IP核(IP Core)[1]。設計者可以重復使用已經設計并經過驗證的IP核,從而更專注于整個系統(tǒng)的設計,提高設計的效率和正確性,降低成本。因此,IP核在電子設計自動化(Electronic Design Automation,EDA)工具推廣和使用中扮演著舉足輕重的角色。該文重點講述IP核圖形用戶界面(GUI)的實現(xiàn)。

      友好、易用的圖形用戶界面在產品推廣時起著至關重要的作用。目前,編程人員多使用VC++、JAVA、Qt等語言實現(xiàn)Windows下的GUI應用[2]。但是作者在程序開發(fā)過程中發(fā)現(xiàn),IP Core種類繁多,每個IP對應一個界面,功能雖類似但又有獨特性,且需進行文件處理,此時完全使用代碼編寫來實現(xiàn)GUI設計與開發(fā)并非明智之舉。一方面編程人員代碼編寫任務比較繁瑣,每個界面都需要大量代碼來實現(xiàn);另一方面,界面響應處理完全由代碼實現(xiàn),無論是修改界面外觀還是響應處理都需要重新編譯代碼再發(fā)布,不利于維護;此外,文件的處理并非上述編程語言的優(yōu)勢。因此,根據(jù)項目特點選擇合適的開發(fā)語言與實現(xiàn)方式是一個關鍵,有助于提高開發(fā)效率并減少維護成本。

      本文采用工具命令語言(Tool Command Language,TCL)實現(xiàn)與Qt GUI的交互,將界面控件的狀態(tài)信息等放置在TCL文件中配置,當用戶想修改控件之間的邏輯關系時,只需修改TCL控制文件即可,不需要修改程序代碼,靈活方便,極大地減少了代碼維護工作,從而達到動態(tài)配置的效果。

      2 TCL與Qt

      TCL指工具命令語言,功能強大,基礎結構和語法非常簡單,易于學習和掌握,主要有如下特點[3]:(1)TCL是一種解釋執(zhí)行的腳本語言,支持變量、循環(huán)、過程等使用的編程元素;(2)TCL提供了豐富的C語言調用接口,可以很容易地嵌入至C語言程序中;(3)TCL是一個開放式的開發(fā)工具,提供了豐富的功能擴展函數(shù),允許用戶編寫新的命令解釋程序,加入TCL的解釋器中。

      Qt是一個多平臺的C++圖形用戶界面應用程序框架,主要有如下特點[4]:(1)Qt提供了一組強大、容易理解的GUI類,運行得更快;(2)Qt特有的信號和槽機制構造了一個強大的部件編程機制,更易使用;(3)Qt圖形設計器(Qt Designer)是一個所見即所得的全方位GUI構造器,利用該設計器,開發(fā)者可以擺放各種Qt控件構造圖形用戶界面,而不需要編寫一行代碼。

      由于TCL提供了與C的接口函數(shù),所以可以在Qt應用程序中調用TCL庫函數(shù),執(zhí)行TCL的命令或腳本,具體流程如圖1所示[5]。

      圖1 TCL執(zhí)行流程

      3 設計實現(xiàn)

      每個IP對應一個界面,因此,為達到設計的簡潔性與靈活性,摒棄傳統(tǒng)的編寫代碼實現(xiàn)界面功能的方式,采用Qt與TCL交互的方式來實現(xiàn)。每個IP設計對應的界面文件(.ui)和控制文件(.tcl),其中界面文件用于IP界面顯示,控制文件管理界面控件的屬性、邏輯關系、IP文件生成,它們之間通過Qt程序代碼進行管控,根據(jù)用戶需求執(zhí)行相應代碼文件。此種設計方式可以將文件設計與Qt代碼編寫相分離,分配給不同的工程師負責,術業(yè)有專攻,各司其職。當界面設計修改時只需修改界面文件和控制文件,無需修改程序代碼,方便快捷地響應用戶需求,從而將開發(fā)人員從繁瑣的編碼修改工作中解脫出來。Qt與各文件之間的關系如圖2所示。

      圖2 Qt與各文件之間的關系

      整個IP Core主要分為UI界面文件設計、TCL控制文件設計、Qt程序代碼,下面分模塊進行闡述。

      3.1 UI界面文件設計

      UI文件采用Qt圖形設計器進行設計,它為用戶提供可視化的界面設計,簡單、方便、快捷,不需編寫代碼即可實現(xiàn)界面的設計,生成對應的.ui文件。若想修改外觀界面,直接更改該UI文件即可,不需更改程序代碼,達到動態(tài)配置的效果,極大地減少代碼的編程工作。

      UI界面主要由兩部分組成:QStacked Widget和QTab Widget。QStacked Widget主要用于顯示控件界面,可以分多頁展示,設計師根據(jù)需要擺放控件;QTab Widget主要用于顯示IP模型圖和總結信息,模型圖在Qt代碼中進行繪制。此外,UI中控件通過名稱與TCL文件中控制信息進行關聯(lián),因此設計UI時控件名稱要與TCL文件中的一致。

      為保證界面大小的自適應,所有控件放置在布局管理器中,如圖3所示(以DCM為例)。

      圖3 UI設計界面

      3.2 TCL控制文件設計

      TCL是一個開放式的腳本語言,功能強大、可快速學習、快速開發(fā),因此控制文件采用TCL編寫,通過該文件可實現(xiàn)動態(tài)響應用戶配置、生成模塊代碼。每個IP核有自己對應的TCL控制文件,響應不同的IP即調用不同的控制文件。當用戶想修改控件之間的邏輯關系時,只需修改TCL控制文件即可,不需要修改程序代碼,靈活方便。

      TCL控制文件與UI界面文件中的控件通過名稱進行關聯(lián),從而達到動態(tài)控制界面狀態(tài)的效果。TCL控制文件主要包括控件屬性設置、Pin屬性設置、控制函數(shù)、IP文件生成等。

      (1)控件屬性設置,主要用于UI界面中控件屬性值的初始化,如設置控件的值、值類型、使能狀態(tài)、是否顯示、參數(shù)值列表等,格式如下:

      (2)Pin屬性設置,主要用于繪制IP模型圖,屬性值主要包括Pin名稱、方向、類型、使能狀態(tài)、是否顯示、寬度范圍等,格式如下:

      圖4 Qt代碼流程

      (3)控制函數(shù),用于設置各控件值、控制UI界面各控件之間的邏輯關系等,從而達到動態(tài)控制界面狀態(tài)的效果。主要包括各控件的更新函數(shù)、校驗函數(shù)以及管腳更新函數(shù) (update_pins)、最終狀態(tài)函數(shù)(finalize)。

      (4)IP文件生成,根據(jù)用戶配置生成對應的IP文件。

      此外TCL文件還定義了控件的Get與Set方法,Get方法用于獲取界面控件值,Set方法用于設置界面控件值,從而實現(xiàn)TCL與界面的交互。

      3.3 Qt程序代碼

      Qt代碼將UI界面文件和TCL控制文件有效地連通起來。Qt加載UI文件用于顯示UI界面,執(zhí)行TCL控制文件用于配置界面參數(shù)信息。所有的參數(shù)都在程序中集中管理,用戶操作UI界面時首先更改Qt的參數(shù)信息,然后執(zhí)行TCL中的函數(shù)更改相應參數(shù)值與邏輯關系,TCL文件中通過Get方法獲取參數(shù)數(shù)據(jù),而TCL文件中若更改參數(shù)信息,則通過Set方法與程序中的參數(shù)信息同步,最后更新UI界面,從而實現(xiàn)動態(tài)響應用戶配置參數(shù)。整體工作流程如圖4所示。

      IP界面主要由兩部分組成,一部分為模型圖顯示,一部分為控件顯示。Qt程序加載設計好的UI文件,首先查找QTab Widget控件,若該控件存在則根據(jù)獲取的所有Pin信息繪制IP模型圖,若該控件不存在則不需繪制IP模型圖;其次根據(jù)TCL控制文件中各控件屬性值顯示與配置QStacked Widget控件,從而實現(xiàn)界面初始化,在更新TCL控制文件數(shù)據(jù)時,調用各控件的 update_xx、finalize_xx、validate_xx 函數(shù) (xx對應控件的名稱),以及update_pins、finalize函數(shù),界面顯示流程如圖5所示。

      而當用戶操作UI界面時,控件響應用戶綁定的信號槽,更新參數(shù)數(shù)據(jù),并調用TCL函數(shù)更新數(shù)據(jù)與邏輯關系,最后重新繪制UI界面,如圖6所示。

      圖5 界面顯示流程

      圖6 響應用戶界面流程

      3.4 程序執(zhí)行界面

      Qt程序代碼設計完畢即可執(zhí)行該程序。用戶選擇要查看的IP,程序自動加載該IP的配置文件,即UI界面文件和TCL控制文件,并顯示該IP圖形界面。用戶根據(jù)需求配置該IP屬性并生成對應的IP核,程序執(zhí)行界面如圖7所示(以DCM為例)。

      圖7 程序執(zhí)行界面

      4 結論

      該文實現(xiàn)了一種Qt+TCL的界面實現(xiàn)方式,由于IP核種類繁多且又有獨特性,因此摒棄傳統(tǒng)編寫代碼實現(xiàn)的方式,采用配置文件的方式,每個IP設計對應的界面文件和控制文件,通過Qt代碼進行管控。當用戶想修改界面設計時,只需修改界面文件和控制文件即可,不需要修改與編譯程序代碼;此外,當擴展用戶IP時,也只需編寫對應的界面文件與控制文件,非常靈活方便,易于擴展與維護工作,從而達到動態(tài)配置的效果。

      [1]P Chauhan,EM Clarke,Y Lu,D Wang.Verifying IP-core based system-on-chip designs[C].IEEE International Asic/soc Conference,1999:27-31.

      [2]萬連文.基于XML的圖形用戶界面構建平臺的研究與實現(xiàn)[D].中國地質大學,2008.

      [3]John K,Ousterhout Ken Jones.Tcl/Tk入門經典 (第2版)[M].北京:清華大學出版社,2010.

      [4]蔡志明,盧傳富,李立夏.精通Qt4編程(第2版)[M].北京:電子工業(yè)出版社,2010.

      [5]楊怡玲,王換招,管旭東.利用Tcl/Tk實現(xiàn)X Windows下的GUI[J].微電子學與計算機,1999,1.

      [6]李杰.IP核驗收平臺搭建與圖形用戶界面開發(fā)[D].哈爾濱:哈爾濱工業(yè)大學,2015.

      猜你喜歡
      程序代碼圖形用戶界面控件
      圖形用戶界面外觀設計專利保護問題探析——以“奇虎訴江民案”為例
      關于.net控件數(shù)組的探討
      軟件(2018年7期)2018-08-13 09:44:42
      淺談圖形用戶界面(GUI)技術專利現(xiàn)狀
      電子測試(2018年9期)2018-06-26 06:46:34
      計算機網絡信息安全未來發(fā)展趨勢
      圖形用戶界面法律保護問題與對策
      基于圖元裝接模式由程序流程圖自動生成源代碼
      軟件工程(2016年11期)2017-01-17 16:56:57
      就這樣玩會VBA中常見的自定義控件
      電腦迷(2012年24期)2012-04-29 00:44:03
      MiniGUI在基于OMAP5912開發(fā)板上的移植
      嵌入式系統(tǒng)中程序的優(yōu)化策略
      新媒體研究(2009年4期)2009-03-14 06:59:48
      VBA在課件交互設計中的應用
      织金县| 鹤庆县| 南丰县| 嘉禾县| 凤山市| 漳州市| 吉林市| 奉贤区| 交城县| 若羌县| 松江区| 东兰县| 响水县| 浠水县| 信丰县| 即墨市| 阳谷县| 宣恩县| 寻甸| 临澧县| 乌审旗| 怀宁县| 太湖县| 伊宁县| 洛隆县| 册亨县| 镇平县| 睢宁县| 蓬溪县| 会昌县| 区。| 石门县| 崇阳县| 手游| 固安县| 中宁县| 阜宁县| 新乡县| 迭部县| 铁岭市| 西青区|