數(shù)字低通:名稱雖然不同 卻仍是一種濾波器
[Dave坐在實(shí)驗(yàn)室中,凝視著充滿Verilog代碼的屏幕……]
T:你好Dave,現(xiàn)在你在做什么?!
D:噢,你好T博士,這是一個(gè)新的芯片的印刷電路板(PCB)原型,它是一個(gè)混合信號(hào)芯片。我們正在構(gòu)建一個(gè)FPGA的數(shù)字部分。FPGA的Verilog代碼看起來是這樣的。(Dave手指著屏幕。)
圖1:一個(gè)8位計(jì)數(shù)器的Verilog代碼片段
T:它看起來很像一個(gè)程序,像C代碼。是誰寫的所有這些代碼?
D:我們的一位首席工程師Warren Craddock,把這個(gè)放在一起,你是對(duì)的——雖然我不是專家,但我可以利用我以往在C語言方面經(jīng)驗(yàn)修改別人的代碼。一個(gè)很大的不同在于,軟件C代碼是由一個(gè)處理器執(zhí)行的,而Verilog語言被編譯成了硬件邏輯。他們說,Verilog是“并發(fā)的”(每個(gè)語句都是同時(shí)執(zhí)行,因?yàn)槊總€(gè)語句都有其自己的專用邏輯),而C代碼是“順序的”(語句是順序執(zhí)行的,這是因?yàn)橹挥幸粋€(gè)處理器)。
T:很有意思,但你仍然只是工作在這些位(bit)上。你不可能真正地處理這些信號(hào),對(duì)吧?
D:這是模擬設(shè)計(jì)師一種常見的誤解。的確,在大多數(shù)情況下,一個(gè)位并不能很好地代表一個(gè)模擬信號(hào),即使你收集了進(jìn)入一條總線一大堆位,它只代表一個(gè)數(shù)字。數(shù)字的數(shù)量隨著位的數(shù)量急劇增加,這樣8位就給了我256個(gè)選擇,而12位可以給我4000個(gè)選擇。
T:所以一條總線可以代表一個(gè)模擬信號(hào),同樣,A-D轉(zhuǎn)換器代表了其輸出端的模擬輸入。時(shí)間和幅度都被量化了。
D:沒錯(cuò)。一個(gè)8位轉(zhuǎn)換器可將0至2V輸入分成256個(gè)數(shù)字,并在每個(gè)時(shí)鐘周期生成一個(gè)數(shù)字?,F(xiàn)在信號(hào)是一個(gè)數(shù)字流。
T:聽起來非常昂貴。你總得需要A-D和D-A轉(zhuǎn)換器。
D:不一定。我們可以從模擬信號(hào)開始——但我們不是必須那樣。我們可以在邏輯中內(nèi)部生成信號(hào),代表斜率、三角波、正弦波信號(hào),等等。這些信號(hào)不一定能到達(dá)模擬世界,但我們可以用濾波器、調(diào)制器和峰值檢測(cè)器將這些信號(hào)處理得像模擬信號(hào)一樣。
T:時(shí)間就是一個(gè)例子。我能想到的最簡單的濾波器是一個(gè)RC低通濾波器(LPF)。讓我來畫出電路和它的波特圖。
圖2:模擬RC的波特圖和脈沖響應(yīng)
(圖字:連續(xù)時(shí)間(模擬)單極RC低通濾波器;原理圖;脈沖響應(yīng)(時(shí)域);波特圖振幅響應(yīng)(頻域))
評(píng)論