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

?

基于DWA 算法的DAC 芯片譯碼電路設(shè)計(jì)

2024-01-31 13:23:14陳彬彬藍(lán)浩宇程振輝曾智勇
電子制作 2024年2期
關(guān)鍵詞:譯碼溫度計(jì)移位

陳彬彬,藍(lán)浩宇,程振輝,曾智勇

(北方工業(yè)大學(xué),北京,100144)

0 序言

當(dāng)今社會,隨著電子技術(shù)的快速發(fā)展,越來越多的信號需要使用計(jì)算機(jī)來處理,在自然界中我們所能接觸到的信號大多是模擬信號,像溫度的升高和降低,壓力的增加和減少等變化所產(chǎn)生的信號都是模擬信號,但是計(jì)算機(jī)只能處理數(shù)字信號,所以在進(jìn)行數(shù)字信號處理的過程中,我們都是先采用模數(shù)轉(zhuǎn)換裝置(ADC)將采集到的模擬信號轉(zhuǎn)化成數(shù)字信號,然后對這些信號經(jīng)過一系列的數(shù)字信號處理(DSP),但由于能被我們聽懂的依然是模擬信號(比如聲音信號),所以最終我們還要將處理完的數(shù)字信號通過數(shù)模轉(zhuǎn)化裝置(DAC)再轉(zhuǎn)化成模擬信號,這就是數(shù)字信號處理系統(tǒng)(如圖1 所示)的核心內(nèi)容。隨著電子產(chǎn)品的不斷更新,各個(gè)領(lǐng)域?qū)?shù)字信號處理系統(tǒng)的要求也越來越高,ADC 和DAC 作為數(shù)字信號處理中最關(guān)鍵的部分,它們的設(shè)計(jì)和優(yōu)化就變得格外重要,本文主要針對DAC 的譯碼電路進(jìn)行設(shè)計(jì),不涉及實(shí)體電路的搭建,使用ModelSim 和Quartus II 軟件進(jìn)行聯(lián)合仿真,驗(yàn)證思路的正確性和可行性。

圖1 數(shù)字信號處理系統(tǒng)的框圖

DAC 的全稱是Digital to Analog Converter,即數(shù)模轉(zhuǎn)換器,它是一種可以實(shí)現(xiàn)將數(shù)字量轉(zhuǎn)換成模擬量的電路結(jié)構(gòu)[9]。作為最基本且最重要的混合信號構(gòu)建模塊,DAC 由N-2N數(shù)字譯碼電路和模擬等分壓或等分流電路組成,所輸入的N個(gè)數(shù)字碼(bN-1,…,b2,b1,b0)經(jīng)過譯碼電路生成2N個(gè)開關(guān)信號去控制模擬電路中的等壓或等流電路開關(guān),從而輸出相應(yīng)的模擬信號,輸出電壓表達(dá)式如下:

其中k為比例放大系數(shù),Vref為分壓電路的總輸入電壓。

在數(shù)字碼發(fā)生變化的瞬間,DAC 模塊會產(chǎn)生完全不同的電壓(或電流)輸出,這會導(dǎo)致輸出的模擬信號中出現(xiàn)噪聲。消除噪聲的解決方案之一是使用溫度計(jì)碼,溫度計(jì)碼的使用對譯碼電路而言,當(dāng)輸入的數(shù)字碼數(shù)值增加1 的時(shí)候,所輸出的譯碼結(jié)果中會多一位1。另外,在芯片加工過程中,同樣大小的電阻或電容都有一定的誤差,也就是等壓(或等流)電路之間存在一定的工藝誤差,如果輸出碼所控制的模擬電路固定不變,則會產(chǎn)生較大的工藝匹配誤差帶入到輸出模擬信號中,為了減少這種誤差,一般采用數(shù)據(jù)權(quán)重平均算法(DWA)來平均使用分壓電路。

在實(shí)際生產(chǎn)和應(yīng)用中,通信系統(tǒng)的設(shè)計(jì)和研究直接在硬件上實(shí)現(xiàn)起來不僅復(fù)雜而且昂貴,所以現(xiàn)代通信技術(shù)的系統(tǒng)分析通常使用計(jì)算機(jī)仿真來進(jìn)行,這樣一來可以在很大程度上降低設(shè)計(jì)的難度和成本。隨著Verilog 等設(shè)計(jì)語言的出現(xiàn),大大簡化了包括譯碼電路在內(nèi)的現(xiàn)代通信技術(shù)的設(shè)計(jì)難度,并且隨著 Quartus II 和 ModelSim 等軟件的發(fā)展,采用計(jì)算機(jī)仿真技術(shù)來進(jìn)行系統(tǒng)設(shè)計(jì),仿真和調(diào)試越來越普遍。本文通過使用 Quartus II 和 ModelSim 平臺,采用Verilog語言進(jìn)行隨機(jī)信號的產(chǎn)生及動(dòng)態(tài)平均信號的代碼實(shí)現(xiàn)和結(jié)果測試(即圖1 D/A 轉(zhuǎn)換器的譯碼電路部分)。

1 DAC 譯碼電路的設(shè)計(jì)思路及系統(tǒng)組成

本文所設(shè)計(jì)的是用于5 位二進(jìn)制輸入信號的DAC 芯片開關(guān)控制信號生成電路,它可以將串行輸入的五位數(shù)字碼,以數(shù)值映射的方式譯成不同的溫度計(jì)碼,然后利用隨機(jī)碼生成器所生成的隨機(jī)碼序列借助桶形移位器對溫度計(jì)碼進(jìn)行動(dòng)態(tài)平均,最終并行輸出動(dòng)態(tài)平均后的開關(guān)控制信號,該信號可用于控制模擬等分壓或等分流電路中電壓源或者電流源的開斷,可以達(dá)到良好的動(dòng)態(tài)性能。本文所設(shè)計(jì)的譯碼電路主要由三部分組成,分別為溫度計(jì)碼生成模塊,本地偽隨機(jī)碼發(fā)生器模塊(生成m 序列)和動(dòng)態(tài)平均模塊??傮w設(shè)計(jì)思路如圖2 所示。

圖2 DAC 譯碼電路總體設(shè)計(jì)框圖

下面分別介紹每個(gè)模塊的工作原理和輸出信號,在溫度計(jì)碼生成模塊中,串行輸入的5 位數(shù)字碼會被譯成32 位的溫度計(jì)碼,作為原始的開關(guān)選擇信號。在偽隨機(jī)碼發(fā)生器模塊中,偽隨機(jī)碼發(fā)生器會根據(jù)給定的本源多項(xiàng)式利用線性反饋移位寄存器生成一個(gè)m 序列,該序列基本符合隨機(jī)數(shù)的要求。在時(shí)鐘信號的控制下,開關(guān)選擇信號和m 序列分別進(jìn)入不同的寄存器,被鎖存。在規(guī)定的指令下,鎖存器被打開,開關(guān)選擇信號和m 序列進(jìn)入到動(dòng)態(tài)平均模塊中,這里的動(dòng)態(tài)平均模塊相當(dāng)于一個(gè)桶形移位器(原理圖如圖3 所示),在時(shí)鐘信號的觸發(fā)下,開關(guān)選擇信號會根據(jù)m 序列的值進(jìn)行移動(dòng)。m碼為1時(shí)開關(guān)控制信號輸出整體左移一位,為0 時(shí)整體右移一位,循環(huán)時(shí)將上一次輸出值的下一位作為起始位再進(jìn)行循環(huán)移位,最后并行輸出完成權(quán)重平衡之后的開關(guān)控制信號,該信號可輸入到模擬等分壓或等分流電路中控制電壓源或者電流源的開斷。因?yàn)閭坞S機(jī)碼產(chǎn)生的低電平和高電平的比例大致相同,所以最終的開關(guān)控制信號在一定的區(qū)間內(nèi)來回移動(dòng),從而能夠平均使用到每一個(gè)電流源,避免了個(gè)別電流源的閑置或長期占用。同時(shí),溫度計(jì)碼的使用可以保證當(dāng)數(shù)字輸入碼每增加“1”時(shí),都只會多打開一個(gè)單位電流源,避免了出現(xiàn)大量的電源開關(guān)在同一時(shí)刻被開啟或者關(guān)斷而引起很大的數(shù)字干擾,有利于使整個(gè)電路達(dá)到良好的動(dòng)態(tài)性能[1]。

圖3 開關(guān)控制信號的循環(huán)圖示

2 溫度計(jì)碼生成模塊的設(shè)計(jì)

首先來介紹一下溫度計(jì)碼的組成方法,溫度計(jì)碼類似于一串比特流,它只由“0”和“1”來構(gòu)成,溫度計(jì)碼的特殊之處在于,在這串比特流中,“1”全部出現(xiàn)在低位,“0”全部出現(xiàn)在高位,而且“0”和“1”都是連續(xù)出現(xiàn)的,不能出現(xiàn)“0”和“1”相間排列的情況,即只能寫成00000001、00000111、01111111 或者 11111111 的形式。溫度計(jì)碼的大小只能通過增加“1”的位數(shù)或者減少“1”的位數(shù)來改變,就像溫度的變化一樣,故由此得名。

溫度計(jì)碼在本文所設(shè)計(jì)的DAC 譯碼電路中充當(dāng)?shù)氖情_關(guān)控制信號的作用,用于控制DAC 的模擬電路部分中電流源的開斷。以常見的二進(jìn)制加權(quán)型電流舵型 DAC 為例,這種DAC 譯碼電路每一位的權(quán)值按照2 的冪遞增,每一位數(shù)字碼所控制的電流的大小按照權(quán)值的依次遞增。例如對于一個(gè)10 位的二進(jìn)制加權(quán)型電流舵DAC,它的最高位和最低位的電流比值是1024∶1,但是以現(xiàn)在的工藝很難達(dá)到如此高的匹配精度,尤其是在轉(zhuǎn)換的半量程處,即開關(guān)控制信號從011111111111 變化為100000000000 時(shí),大量的電流源同時(shí)開斷會使得輸出的電流出現(xiàn)毛刺,從而影響DAC 的動(dòng)態(tài)性能[1]。溫度計(jì)碼的發(fā)明和設(shè)計(jì)能夠較好地改善二進(jìn)制加權(quán)型電流舵型 DAC 的缺點(diǎn),提高DAC 的分辨率。這樣設(shè)計(jì)出的DAC 譯碼電路不僅可以綜合二進(jìn)制加權(quán)型DAC 結(jié)構(gòu)簡單、占用版圖面積小的優(yōu)點(diǎn),而且溫度計(jì)碼的結(jié)構(gòu)也提升了動(dòng)態(tài)性能,從而在精度和面積上都得到了優(yōu)化[1]。

圖4 是一個(gè)5 位溫度計(jì)碼型 DAC 的結(jié)構(gòu)簡圖。圖中每個(gè)電流源所控制的電流值是相同的,每一個(gè)電流源都有一位數(shù)字開關(guān)用以控制電流源輸出電流的方向(正相或負(fù)相)??刂七@些開關(guān)的信號是由五位二進(jìn)制輸入碼到溫度計(jì)碼譯碼器提供的[1]。

圖4 5 位溫度計(jì)碼型 DAC 的結(jié)構(gòu)簡圖

3 本地偽隨機(jī)碼發(fā)生器模塊的設(shè)計(jì)

本文所介紹的本地偽隨機(jī)碼發(fā)生器模塊的作用是產(chǎn)生m 碼序列,首先介紹一下什么是m 序列,m 序列是最長線性反饋移位寄存器序列的簡稱,又叫做偽隨機(jī)碼,是一種可以預(yù)先確定并可以重復(fù)地產(chǎn)生和復(fù)制、又具有隨機(jī)統(tǒng)計(jì)特性的二進(jìn)制碼序列[8]。它容易產(chǎn)生且具有一定的隨機(jī)性,在一定條件下可以作為隨機(jī)碼被使用,是目前廣泛應(yīng)用的一種偽隨機(jī)序列。

圖5 是由5 級移位寄存器構(gòu)成的偽隨機(jī)碼序列發(fā)生器。寄存器的狀態(tài)取決于時(shí)鐘控制下輸入的信號,例如第2 級移位寄存器的狀態(tài)取決于第3 級移位寄存器輸出的信號,B1 是反饋線路,在程序上為異或操作,因此一般形式的表達(dá)式為:

圖5 m 序列的實(shí)現(xiàn)結(jié)構(gòu)

偽隨機(jī)碼的verilog 代碼說明:

因?yàn)閞st 為全局異步復(fù)位信號,低電平有效,所以最開始將移位寄存器相位復(fù)位成5'b11111,即:

當(dāng)時(shí)鐘的上升沿信號來臨時(shí),如圖6 所示,m 序列發(fā)生器中的每一位值進(jìn)行右移操作,最高位的值由初始次高位值和初始最低位值進(jìn)行異或操作后得到,最后將每一次的最低位值賦給輸出變量,進(jìn)行輸出。同時(shí)也可以看出m 序列中高電平和低電平出現(xiàn)的時(shí)刻并沒有很強(qiáng)的規(guī)律性而且它們所占的比例大致相同,所以基本確定該序列有一定的隨機(jī)性,可以作為偽隨機(jī)碼被使用。

圖6 m 碼序列仿真結(jié)果

4 動(dòng)態(tài)平均模塊的設(shè)計(jì)

本文所設(shè)計(jì)DAC 譯碼電路的動(dòng)態(tài)平均模塊主要利用的是數(shù)據(jù)權(quán)重平均算法(DWA),該算法的基本思想是通過滾動(dòng)開關(guān)信號的方式來平均的使用電流源,避免某些電流源被經(jīng)常使用,而某些電流源被經(jīng)常閑置,從而降低由于工藝造成的不匹配性導(dǎo)致單位電流源之間電流值不匹配的影響,以達(dá)到很好的動(dòng)態(tài)性能[1]。

該模塊的具體實(shí)現(xiàn)方法是,基于數(shù)據(jù)權(quán)重平均算法(DWA)的原理,設(shè)計(jì)了一個(gè)方向可調(diào)換的桶行移位器(如圖3 所示),該移位器可以根據(jù)要求改變信號移動(dòng)的方向和位數(shù),而且在單個(gè)時(shí)鐘周期內(nèi)能使任何位數(shù)的數(shù)據(jù)完成移位或循環(huán)。由于它的移位操作具有圓形特性,故有 “桶形移位器”之名 。在該設(shè)計(jì)模塊中,桶行移位器利用本地偽隨機(jī)碼發(fā)生器模塊所生成的m 碼序列對溫度計(jì)碼生成模塊輸出的溫度計(jì)碼(即開關(guān)控制信號)進(jìn)行滾動(dòng)移位,m 碼為1 時(shí)開關(guān)控制信號輸出整體左移,m 碼為0 時(shí)整體右移,循環(huán)時(shí)將上一次輸出值的下一位作為起始位再進(jìn)行循環(huán)移位。由于偽隨機(jī)碼具有一定的隨機(jī)性,而且通過仿真結(jié)果(如圖6 所示)可以看到m 碼的高電平和低電平所占的比例大致相同,而且在設(shè)計(jì)時(shí)默認(rèn)每一次都只移動(dòng)一位,所以可以保證開關(guān)控制信號是在一定區(qū)間內(nèi)均勻的滾動(dòng),從而達(dá)到平均使用DAC 模擬電路模塊中電流源的目的。本文所設(shè)計(jì)的桶形移位器的移動(dòng)方式如圖3 所示,該圖以8位控制信號為例,按照從上到下的順序描述了信號移動(dòng)的過程,最前面一列的數(shù)字表示移動(dòng)的位數(shù),最上面的一行數(shù)字表示一共有8 位信號參與移動(dòng),箭頭表示移動(dòng)的方向。

動(dòng)態(tài)平均模塊輸出的是完成權(quán)重平衡之后的開關(guān)控制信號,其仿真結(jié)果如圖7 所示。

圖7 動(dòng)態(tài)平均模塊仿真結(jié)果

由于開關(guān)控制信號移動(dòng)的方向是由動(dòng)態(tài)偽隨機(jī)碼決定的,也就是說模擬電路模塊中被打開或者被關(guān)閉的電流源或者電壓源的位置也是動(dòng)態(tài)變化的,但由于使用了溫度計(jì)碼,不會出現(xiàn)大量的開關(guān)在同一時(shí)刻做出開啟或者關(guān)斷的情況,這樣的設(shè)計(jì)可以保證不僅所有的電源都能夠被動(dòng)態(tài)平均使用,而且整個(gè)DAC 譯碼電路的動(dòng)態(tài)性能也能得到提升。

5 仿真結(jié)果分析

將用ModelSim 編寫的基于DWA 算法的DAC 芯片譯碼電路的設(shè)計(jì)代碼和測試文件與Quartus II 相關(guān)聯(lián),仿真出譯碼電路從輸入到輸出的時(shí)域波形(如圖8)和總體的硬件電路圖(如圖9 所示)。圖6 為m 序列發(fā)生器產(chǎn)生的偽隨機(jī)碼序列,可以看出序列中高低電平所占的比例大致相同,說明該序列具有一定的隨機(jī)性,且由于該序列可以決定開關(guān)控制信號的滾動(dòng)方向,這樣一來可以保證在一個(gè)穩(wěn)定范圍內(nèi),開關(guān)控制信號將動(dòng)態(tài)平均地使用到每一個(gè)電源。圖8為溫度計(jì)碼生成模塊產(chǎn)生的溫度計(jì)碼的時(shí)域仿真波形,可以看出當(dāng)輸入的五位二進(jìn)制數(shù)值的大小加“1”或減“1”時(shí),輸出的溫度計(jì)碼中“1”的個(gè)數(shù)增加或者減少一位,且“1”的個(gè)數(shù)是從低位到高位連續(xù)增加的,實(shí)現(xiàn)了溫度計(jì)碼的正確輸出。圖9 為動(dòng)態(tài)平均模塊輸出完成權(quán)重平衡之后的開關(guān)控制信號,可以看到m 序列的值可以控制溫度計(jì)碼的移位,實(shí)現(xiàn)了基于DWA 算法的DAC 芯片譯碼電路設(shè)計(jì)。本實(shí)驗(yàn)未涉及模擬電路模塊(等分壓或等分流電路)的設(shè)計(jì)。

圖8 溫度計(jì)碼模塊仿真結(jié)果

圖9 系統(tǒng)綜合及實(shí)現(xiàn)結(jié)果圖

使用Quartus II 的RTL Viewer 功能進(jìn)行仿真,可以看到圖9 是仿真搭建的硬件電路圖,圖10 是該電路圖的時(shí)序仿真結(jié)果。

圖10 DAC 譯碼電路總體仿真結(jié)果

6 結(jié)語

本文主要介紹了基于DWA 算法的DAC 芯片譯碼電路的設(shè)計(jì)過程,首先根據(jù)DAC 譯碼電路的要求構(gòu)建設(shè)計(jì)思路,因?yàn)閭鹘y(tǒng)的二進(jìn)制加權(quán)型譯碼電路具備結(jié)構(gòu)簡單、占用版圖面積小的優(yōu)點(diǎn),思路清晰且易于實(shí)現(xiàn),所以決定在該電路的設(shè)計(jì)基礎(chǔ)上進(jìn)行缺點(diǎn)的優(yōu)化。然后通過分析和對比,為了解決加權(quán)型譯碼電路由于技術(shù)限制所導(dǎo)致的工藝不匹配的問題,決定采用溫度計(jì)碼的方式設(shè)計(jì)譯碼電路,由于溫度計(jì)碼在編碼結(jié)構(gòu)上的獨(dú)特性,這里用其作為開關(guān)控制信號,可以很好的解決在控制信號變化前后由于大量的電源頻繁開斷可能導(dǎo)致輸出信號出現(xiàn)毛刺的問題。最后基于DWA 算法的原理,以桶形移位器為基礎(chǔ)設(shè)計(jì)了動(dòng)態(tài)平均模塊,實(shí)現(xiàn)了將以溫度計(jì)碼形式輸出的開關(guān)控制信號在偽隨機(jī)碼的控制下在一定范圍內(nèi)循環(huán)滾動(dòng),達(dá)到了平均使用電流源的目的,同時(shí)也提升了DAC 的動(dòng)態(tài)性能。

本電路在設(shè)計(jì)思路的基礎(chǔ)上編寫了Verilog 代碼,利用ModelSim 和Quartus II 的平臺進(jìn)行了仿真。通過將仿真結(jié)果與設(shè)計(jì)思路進(jìn)行對比以及對生成的模塊進(jìn)行功能測試,邏輯功能基本得到了實(shí)現(xiàn),實(shí)驗(yàn)結(jié)果與預(yù)期值相符合,證明了仿真成功。

猜你喜歡
譯碼溫度計(jì)移位
正確認(rèn)識溫度計(jì)
各種各樣的溫度計(jì)
基于校正搜索寬度的極化碼譯碼算法研究
溫度計(jì)的『一二三』
再生核移位勒讓德基函數(shù)法求解分?jǐn)?shù)階微分方程
三招搞定溫度計(jì)
大型總段船塢建造、移位、定位工藝技術(shù)
Σ(X)上權(quán)移位算子的不變分布混沌性
從霍爾的編碼譯碼理論看彈幕的譯碼
新聞傳播(2016年3期)2016-07-12 12:55:27
多指離斷手指移位再植拇指25例
永州市| 金湖县| 雅安市| 两当县| 浦江县| 浦县| 临桂县| 吕梁市| 白水县| 海伦市| 西平县| 泽库县| 五大连池市| 元朗区| 三河市| 吉安市| 上思县| 鄢陵县| 长兴县| 焦作市| 龙游县| 和硕县| 保靖县| 襄城县| 潞城市| 九寨沟县| 化隆| 青川县| 郑州市| 奇台县| 安庆市| 遂宁市| 阳泉市| 黔西县| 肇东市| 石城县| 丹寨县| 洪江市| 泰安市| 县级市| 淄博市|