硬件電路設計規范范文

時間:2023-10-10 17:26:22

導語:如何才能寫好一篇硬件電路設計規范,這就需要搜集整理更多的資料和文獻,歡迎閱讀由公務員之家整理的十篇范文,供你借鑒。

硬件電路設計規范

篇1

[關鍵詞]數字電子電路;EDA技術;應用;探究

在微電子技術飛速發展的背景下,數字電子電路的設計的難度也在不斷加大,電子產品翻新的速度也在不斷加快,這給數字電子電路設計帶來了較大的壓力。EDA技術是數字電子電路的設計中較為先進的技術,具有其他技術不具備的優勢,使數字電子電路的設計得到了革命性的發展[1]。EDA技術的優勢在于當程序修改錯誤時,不需要使用額外的硬件電路,且在使用EDA技術進行電子產品設計時能夠使電子產品的成本降低和設計周期縮短。因而,EDA技術在數字電子電路設計中得到了越來越廣泛的運用,也推動了數字電子電路的設計領域的變革,促進電子產品的發展。對此,我們需要EDA技術在數字電子電路的設計中應用有所了解。

1EDA技術概述

EDA(ElectronicDesignAutomation,電子設計自動化)技術是逐漸從計算機輔助測試、計算機輔助制造、計算機輔助設計以及計算機輔助工程中發展而來的[2]。該技術主要是將計算機作為載體,在EDA軟件平臺上,設計者主要采用硬件描述語言VHDL進行設計,進而由計算機自動完成各項工作。EDA技術是一種融合了當前多種新型技術的新技術,它以計算機為載體,將計算機技術、信息技術、電子技術以及智能技術相互融合起來,進而完成電子產品的自動化設計工作,這樣有效促進了電路設計的可操作性以及效率性,不僅保障了電路設計的質量和效率,同時也極大地減輕了設計者的工作強度,同時也降低了電子產品的生產成本。具體來說,EDA技術的特點以及EDA技術設計流程如下。

1.1EDA技術的特點

相比于傳統的CAD(ComputerAidedDesign,計算機輔助設計)技術而言,EDA技術具有顯著的特點。首先一點,EDA技術在硬件電路選擇軟件設計方式方面上,它可以選擇多種設計輸入,如VHDL語言、波形等等,它在完成下載配置前能夠在沒有硬件設備的情況下能夠自行完成。與此同時,它在修改硬件設備也是非常簡單、易于操作,這種修改硬件設備的方式和軟件程序修改方式非常接近,采用軟件測試的方法對其進行測試,這樣就能科學有效地設計特定功能的硬件電路[3]。第二點,EDA技術能夠儀自動化的形式進行產品直面設計。它可以通過HDL語言和電路原理圖等自動化的邏輯編譯的相關程序輸入其中,并生成相應的目標系統。簡單說來,這種技術能夠以計算機為依托,從電路功能模擬、電路性能分析、電路的設計以及優化、電路功能的測試和完善等全部流程都可以以自動化的形式實現。第三點,EDA技術具有較高的集成化特點,并可以自身構成片上系統。EDA技術在數字電子電路設計中是以芯片為載體進行設計的一種設計方式。因而,當前大規模集成線路的不斷發展能夠有效促進繁雜的芯片設計工作的完成,同時也能夠完成專業化的集成電路設計[4]。第四點,EDA技術可以大大提高系統升級的工作效率,它能夠當場進行目標系統的編程,實現有效的系統升級。第五點,EDA技術具有自動化的特點,且進行技術開發的時間并不長,且能夠有效節約設計的費用,避免了資源的浪費,同時EDA技術也具有極大的靈活性和實用性,可操作性較強。

1.2EDA技術設計流程簡介

EDA技術對于數字電子電路設計的意義可以認為是它將推動了數字電子電路設計的一個發展變革,使其進入了一個發展的新時期。傳統的電路設計的模式多是以硬件搭試調試焊接的方式,而E-DA技術以計算機自動化的設計模式對傳統的電路設計模式進行了創新。EDA技術設計流程主要包含8個流程依次為[5]:設計指標設計輸入(將電路系統采用一定的表達式輸入計算機,其中包括圖形輸入以及文本輸入)邏輯編譯(將設計者在EDA中輸入的圖形或文本進行有效的編排轉化)邏輯綜合(將電路中高級的語言轉化為低級的,并與基本結構相應射)器件適配(將由綜合器產生的網表文件配置到指定文件中,使之能夠下載文件)功能仿真(跟進吧算法和仿真庫對涉及進行模擬,以驗證其涉及是否和要求一致)下載編程(將適配后生成的配置文件和下載文件以編程器下載)目標系統。

2可編程邏輯器件

數字邏輯編輯器具有自身的發展歷程,一般可以將其分為分立元件、中小型標準芯片以及可編程邏輯器件等三個階段。對邏輯器分類方面可以將其分為固定邏輯器和可編程邏輯器。其中固定邏輯器的電路是固定的、不可變的,而可編程邏輯器則可以為使用者提供多種邏輯能力,也可以在不同的時間內進行改變,進而完成不同的功能[6]。可編程邏輯器件(programmablelogicdevice,PLD)產生于通用集成電路,根據使用者對器件編程來確定其邏輯功能。可編程邏輯器件具有較高的集成度,一般能夠滿足大多數數字系統設計的需求。在科學技術快速發展的情況下,可編程邏輯器件也隨之不斷發展。當前,可編程邏輯器件已經成為解決邏輯方案的首選,這主要是因為它能夠根據用戶的需求進行相應的產品功能增加以及產品升級,且操作較為簡便,具有低成本、低消耗、多功能、高集成性等優勢。與此同時,當前一些公司也在不斷對其進行研究,不斷完善可編程邏輯器件的功能,并獲得了較為顯著的效果,如Altra公司的FLEX10K的系列產品、Xilinx公司的XC4000的系列產品[7]。

3VHSIC硬件描述語言

VHSIC硬件描述語言(Very-High-SpeedInte-gratedCircuitHardwareDescriptionLanguage,VHDL)是電路設計中使用的一種高級語言,主要在20世紀80年代由美國國防部認定的標準硬件描述語言,之后其他公司紛紛推出了VHSIC硬件描述語言設計環境。對此,我們需要對VHSIC硬件描述語言具有一個較為清晰的了解。數字電子電路設計的第一步就是使用EDA技術以及相應的軟件開發工具進行設計輸入。簡單地說就是簡要描述電路設計、硬件設計以及測試方法。在設計一些規模不大的數字電子電路時,一般硬件描述的方式為原先的時序波在設計一些大規模的數字電子電路時,其描述方式就需要采用具有較強針對性的硬件描述語言。VHSIC硬件描述語言不僅能夠詳細描述硬件電路的功能、定時與信號連接的關系,而且還能采用簡潔的模式準確描述硬件電路中邏輯較為抽象的部分[8]。由于VHSIC硬件描述語言具有詳細準確描述硬件電路功能的特征,因而,VHSIC硬件描述語言成為EDA技術在數字電子電路設計中最為常用的設計輸入方式和描述語言。在數字電子電路設計中,VHSIC硬件描述語言已經成為使用最為廣泛的硬件電路應用描述語言。這主要是因為VHSIC硬件描述語言具有硬件特點的語句,其結構和語法具有高級計算機具有高度相似性。除此之外,VHSIC硬件描述語言在程序結構上也有著十分明顯的優勢,它進行實體設計時能夠將其設為可視部分和不可視部分。從中可以發現,VHSIC硬件描述語言與綜上所述,可以看出VHDL硬件描述語言比傳統的其他硬件描述語言相比,如AHDL、VBLE,具有強大的描述功能,能夠有效規避器件的復雜結構,進而對數字電子電路設計進行有效的描述[9]。具體說來,與其他硬件描述語言相比,VHSIC硬件描述語言的特點主要有以下幾個方面:其一,具有強大的功能以及靈活的設計。這主要是VHSIC硬件描述語言有著功能強大的語言結構,能夠采用簡短的語言進行復雜邏輯的描述;同時,它也具備多層次的設計功能,支持多種設計方法。其二,具有廣泛的支持性,且易于修改。由于VHSIC硬件描述語言已經成為使用最為廣泛應用描述語言,因而具有廣泛的支持性;由于其結構化和易讀化的特征,因而易于修改。其三,系統硬件描述能力強大,VHSIC硬件描述語言可以進行結構描述、寄存器傳輸描述、行為描述,也可以進行三者混合描述。其四,與器件設計相對獨立,在進行VHSIC硬件描述語言可以不用考慮器件設計情況,專心用于VHSIC硬件描述語言設計的優化。其五,移植能力強,能夠共享。VHSIC硬件描述語言設計完成后可以將成果進行分享,避免電路的重復設計。除此之外,VHSIC硬件描述語言還具有其他的特征:其一,VHSIC硬件描述語言屬于設計輸入語言,它能夠通過計算機詳細描述硬件電路的運行狀態,并將其與數字電路的設計系統自動綜合。其二,VHSIC硬件描述語言是常用的測試語言,它能夠以測試基準對數字電子電路進行可以仿真與模擬,進而判斷其功能情況。其三,VHSIC硬件描述語言是標準化語言,它是當前設計語言中使用最為廣泛的語言之一,也是當前電子領域普遍認可的標準化語言。其四,VHSIC硬件描述語言是可讀性語言,它不僅可以被計算機識讀,同時也可以被設計者識讀。其五,VHSIC硬件描述語言一種網表語言,它獨特的語言結構讓其在計算機設計中工作較好,同時它在設計工具間聯系的格式中屬于低級設計工具,即它在門級網表文件形成中具有相互轉化的功能和高度兼容性。

4EDA技術在數字電子電路設計中的應用

我們可以通過設計一個數字鐘電路來展現E-DA技術在數字電子電路設計中的應用,該數字電路鐘能夠顯示秒、分、時。

4.1準備的設備

本次實驗主要是選用FPGA芯片EDA技術實驗工具以及電子計算機。

4.2實驗設計方法

依照EDA技術的設計規范進行分層設計,其內容包括數字鐘;時計數、分計數、秒計數以及譯碼顯示;24進位制計數器、60進位制計數器以及譯碼顯示電路。在VHDL語言描述上,要使用VHDL語言對60進位制計數器、24進位制計數器進行描述編程,并將兩者進位標準進行調整,使其一致。關于譯碼顯示電路的設計。在設計中可以使用動態譯碼掃描處理電路進行處理,這能夠某個時間點點亮單個數字碼而達到6個同時顯示的視覺效果,這樣不僅將電路能耗降到最低,同時也節約了器件資源,并延長了器件的使用壽命[11]。關于頂層設計,在這一設計中需要建立在底層設計模塊的基礎上,通過原理圖方法將兩者進行有機的融合,進而獲得一個完整電路。

4.3編譯下載

篇2

關鍵詞:邊界掃描;MERGE;數字電路;故障診斷;自動測試系統;

引言

雷達,作為一種重要的軍事武器裝備,在軍事上將其形象的比喻成作戰指揮員的“眼睛”,在維護國家安全及中發揮著舉足輕重的作用。但隨著數字電路設計及制造技術的發展,特別是CAD設計軟件的進步及完善,單一的測試方法如ICT(In-Circuit Test)測試、功能測試等已無法滿足新型雷達數字電路測試及故障診斷的要求,邊界掃描測試將成為今后雷達裝備數字電路故障診斷發展的主流技術。

基于對ICT測試、功能測試局限性的深入探討,以及對邊界掃描測試技術的研究與實踐,本文提出了“MERGE(組合)”邊界掃描測試模型的建立方法,并基于此方法,構建了數字電路便攜式自動測試系統,實現了對新型雷達數字電路的高速、準確的測試。系統具有硬件設備小巧、便攜,性能穩定、可靠,故障隔離率高等優點,適合于戰地級實時維修保障,是大型在線測試、功能測試平臺的有效補充,較好的解決了測試設備受制于人及戰時應急搶修等問題。

自動測試系統實現

“MERGE(組合)”測試模型的建立

IEEE 1149.1標準明確的規范了邊界掃描構建原理及相應的測試方法。在故障診斷過程中,可利用VLSI芯片自帶的邊界掃描結構及相關測試指令,有效的實現對VLSI芯片引腳固定型、開路、橋接等故障類型的檢測。但待測試的數字電路模塊通常包括邊界掃描器件和非邊界掃描器件,本文提出的MERGE測試模型可通過已有的邊界掃描結構實現對非邊界掃描芯片的測試,能夠拓展邊界掃描的測試范圍,提高TPS的故障覆蓋率。

基于邊界掃描測試技術的基本原理,構建測試系統過程中創造性的提出了“MERGE”結構測試模型,基本思想如圖1所不。其中,B部分為待測數字電路BUT(Board Under Test),A部分為獨立于BUT外的邊界掃描擴展卡,該擴展卡可看作是一塊符合IEEE 1149.1邊界掃描設計規范的數字電路。首先,集中將一個完整的數字電路BUT分為如下幾個部分:非邊界掃描芯片簇(U1),邊界掃描芯片簇(U2),混合芯片簇(U3)。在這里“簇”的概念即將多個器件統稱為一個“簇”,簇的范圍可以根據具體電路規模來進行劃分,可以小到單獨的一個IC或UUT(Unit UnderTest),也可大到一個完整的BUT。

(1)MERGE非邊界掃描芯片簇(U1):非邊界掃描芯片是整個BUT網絡中一個有序的子集,是具有特定功能的電路。在MERGE理念中,通過對非邊界掃描芯片簇建立單獨的功能模型,將其作為邊界掃描芯片間的一個中間級信號傳輸模型,MERGE到邊界掃描鏈路,結合EXTEST邊界掃描指令,通過Capture IR―Shift IRUpdate IRCapture DRshiftDRUpdate DR等相應操作,達到通過邊界掃描鏈路實現對非邊界掃描簇測試的目的。

(2)MERGE混合芯片簇(U3):混合芯片簇指既含有非邊界掃描芯片,又含有邊界掃描芯片的混合電路(還可以含有一些中間級的模擬電路)。MERGE的思路與(1)類似,模型的驗證可通過將一組確定的測試矢量集APPLY至MI(Model Input),經過確定的時間延遲,通過在MO(Model Output)將采集到的響應信號與寄存器中存貯的期望值相比較的方法實現測試。

(3)MERGE BSEC(邊界掃描擴展卡),通過BSEC實現對BUT邊緣電路中非邊界掃描芯片簇或不含邊界掃描芯片的BUT進行邊界掃描測試。測試時,將待測BUT作為非邊界掃描簇或混合邊界掃描簇,而將BSEC當作邊界掃描芯片簇,通過MERGE方法,將BUT、接口電路、邊界掃描擴展卡電路虛擬成為一個含邊界掃描芯片的BUT,具體實現與(1)、(2)類似。

測試系統硬件設計

為了減輕系統整機的重量,便于運輸及攜帶,本測試系統前端設備采用筆記本計算機作為主體來完成系統功能的實現和人機界面的交互,同時內配GPIB-USB模塊、JTAG-Control-PCI-USB控制器,分別控制可編程電源(Agilent 6600)及BS InterfacePod模塊。整個硬件設計的核心為BSEC、JTAG-Control-PCI-USB控制器及BSInterface Pod模塊。其系統硬件框圖如圖2所示。

邊界掃描擴展卡

MERGE邊界掃描擴展卡采用符合IEEE1149.1邊界掃描標準的可測試性設計方案,應用5片XILINX公司的XC95144芯片構建完整的從TDI至TDO的邊界掃描鏈路,其中掃描鏈路的上游電路及下游電路采用74ACQ244對信號進行緩沖及整形,以增強上游電路的扇出能力,同時整板的邊緣連接器采用了牢固可靠、抗腐蝕的歐式Eurocard結構形式的連接器,保證測試信號穩定、可靠。原理圖如圖3所示。

JTAG-Control-PCI-USB控制器

JTAG-Control-PCI-USB控制器是測試系統筆記本記算機與被測試單元(BUT)進行信號控制的主要部件,實現工控機并行控制指令和數據向符合邊界掃描測試協議的串行指令和數據的轉換。電路采用DSP+CPLD的電路設計模式,DSP芯片采用TI公司的TMS320LF2407A,運行速度可高達40MIPS、具有至少544字的在片雙訪問存儲器DARAM、2K大小的在片單訪問存儲器SARAM,32K的片內程序存儲器FLASH,CPLD選用ALTERA公司的MAX7000S系列的EPM71285,其集成度為600~5000可用門、有32~256個宏單元和36~155個用戶自定義I/O引腳、其3.3V的I/O電平與DSP芯片端口電平兼容、并可通過符合工業標準的I/O引腳JTAG接口實現在線編程及調試。JTAG-Control-PCI-USB控制器是PCI/IEEE 1149.1標準的主控單元,當與BSInterface Pod結合使用時,控制IEEE1149.1標準自適應測試總線及與之相適應的離散信號。同時,該控制器還可控制施加到測試總線上負責JTAG-Control-PCI-USB控

制器與BS Interface Pod進行通訊的低電壓差分信號(基于TIA/EIA-644及IEEE1596.3標準)。

BS Interface Pod模塊

BS Interface Pod模塊,作為測試輸入/輸出信號傳輸的中間級模塊,主要實現JTAG-Control-PCI-USB控制器與BUT之間測試通道的擴展和信號的同步與緩存。FPGA(Altera公司,EP20K160EBC365-1)是本電路設計的核心,其功能是將前級JTAG-Control-PCI-USB控制器發出的不同的控制信號轉換成UUT測試終端能夠識別的TAP控制信號,保證TDI、TCK、TMS、TRST準確施加到UUT的測試端,同時將采集到的TDO信號返回給測試前端控制模塊。74LVC125(Buffer)則用來完成信號暫存,輸出級的74LVC125還可增強信號的扇出能力。整個BS Interface Pod模塊采用抗EMI(電磁干擾)屏蔽封裝,前面板預留4個20Pin的JTAG控制端口,另外設計了一個電源指示燈,用于上電確認。

測試系統軟件設計

系統軟件在Windows XP環境下采用Visual C++6.0及National Instruments公司的LabWindows 6.0集成開發環境完成。Visual C++6.0能夠提供豐富的Windows程序開發功能,靈活性強、編程效率高;LabWindows 6.0提供了多種接口協議、豐富的控件及儀器驅動程序,其支持虛擬儀器技術的特性是其它開發環境無法比擬的,同時它提供了豐富的軟件包接口,為軟件開發提供了極大的方便。

軟件設計采取了軟件模塊化及自頂向下的設計原則,首先根據MERGE原則劃分電路模塊,將測試程序分割成不同的測試模塊,其次采用宏的方式構建標準的測試模塊并優化模塊接口,然后將其它待測模塊與該模塊接口進行有效鏈接,再分別進行編譯及調試,最后一起進行合并構建完整的測試體。在開發過程中,將該軟件分為若干模塊不但減少了軟件的工作量,而且對于函數的公共部分進行了類的封裝,提高了模塊的復用性,同時提高了軟件本身的可測試性。系統軟件流程如圖4所示。

測試優化

為減少ATE在故障診斷中誤判的概率,系統采用加權偽隨機向量關系生成、插入間隔刷新測試矢量優化測試矢量和測試過程。

(1)加權偽隨機測試矢量生成:加權偽隨機測試矢量生成能夠利用較短的測試碼長度(即較短的測試時間)達到較高的測試故障覆蓋率。為了縮短測試碼并改進故障覆蓋率,這種測試矢量生成方式可以調節在輸入端產生0或1的概率,有效檢測到難檢測的故障。在偽隨機測試碼中,每個輸入端產生0或1的概率為50%。

(2)插入式間隔刷新:由于數據線具有一定的電平保持特性,因此對于一組數據總線I/O而言,在BS-Cell處于讀狀態時(如處于Update狀態),Cell單元的Output Enable Control Cell處于有效狀態,測試矢量通過BS-Cell施加至I/O數據總線,如果下一個時鐘節拍,BS-Cell處于寫狀態(如處于Capture狀態),由于數據線的電平保持特性,則有可能在此時間,BS-Cell所Capture回讀的數據為上一個時鐘節拍的Update數據,造成測試不穩定。解決的辦法是在每一次讀狀態結束后,系統根據讀狀態的間隔時間,隨機產生一組與上一組測試矢量不同的數據,命名為*data,對I/O總線進行間隔刷新。

實驗結果及分析

現以某新型雷達點跡處理數字電路為例進行系統功能驗證。整個電路采用DSP+FPGA的設計架構,其主要芯片包括:5片DSP(ADSP21060)、2片FPGA(AtleraFlex EPF10K系列)、8片雙口RAM(QFP封裝),其他E2PROM、HC244(SOP封裝)、HC245(SOP封裝)等。電路設計復雜,芯片多,PCB布局布線密度大,采用ICT、功能測試TPS開發難度大。

利用本邊界掃描自動測試系統,結合MERGE方法,對上述電路板進行TPS開發實驗及故障診斷,測試結果如圖5所示。

插入模擬故障(U8-6 stuck to O),重新仿真:掃描鏈測試PASSB-Scan器件簇測試PASSNB-Scan器件簇測試Failed(Report:Pin(s):U3-25,R26-2,U8-6,R26-1 possible stuck at low,the BSnodes is U31-21(R/W))。

上述仿真結果表明,融合MERGE方法所構建的基于邊界掃描的板級自動測試系統,自動化程度高,故障隔離準確有效。

篇3

關鍵詞:VB6.0; USB口; FT232BL; 虛擬串口

中圖分類號:TN91934文獻標識碼:A文章編號:1004373X(2012)06004504

Implementation of communication through virtual serial port based on USB

NING Hui, SUN Xueyan, LIU Jian, ZHANG Jianguo

(Beijing Aeronautical Technology Research Center, Beijing 100076, China)

Abstract: The communication between SCM and USB port based computer through virtual serial port is designed and implemented by taking FT232BL of FTDI Incorperated as a kernel. The data storage is completed by Philips P89 series MCU. The data tranmission between host computer and lower computers is achieved by means of MSComm communication control in the Windows environment. The method that PC automatically identifies the virtual serial port is presented. The source code of the program is provided. The experimental result shows that the USB communication between SCM and PC implemented by virtual serial port is speedy and easy to implement by software.

Keywords: VB6.0; USB port; FT232BL; virtual serial port

收稿日期:201109230引言

數據傳輸是現代通訊過程中的一個重要環節,在數據傳輸過程中,不僅要求數據傳輸的準確率要高,而且要求速度快、連接方便。傳統的RS 232串口通訊和并口通訊都存在傳輸速度低、擴展性差、安裝麻煩等缺點,而基于USB接口的數據傳輸系統能夠較好地解決這些問題。目前,USB接口以其傳輸速率高、即插即用、支持熱插拔等優點,逐步成為PC機的標準接口。

本文中的數據傳輸系統采用了USB接口進行上位機與下位機之間的數據通訊。下位機采用Philips 公司P89系列單片機,完成數據的存儲。上位機通過VB6.0編程,實現上位機與下位機之間的數據傳輸。

1數據傳輸系統的總體設計

系統的硬件部分主要包括2部分:上位機端和下位機端。上位機采用PC機或筆記本電腦,操作系統為Windows XP,實現上位機和下位機之間的數據傳輸、顯示、處理、存儲及查詢功能。系統的下位機采用philips公司P89系列單片機,完成數據的存儲。下位機為一個手持的數據存儲儀,由USB轉串口數據轉換模塊、TTL轉RS 422總線模塊、中央處理模塊、顯示模塊、存儲模塊、電源模塊等組成。上位機與下位機的連接利用PC機自帶的USB接口,原理框圖如圖1所示。

圖1數據傳輸系統原理框圖把數據記錄卡插入數據存儲儀內,可把卡內數據轉存到存儲模塊。數據存儲儀通過USB口與PC機連接,把所存數據傳輸到上位機,上位機對數據進行顯示、處理及存儲。

系統采用FTDI公司的FT232BL芯片作為USB轉串口模塊,可以和單片機的內置串口直接連接,使單片機通過USB口和PC機通訊。芯片一方面可以接收從PC機發來的USB數據,并將其轉換為串行I/O數據格式發送給單片機串口;另一方面可把單片機從串口發出的數據轉換為USB的數據格式傳回PC機。與其他USB接口芯片相比,用FT232BL芯片進行USB外設開發,只需熟悉單片機編程及簡單的VC或VB 編程,而無需考慮固件設計以及驅動程序的編寫,從而能大大縮短USB外設產品的開發周期。

2硬件電路設計

2.1FT232BL芯片簡介

FT232BL內部結構如圖2所示,主要由USB收發器、串行接口引擎(SIE)、USB協議引擎、通用異步收發(UART)先進先出(FIFO)控制器和通用異步收發(UART)轉換器等構成。USB收發器提供USB1.1/2.0全速物理接口到USB總線;串行接口引擎主要用于完成USB數據的串/并雙向轉換,并按照USB2.0規范來完成USB數據流的位填充/位反填充,以及循環冗余校驗碼(CRC5/CRC16)的產生和檢錯;USB協議引擎管理來自USB設備控制端口的數據流;通用異步收發(UART)先進先出(FIFO)控制器處理收發通道緩沖與通用異步收發(UART)寄存器之間的數據傳遞。

圖2FT232BL內部結構框圖 通用異步收發器(UART)實現與單片機(如P89V51RD2)的串行接口,通過TXD,RXD,GND3根數據線分別與單片機的RXD,TXD,GND相連,完成與單片機的數據交換。FT232BL內含2個數據緩沖區,一個是128 B的發送緩沖區,另一個是384 B的接收緩沖區。它們均用于USB數據與串行I/O數據的交換緩沖區。

另外,FT232BL還包括1 個內置的3.3 V穩壓器,1個6 MHz的振蕩器、8倍頻的時鐘倍頻器、USB鎖相環和電擦除只讀存儲器接口。

2.2FT232BL電路設計

根據USB設計規范,USB設備有總線供電和自供電2種方式。考慮到USB通訊功能僅在連接PC機時使用,所以,FT232BL芯片由USB總線供電,電路其他部分通過雙觸點開關的一個常開觸點連到USB總線電源正極上。典型硬件電路如圖3所示。采用上電復位方式,通過輸出可使單片機復位。時鐘電路采用1個6 MHz無源晶振及2個27 pF的陶瓷電容組成。PWREN腳與單片機的P1.7相連,用于判斷USB總線是處于掛起狀態還是正常狀態。在USB接口的電源端接一個磁珠,用以減少主機與設備的干擾;電源端增加了去耦電容和旁路電容,以提高電路的抗干擾性。在印刷電路板的設計中,2根串行數據線的走線應可能短,并且長度相等。圖3中的93C46(93C56或93C66)是一片電擦除只讀存儲器(E2PROM),用于存儲產品的VID,PID,設備序列號及一些說明性文字等。這需要用戶自己編寫,編寫的應用程序由FTDI公司提供。用戶只需運行相應的VB程序,寫入相應的信息即可。該電擦除只讀存儲器(E2PROM)是可選的。若沒有電擦除只讀存儲器(E2PROM),FT232BL將使用默認的VID,PID(進程標識符),產品描述符和電源描述符,并且沒有設備的序列號。

3上位機的軟件設計與編程

3.1虛擬串口驅動程序安裝

當下位機連接到上位機的USB接口時,上位機會檢測到新硬件,這時需要安裝一個從FTDI公司網站上免費下載的虛擬串口(VCP)驅動程序。該驅動程序適用于Windows 98/2000/ME/XP等不同操作系統。用戶可以在這虛擬串口上進行應用程序的開發。該虛擬串口可以像一個標準的物理串口那樣被訪問,可本質上所有針對虛擬串口的數據通信都是通過USB總線完成的。

3.2上位機的軟件編程

上位機軟件采用VB 6.0提供的串口通訊MSComm控件進行應用程序的編寫。MSComm控件提供了功能完善的串口數據的發送和接收功能,它有2種處理通信的方式:一種是事件驅動方式,當串口發生事件或錯誤時,MSComm控件會產生OnComm事件,程序可以捕獲該事件進行響應處理;另一種是查詢方式,在程序中查詢MSComm控件的CommEvent屬性的值是否發生變化,從而確定響應處理。

3.2.1虛擬串口的自動識別

一般來說,上位機操作系統為FT232BL芯片分配的虛擬COM端口是不確定的,下位機連接到同一上位機的不同USB口,其虛擬COM端口號不同,下位機連接到不同的上位機,虛擬COM端口號更是無法確定。為了讓上位機能夠自動識別下位機連接的虛擬COM口,程序中采用了循環訪問各COM口的方式,如果該COM口是存在的則按照通訊協議向該端口發送“3CH”,如果該COM口不存在,則跳過,判斷下一個COM口。如果收到下位機回送的“3CH”,則說明通訊檢測成功。

4系統運行結果

上位機可以從下位機中讀取最多31組數據(數據組數由下位機存儲器容量決定),每組數據8 KB,用戶可根據需要自行選擇查看各組數據。圖4是數據傳輸系統實際運行的結果。

圖4運行結果5結語

該系統通過調試,已成功應用到項目中,運行穩定、可靠,滿足了設計需求和功能,對開發類似的系統具有很好的參考價值。

參考文獻

[1]李長林.Visual Basic 串口通信技術與典型實例[M].北京:清華大學出版社,2006.

[2]楊思俊.基于VB6.0的太陽能發電基站電源的上位機軟件設計[J].科技廣場,2011(1):133135.

[3]馬興,童卓,周麗娟.基于VB的PC機與單片機間串口通訊及程序設計[J].兵工自動化,2010(10):9496.

[4]程來星,胡明欽,張英波.基于VB的計算機串口通信的應用研究[J].無錫職業技術學院學報,2011(2):5861.

[5]夏中權.USB虛擬串口的通信[J].電腦編程技巧與維護,2008(10):7679.

[6]楊楊,潘洪躍.基于虛擬串口的數據采集系統的設計與實現[J].大眾科技,2008(4):7375.

[7]徐鋒.基于FT245BM的快速USB接口設計[J].電子工程師,2007(3):5961.

[8]林水明,章堅武,駱懿.基于FT245BM的簡易USB接口開發[J].單片機與嵌入式系統應用,2003(1):3840.

篇4

關鍵詞:SystemC;Turbo;系統級設計;寄存器傳輸級;FPGA;測試平臺

中圖分類號:TP274文獻標識碼:B

文章編號:1004-373X(2009)05-163-04

Application and Verification of Turbo Codec with SystemC

LI Yuan

(Shanghai Jiaotong University,Shanghai,200030,China)

Abstract:The paper introduces methods and flows of IC design using SystemC firstly.And then researches and implements a Turbo encoder with RTL design using SystemC according its functionality of SLD and RTL capability.To prove the RTL capability of SystemC especially,the paper analyzes the structure and signal flows of Turbo encoder,simulats the Turbo modeling until finally completes the hardware design and implements it on a FPGA platform using a simulation testbench for verification.It saves more design times because it merges the SLD and RTL design to one step.

Keywords:SystemC;Turbo;system level design;RTL;FPGA;testbench

收稿日期:2008-09-16

0 引 言

在傳統硬件設計方法中,系統級設計(SLD)往往使用高級語言進行描述以實現各功能模塊的算法,而在寄存器傳輸級(RTL)使用硬件描述語言如VHDL和Verilog HDL進行描述。但隨著深亞微米時代的到來,集成電路規模越來越復雜,為了實現較高層次如系統級的軟件和硬件描述,較好地實現軟硬件的協同設計,業界推出了SystemC語言,但是SystemC的優點并不僅僅是針對于此,而且還表現在它使得系統級設計和RTL級設計均可能在同一平臺下完成。

本文主要針對SystemC可以像使用VHDL或者Verilog語言一樣進行RTL級和行為級的建模的特點,討論了基于SystemC RTL級設計的Turbo編碼器的實現和驗證,并在FPGA平

臺上進行其系統實現。

1 SystemC簡介

SystemC[1,2]是由開放性、非盈利性的SystemC聯盟組織(Open SystemC Initiative,OSCI)推出的一種系統級設計和驗證語言,SystemC是基于C++的建模平臺,其本質是在C++的基礎上添加了硬件擴展庫和仿真核,支持EDA設計中的各個抽象層次,如寄存器級、行為級、系統級的建模,能夠表達并發性、實時性、交互性等硬件模型的概念。

SystemC是完全免費并且開放的,它的源代碼可以使用任何標準C++編譯環境進行編譯,生成可執行文件。通過使用SystemC類庫,設計者可以根據不同的需求編寫目標系統的系統級(system level)、行為級(behavioral level)或RTL級的SystemC模型代碼。

SystemC中的模塊用關鍵字SC_MODULE來定義,其端口定義與Verilog類似。在SystemC中,進程是一個基本的執行單元,它被調用來仿真目標系統的行為。進程的行為是多樣化的,可以實現某個函數的功能,也可以在運行過程中被掛起,并且進程是并行執行的,一個進程中不能包含或直接調用其他進程。SystemC的進程主要有兩種,事件進程(SC_METHOD)和線程進程(SC_THREAD)。事件進程是惟一可以綜合的RTL進程,它的特點是當敏感表上有事件發生時,它就被調用,調用后立即返回。只有該類進程返回后,仿真系統的時間才有可能前進,因此該類進程不能被掛起(類似于Verilog中的always)。線程進程不是RTL級進程,它可以被掛起和重新激活,所以它的一個重要用途是用來描述驗證平臺(testbench) [3]。

2 Turbo編碼器的SystemC實現與仿真

2.1 Turbo編碼器簡述

Turbo碼編碼器[4-5]是由兩個反饋的系統卷積碼編碼器通過一個隨機交織器并行連接而成,編碼后的校驗位經過刪余陣,從而產生不同碼率的碼字。由于Turbo碼能得到較大的編碼增益,因此許多低信噪比通信系統中都選擇了Turbo作為信道編碼。

本文中實現的Turbo碼為3GPP中專用信道使用的編碼格式,碼率為1/3,其生成矩陣如下所示:

G(D)=1,1+D+D31+D2+D3

對于碼率為1/3的Turbo碼,不存在刪余部分。其編碼器結構圖如圖1所示。

圖1 3GPP八狀態Turbo碼編碼器結構

2.2 Turbo編碼器的SystemC實現

首先對系統可以進行模塊劃分,整個編碼器是一個大模塊,其中包含一個交織子模塊,兩個結構完全相同的分量碼編碼子模塊RSC,以及一個事件進程來完成最后編碼的輸出,它們之間采用同步時鐘進行時序同步。為了簡化起見,這里交織器就只采用隨機交織方式完成。

為完成整個Turbo碼編碼系統的驗證和仿真,還必須有激勵模塊和顯示輸出模塊,以達到驗證和觀察系統實現的正確性。整個系統的SystemC實現及測試方法模塊說明如圖2所示。

圖2 SystemC系統實現測試模塊說明圖

其中主模塊內部系統信號流圖如圖3所示。通過圖3可以清楚地看到各個子模塊和事件進程的輸入輸出信號關系,以達到更加清晰的實現目的。

圖3 TurboEncMain模塊系統信號流圖

為了完成對Turbo碼實現的系統驗證以及最接近硬件邏輯的RTL級驗證,必須在使用SystemC時注意要編寫完全可綜合風格的代碼,所以代碼的實現必須嚴格按圖1的編碼結構來進行。其中核心的RSC模塊類封裝參考如下:

SC_MODULE(RSC)

{

sc_in<bool>clk;

sc_in<bool>Xin;

sc_out<bool> Yout;

sc_signal<bool>d1,d2,d3;

SC_CTOR(RSC)

{

SC_METHOD(entry);

dont_initialize();

sensitive_pos(clk);

d1 = 0;

d2 = 0;

d3 = 0;

}

void entry();

};

2.3 SystemC驗證仿真

為了對設計進行驗證,Stimulus模塊完成Testbench的輸入和仿真過程的控制功能,Display模塊完成打印和輸出Trace及log(VCD文件)的功能。為了簡便起見,設計的輸入幀長為100 b,其Testbench的設計及理論輸出如下:

輸入Input序列為:0xACBC,0xD211,0x4CAE,0x1577,0xC6DB, 0xF4C9,0x0;

交織后輸入的Input_de序列為:0xBD85,0x078C,0x1D2A,0xBB80,0xEEEE,0xF973,0xA;

理論上此結構Turbo編碼輸出result(以3 b為一個碼元輸出共300 b)如下序列:

0x7,0x3,0x4,0x1,0x5,0x6,0x2,0x1,0x5,0x0,0x7,0x6,0x7,0x6,0x0,0x2,0x6,0x6,0x3,0x4,0x1,0x2,0x5,0x1,0x2,0x2,0x2,0x7,0x3,0x1,0x3,0x5,0x1,0x4,0x0,0x0,0x4,0x4,0x2,0x4,0x4,0x0,0x4,0x1,0x7,0x7,0x7,0x0,0x3,0x1,0x2,0x5,0x1,0x5,0x0,0x7,0x1,0x5,0x5,0x5,0x0,0x4,0x7,0x4,0x4,0x5,0x0,0x3,0x3,0x4,0x4,0x1,0x4,0x6,0x3,0x6,0x7,0x2,0x5,0x7,0x7,0x5,0x6,0x5,0x2,0x7,0x2,0x1,0x4,0x6,0x2,0x0,0x4,0x1,0x0,0x5,0x3,0x7,0x2,0x6。

本設計Testbench的輸出VCD波形用Wave VCD Viewer顯示,如圖4所示。實際上使用了多組Testbench對設計進行驗證,最終的輸出均表明本設計符合理論要求。

圖4 設計仿真輸出波形

3 FPGA實現與驗證

3.1 FPGA系統實現

經過上面的仿真設計,驗證了RTL模型的結構,就可以進行后面的ASIC設計或FPGA硬件驗證。在一般的IC設計流程中,為了提高ASIC流片的成功率,有必要使用FPGA硬件電路進行邏輯仿真。

在FPGA實現中,設計的Turbo編碼器是整個物理信道數據編碼上行鏈路的一個部分[6],支持3G標準中最高5 114 b的輸入序列幀長,實現對3G專用信道的1/3冗余編碼,它將與Turbo解碼器和信道模擬模塊組成一個測試環路,完成對整個Turbo Codec的IP驗證。編碼器由4個主要部分組成,其框圖如圖5所示。

圖5 硬件邏輯實現Turbo編碼器框圖

各個部分的功能描述如下:

(1) 編碼器輸入緩存模塊(enc_ibuf),實現兩路輸入存放緩存以及乒乓緩存機制,內部框圖如圖6所示。

圖6 輸入緩存模塊框圖

(2) 編碼器移位RSC模塊(enc_shft),即上面SystemC實現的模塊,完成移位輸出編碼后結果的功能。

(3) 編碼器輸出緩存模塊(enc_obuf),存放輸出數據和歸零位比特,并完成3 b并串轉換輸出,內部框圖如圖7所示。

圖7 輸出緩存模塊框圖

(4) 編碼器控制模塊(enc_ctrl),完成整個編碼器內部模塊時序的控制,如輸入/輸出模塊的尋址讀寫、移位、尾比特歸零等等操作,其主要時序控制流程圖如圖8所示。

圖8 編碼器控制模塊控制時序流程圖

3.2 FPGA邏輯驗證

選用Xilinx的Virtex-E系列[7,8]的FPGA XCV600E對本設計進行驗證。軟件平臺主要使用的是Xilinx集成開發環境ISE Foundation。其中第三方工具使用了綜合工具FPGA CompilerⅡ,布局布線工具選用的是ISE中的Webpack suite。

使用支持SystemC的綜合工具SCC(SystemC Compiler)完成綜合。SCC將SystemC描述的RTL級電路通過其綜合生成相應的Verilog文件,實現后續流程與傳統設計語言設計的FPGA流程的無縫銜接。

在ISE平臺調用FCII對綜合生成的Verilog文件與其他模塊的Verilog代碼約束時鐘、引腳信息等,進行邏輯綜合和優化,得到EDIF格式網表并經Webpack完成布局布線取得sdf文件和.bit二進制配置文件。最后將.bit文件下載至開發板上的XCV600E器件中,上電加載后板子跑起來可以得到邏輯輸出。

從對XCV600E中消耗的邏輯資源分析可以看到,編碼器所占的等效門為21 578個門。調試后將shft_s1_dat,shft_p1_dat,shft_p2_dat等信號從XCV600E的管腳引出,經邏輯分析儀采集這些管腳的輸出數據與Testbench理論輸出進行對比分析,最后得出結論,本設計編碼器的輸出完全符合設計要求。

4 結 語

在越來越復雜的大規模集成電路設計中,如何保證設計的成功性和時效性,引起了越來越多的設計人員的重視,SystemC的提出并引起廣泛關注的原因也就顯而易見。現以Turbo碼的編碼系統為例研究了SystemC在實際系統仿真和驗證中的應用,以及基于RTL級實現并能完成綜合的SystemC設計方法,這個系統只是整個編解碼系統的一部分,其解碼部分更加復雜,但其核心算法部分同樣可以用相同的方法完成其仿真、驗證和實現。在整個設計過程中,測試平臺一直沒有改變,從而保證了驗證工作的連貫性和高效率。

可以看出,SystemC強大的系統級設計能力以及同時具有RTL級和行為級設計的能力為未來復雜的IC設計提供了更為廣闊的空間。雖然如何采用SystemC進行設計,目前還沒有一個完全的設計規范流程,但是相信隨著進一步的深入研究,基于SystemC的設計方法必將成為IC設計領域的最佳主流標準之一。

參考文獻

[1]Synopsys Inc.SystemC Version 2.0 User′s Guide[EB/OL]..

[2]Synopsys Inc.Functional Specification for SystemC 2.0..

[3]Leena Singh,Leonard Drucker,Neyaz Khan.Advanced Verification Techniques-A SystemC Based Approach for Successful Tapeout[M].Kluwer Academic Publishers,2004.

[4]王新梅,肖國鎮.糾錯碼――原理與方法(修訂版)[M].西安:西安電子科技大學出版社,2001.

[5]Berrou C,Glavieuxa.Near Optimum Error Correcting Coding and Decoding:Turbo Codes [J].IEEE Trans.on Communications,1998,48(2):24-31.

[6]John G,Proakis.Digital Communications.Third Edition.McGraw-Hill,1995.

[7]Xilinx Inc.Virtex-E FPGA User′s Guide[EB/OL]..

[8]田耘,徐文波,張延偉.無線通信FPGA設計[M].北京:電子工業出版社,2008.

[9]IEEE Computer Society.IEEE Standard SystemC Language Reference Manual[Z].2006.

篇5

關鍵詞:電力系統;故障繼電保護;微機保護

一、繼電保護的工作原理

測量、邏輯、執行這三模塊是繼電保護的組成部分,可以發揮不同的作用,改進和完善繼電保護的功能。在電力系統出現故障時,一方面要快速的阻止故障的危害進一步擴大,另一方面要監督預防障礙部分攻破薄弱環節。繼電保護的過程兼具快速性與選擇性,所以在配電保護時要注意協調技術,找準切入口,充分利用配電裝置,發揮好繼電保護的功用,努力帶動電力系統的整體性性能的提升。其次,要利用升級后的繼電保護裝置與不正常的用電環境產生一定效應,保護好用電系統的安全,防患于未然。在電力傳輸系統下,保護用電對象時傳輸輸入信號,然后進行下一步的測量工作,采集測量后的信息,與正確值進行輸入的對比,將保護對象保護范圍的異常狀況與環境進行檢測,完善繼電保護裝置的運行效率及可靠性。提升繼電保護裝置的靈敏系數,提升繼電保護中的實施的準確度。最后在于采集測量模塊與給定的整定值相對照,以測量模塊輸出的比較值的性質、大小、次序以及其他參數為根據,進行計算。以得到的邏輯運算值進行最后一步的判定,發出警報命令。

二、繼電保護的一般要求

1、可靠性

不誤動,不拒動,保護裝置本身可靠。常規保護拒動多,誤動少。變電站綜合自動化系裝置(微機保護)自診斷功能能夠及時發現問題拒動很少。受到干擾后容易產生誤動多,隨著產品質量與抗千擾能力的不斷提高,變電站綜合自動化裝置(微機保護)誤動越來越少。

2、選擇性

先切除故障設備,拒動時后備保護或上一級保護才動作。最大限度縮小故障范圍,減少事故停電造成的損失。

3、靈敏性

靈敏系數為流過保護安裝處最小短路電流與保護動作電流(均為一次側電流)之比,為保證保護可靠動作,靈敏系數必須大于規定值,一般為1:2-2.0。靈敏系數達不到要求,就要減小保護動作電流。但減小保護動作電流又會影響保護的選擇性。

4、速動性

速動性要求保護在最短與最合理的時間內將故障切除,保證電系統統的穩定運行,縮小故障范圍,減小故障引起的電力設備破壞程度。以上四點又稱為繼電保護的四大要素。

三、保護配置與整定

1、變配電站綜合自動化裝置(微機保護)保護功能比較全,給變配電站二次電路設計帶來很大方便。有些保護配置已超過電氣設計規范與手冊的規定與要求,在電氣設計規范與手冊沒有修改之前,給保護配置與整定帶來一些麻煩。

現在已經有廠家生產通用型變配電站綜合自動化裝置(微機保護),硬件統一為一到兩種,軟件設計包括各種保護,可根據需要進行組態(保護設置)。產品開發應作到硬件端子定義合理,軟件組態(保護設置)方便,并符合電氣設計規范與設計手冊的要求。

2、變配電站綜合自動化裝置(微機保護)保護整定計算資料還不太全,目前只能根據工業與民用配電設計手冊第七章第二至第六節中常規保護的整定與值計算來進行整定。變配電站綜合自動化裝置(微機保護)精度高,可靠系數與時限階段可取下限,返回系數可取上限。手冊中查不到保護整定計算資料時,可根據廠家提供的資料,或有關資料介紹的經驗數據來整定。也可以將手冊中查不到的保護通過軟件設置來退出。保護功能多,如果整定不合理,反而容易引起保護誤動作。

四、保護整定計算

1、過電流保護

1.1過電流保護按躲過可能出現的過負荷電流來整定。動作電流等于過負荷電流乘以可靠系數與接線系數,再除以繼電器返回系數與電流互感器變比。變壓器與高壓電容器的過負荷電流等于變壓器與高壓電容器的額定電流乘以過負荷系數。有高壓電動機的電源進線與母線分段斷路器的過電流保護要考慮高壓電動機的啟動電流。

動作時限一般取0.5一0.7s

1.2除以繼電器返回系數是為了保證選擇性。繼電器返回系數等于繼電器返回電流除以繼電器啟動電流。返回系數恒小于1,返回系數越小,返回電流就越小于啟動電流。當下一級保護使其過電流保護啟動,下一級保護動作后,電流仍然大于繼電器返回電流時,繼電器不能返回,就會發生越級跳閘。繼電器返回系數一般取0.85,變配電站綜合自動化裝置(微機保護)的返回系數由軟件來決定,范圍為0.7一1.0,保護整定時可根據要求進行設置,一般取0.9。有些變配電站綜合自動化裝置(微機保護)沒有給出返回系數設置,軟件已經按0.9設置,保護整定時返回系數可按0.9進行計算。

1.3設計手冊中高壓電動機保護配置中沒有過電流保護是有一定道理的,因為高壓電動機保護沒有與下一級保護配合的問題,又不可能作為下一級保護的后備保護。電流速斷保護與過負荷保護相結合,可以實現過電流保護。有些變配電站綜合自動化裝置(微機保護)高壓電動機保護有過電流保護,就出現了如何整定的問題,需要進行討論。

2、過負荷保護

2.1變壓器、高壓電動機與高壓電容器的過負荷保護按變壓器、高壓電動機與高壓電容器的額定電流來整定。動作電流等于其額定電流乘以可靠系數與接線系數,再除以繼電器返回系數與電流互感器變比來整定。

動作時限一般取9一15s。

2.2設計手冊中線路與母線分段斷路器保護配置中沒有過負荷保護,有些變配電站綜合自動化裝置(微機保護)線路與母線分段斷路器保護有過電流保護,就出現了如何整定的問題,也需要進行討論。

2.3配電設計手冊規定低壓側斷路器有過負荷保護時,可不裝設專用的過負荷保護,變配電站綜合自動化裝置(微機保護)帶有定時限與反時限過負荷保護,應加以利用,但要處理好選擇性配合問題。

2.4變配電站綜合自動化裝置(微機保護)有定時限與反時限過負荷保護,保護選擇性配合級數少時,保護整定時應優先選用反時限過負荷保護。

3、高壓電容器不平衡電流保護

3.1 對于雙星形接線的高壓電容器,可以在兩個星形的中性點連接線上安裝電流互感器,當高壓電容器內部發生故障,申性點電壓發生漂移,安裝在兩個星形的中性點連接線上的電流互感器就會有不平衡電流輸出,可用來作為高壓電容器不平衡電流保護。

3.2 對于三角形接線的高壓電容器,要實現不平衡電流保護,就要在三角形各邊上安裝電流互感器,再將三個電流互感器二次側串聯后,才能取得不平衡電流,所以三角形接線只適用于大容量高壓電容器補償。

結束語

隨著電力系統的高速發展和計算機技術、通信技術的進步,繼電保護技術面臨著進一步發展的趨勢。國內外繼電保護技術發展的趨勢是計算機化,網絡化,保護、控制、測量、數據通信一體化和人工智能化,這對繼電保護工作者提出了艱巨的任務,也開辟了廣闊的活動天地。總之,繼電保護必將隨著各種技術的進步和發展呈現更新的特征,也將獲得更廣泛的應用。

參考文獻

[1]張春岐,任君萍,張峰,任華軍. 微機綜合保護在變配電站的應用[J]. 電氣應用. 2010(12).