freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于vhdl語(yǔ)言的hdb3碼的編碼和譯碼-資料下載頁(yè)

2024-12-03 22:38本頁(yè)面

【導(dǎo)讀】經(jīng)廣泛應(yīng)用于模擬與數(shù)字電路系統(tǒng)等許多領(lǐng)域。EDA的一個(gè)重要特征就是使用硬件描述。語(yǔ)言來(lái)完成設(shè)計(jì)文件。誕生于1982年的VHDL語(yǔ)言是經(jīng)IEEE確認(rèn)的標(biāo)準(zhǔn)硬件。描述語(yǔ)言,在電子設(shè)計(jì)領(lǐng)域受到了廣泛的接受。HDB3編碼是數(shù)字基帶信號(hào)傳輸中常用的傳輸碼型,因其具有無(wú)直流成分,成為普遍使用的基帶傳輸碼之一。本設(shè)計(jì)是在QuartusII開(kāi)發(fā)環(huán)境下采用VHDL語(yǔ)言的,設(shè)計(jì)HDB3編碼器和譯碼器。根據(jù)編碼規(guī)則將譯碼器分為三個(gè)部分:插V模塊、插B. 模塊、單極性變雙極性模塊。塊進(jìn)行仿真,實(shí)現(xiàn)相應(yīng)功能后再進(jìn)行整體仿真。

  

【正文】 雙 極 性 變 換H D B 3 碼 流串 行 代 碼 輸 入 圖 31編碼數(shù)據(jù)流波形及 HDB3編碼模型 整個(gè) HDB3編碼器包含 3個(gè)功能部分 ; 插 V, 插 B和單極性碼轉(zhuǎn)變成雙極性碼。各部分之間采用同步時(shí)鐘作用 , 并且?guī)в幸粋€(gè)異步的復(fù)位 (清零 )端口。下面詳細(xì)介紹各個(gè)部分的設(shè)計(jì)流程、編寫(xiě)的源程序及用軟件模擬仿真的波形圖。 插 V模塊的建模 與實(shí)現(xiàn) 設(shè)計(jì)思路 設(shè)計(jì)流程 如圖 33所示 , 當(dāng)出現(xiàn)四個(gè)連 “0”串的時(shí)候 , 把第四個(gè) “0”變換成為符號(hào) V(V可以是邏輯 1高電平 ), 而在其他情況下 , 則保存消息代碼的原樣輸出。同時(shí)為了減少后面工作的麻煩 , 在進(jìn)行插 V 時(shí) , 用 “11”標(biāo)識(shí)它 , “1”用 “01”標(biāo)識(shí) , “0”用 “00”標(biāo)識(shí)。假設(shè)輸入一串代碼 , 根據(jù)設(shè)計(jì)思想 , 輸入代碼與插入 V符號(hào)之后的關(guān)系如表 32所示。從表中可以看出 , 插入 V后 , 原代碼變成了雙極性碼 , 其規(guī)律是 :“1”碼用 “01”代替 , “0”碼用“00”或 “11”代替 , 而具體是用 “00”還是 “11”, 要根據(jù)信息碼中是否出現(xiàn) 4連 “0”, 如果有四個(gè)以上的 “0”碼 , 則第四個(gè) “0”碼用 “11”代替 , 其它用 “00”代替。 13 01 000 00 00 00 110 101 100 000 000 010 101 10 0000 00 0010 1代 碼插 V 插01 110 110 1圖 32插入 V后碼型 s t a r tc o d e o u t v = “ 1 1 ”c o d e i n = 0c o u n t0 = 3C o u n t0 = 0C o u n t0 = 0c o d e o u t v = “ 0 0 ”C o u n t0 = c o u n t0 + 1c o d e o u t v = “ 0 1 ”e n dC o u n t0 = 0NNYYC o u n t 0 : 連 “ 0 ” 個(gè) 數(shù) 計(jì) 數(shù) 器“ 0 1 ” : 標(biāo) 識(shí) 位 為 “ 1 ”“ 1 1 ” : 標(biāo) 識(shí) 位 為 “ V ”“ 0 0 ” : 標(biāo) 識(shí) 位 為 “ 0 ” 圖 33插 V符號(hào)流程圖 程序設(shè)計(jì) 插 V符號(hào)的進(jìn)程如下: add_v:process(clk, clr) begin if(rising_edge(clk))then if(clr=39。139。)then 14 codeoutv=00。 count0=0。 else case codein is when39。139。=codeoutv=01。 count0=0。 when39。039。= if(count0=3)then codeoutv=11。 count0=0。 else count0=count0+1。 codeoutv=00。 end if。 when others= codeoutv=00。 count0=count0。 end case。 end if。 end if。 end process add_v。 具體程序見(jiàn)附錄 1。 這個(gè)程序設(shè)計(jì)了一個(gè)計(jì)數(shù)器 count0, 用來(lái)作為應(yīng)插 V符號(hào)的標(biāo)志。當(dāng)輸入是 “1”時(shí)輸出則為 “01”;當(dāng)輸入的是 “0”時(shí),就要考慮 count0此時(shí)的值。若為3則輸出為 “11”即插入符號(hào) “V”; 若小于 3則輸出 “00”。 在進(jìn)程 process中,通過(guò)條件控制開(kāi)關(guān) (case語(yǔ)句 )完成插 V功能。這里使用了一個(gè)技巧來(lái)實(shí)現(xiàn)流程的控制,即在選擇語(yǔ)句 (case語(yǔ)句 )中嵌套了條件判斷語(yǔ)句 (if語(yǔ)句 )來(lái)控制雙重條件判斷的執(zhí)行結(jié) 果。 15 圖 34插 V符號(hào)仿真圖形 如圖 34, 仿真中, clk上升沿有效, 故賦值時(shí)應(yīng)注意要在上升沿時(shí)變動(dòng) 才是有效的 。clr高電平有效 , clr是高電平是輸出則為 “0”,是低電平時(shí)則正常輸出 。成功實(shí)現(xiàn)將 4個(gè)連 “0”的第四個(gè) “0”變成 V,其他則按原碼輸出。 其中,利用 “11”即 “V”代替第四個(gè) “0”。圖 4中 , 輸入是 “111111100000001……” ,輸出是 “000011100030001……” 。 由于清零是高電平,所以最前面的四個(gè)代碼輸出是 “0”。 c o d e inc lkc lrc o d e o u t v [ 1 . . 0 ]hdb3vin s t 圖 35插 V碼模塊的模型 +A [ 3 1 . . 0 ]B [ 3 1 . . 0 ]A D D E RDE N AQP R EC L RDE N AQP R EC L RD QP R EE N AC L R=A [ 3 1 . . 0 ]B [ 3 1 . . 0 ]E Q U A LSELD A T A AD A T A BO U T 0M U X 2 1SELD A T A AD A T A BO U T 0M U X 2 1SELD A T A AD A T A BO U T 0M U X 2 1SELD A T A AD A T A BO U T 0M U X 2 1SELD A T A AD A T A BO U T 0M U X 2 1co d e o u t v [ 0 ] ~re g 0co d e o u t v [ 1 ] ~re g 0Eq u a l 03 2 39。 h 0 0 0 0 0 0 0 3 co d e o u t v ~[ 1 . . 0 ]2 39。 h 1 co d e o u t v ~[ 3 . . 2 ]2 39。 h 0 co d e i ncl kcl rco d e o u t v [ 1 . . 0 ]co u n t 0 [ 3 1 . . 0 ]co u n t 0 ~[ 9 5 . . 6 4 ]3 2 39。 h 0 0 0 0 0 0 0 0 co u n t 0 ~[ 6 3 . . 3 2 ]3 2 39。 h 0 0 0 0 0 0 0 0 co u n t 0 ~[ 3 1 . . 0 ]3 2 39。 h 0 0 0 0 0 0 0 0 A d d 03 2 39。 h 0 0 0 0 0 0 0 1 圖 36插 V碼模塊的 rtl級(jí)電路 插 B模塊的 建模與 實(shí)現(xiàn) 16 從編碼規(guī)則來(lái)分析,這個(gè)設(shè)計(jì)的難點(diǎn)之一是如何決判是否應(yīng)該插 “B”,因?yàn)檫@涉及到由現(xiàn)在時(shí)間的狀態(tài)決定過(guò)去時(shí)間狀態(tài)的問(wèn)題。按照實(shí)時(shí)信號(hào)處理的理論,這是沒(méi)辦法實(shí)現(xiàn)的。但在實(shí)際的電路中,可以考慮用寄存器的方法,首先把信碼寄存在寄存器里,同時(shí)設(shè)計(jì)一個(gè)計(jì)數(shù)器記數(shù)兩個(gè) “V”之間 “1”的個(gè)數(shù),經(jīng)過(guò) 4個(gè)碼元時(shí)間后,由一個(gè)判偶電路來(lái)給寄存器發(fā)送是否插 “B”的判決信號(hào),從而實(shí)現(xiàn)插 “B”的功能。 插 B模塊的功能是保證插 V符號(hào)的序列不破壞 由于 “極性交替反轉(zhuǎn) ”造成的 無(wú)直流特性。即當(dāng)相鄰 V符號(hào)之間有偶數(shù)個(gè)非 0符號(hào)的時(shí)候,把后一小段的第一個(gè) 0變成一個(gè)非破壞符號(hào) —B符號(hào)。 故 為了 實(shí)現(xiàn)插 B功能, 設(shè)計(jì)時(shí)首先用 4位 寄存器 存前 4個(gè)狀態(tài)的輸入和 1個(gè)計(jì)數(shù)器計(jì)算 1的奇偶,每當(dāng)有輸入時(shí)判斷,如果輸入 1時(shí)計(jì)數(shù)器加 1,如果輸入 0時(shí)計(jì)數(shù)器不變,當(dāng)輸入 V時(shí)判斷計(jì)數(shù)器的奇偶,如果是偶 則輸出 B,每 輸出一個(gè)各寄存都右移一位[10]。流程圖如 38所示。 從前面的程序中我們了解到, V已經(jīng)用 “11”代替 , 1用 “01”取代,從這里就表現(xiàn)出采用雙相碼的優(yōu)點(diǎn),它輕易地解決了 V和 1的差別。根據(jù)這個(gè)設(shè)計(jì)思想,輸入代碼 與插 V及 B后的代碼的關(guān)系見(jiàn)圖 37 01 000 00 00 00 110 101 1000 000 010 101 10 0000 00 0010 1代 碼插 V 插01 110 110 10 00 00 01 00 10 11 10 00 00 11 10 00 00 00 1插 B 插1 1 0 10 10 0 圖 37插入 V, B后碼型 17 s t a r tF i r s t v = 0C o d e o u t v = “ 0 0 ”C o d e o u t v = “ 0 1 ” C o d e o u t v = “ 1 1 ”C o u n t1 = c o u n t1 = 1 C o u n t1 = c o u n t1F i r s t v = 0C o u n t1 = 0F i r s t v = 1c o u n t1 = 0S 1 ( 4 ) = 1S 0 ( 4 ) = 0S 1 ( 4 ) = s 1 ( 3 ) 。S 0 ( 4 ) = s 0 ( 3 )C o u n t1 = 0S 1 ( 4 ) = s 1 ( 3 ) 。S 0 ( 4 ) = s 0 ( 3 )C o d e o u t b = s 1 ( 4 ) amp。 s 0 ( 4 )YNYF i r s t v : 記 “ 1 1 ” 的 個(gè) 數(shù) ( 奇 偶 性 )是 否 是 第 一 個(gè)V碼C o u n t1 : 記 “ 0 1 ” 的 個(gè) 數(shù) ( 奇 偶 性 )“ 1 0 ” : 標(biāo) 識(shí) 符 為 “ B ” 圖 38插 B符號(hào)的流程圖 插 B符號(hào)的進(jìn)程如下: add_b: process(clkb) begin if(rising_edge(clkb))then if(codeoutv=11)then if(firstv=0)then count1=0。 firstv=1。 s1(4)=s1(3)。 s0(4)=s0(3)。 else if(count1=0)then 18 s1(4)=39。139。 s0(4)=39。039。 count1=0。 else s1(4)=s1(3)。 s0(4)=s0(3)。 count1=0。 end if。 end if。 elsif(codeoutv=01)then count1=count1+1。 s1(4)=s1(3)。 s0(4)=s0(3)。else s1(4)=s1(3)。 s0(4)=s0(3)。 count1=count1。 end if。 end if。 end process add_b。 codeoutb=s1(4)amp。s0(4)。 具體程序見(jiàn)附錄 1, 處理插 “B”的 問(wèn)題的思路是:首先把碼元 (經(jīng)插 V處理過(guò)的 )放入一個(gè) 4位的移位寄存器里,在同步時(shí)鐘的作用下,同時(shí)進(jìn)行是否插 B的判決,等到碼元從移位寄存器里出來(lái)的時(shí)候,就可以決定是應(yīng)該變換成 B符號(hào),還是照原碼輸出。因此,在程序的結(jié)構(gòu)中進(jìn)行元件聲明 (ponent declaration),調(diào)用庫(kù)里的 D觸發(fā)器來(lái)實(shí)現(xiàn)延時(shí)作用。為了使程序更清晰,用了四個(gè)元件例化語(yǔ)句 (ponent instantiation)dffx。dff port map(),來(lái)說(shuō)明信號(hào)的流向。所謂元件例化就是引入一種連接關(guān)系,將預(yù)先設(shè)計(jì)好的設(shè)計(jì)實(shí)體定義為一個(gè)元件,然后利用特定的語(yǔ)句將此元件與當(dāng)前的設(shè)計(jì)實(shí)體中的指定端口相連接,從而為當(dāng)前設(shè)計(jì)實(shí)體引入一個(gè)新的低一級(jí)的設(shè)計(jì)層次。在這里,當(dāng)前設(shè)計(jì)實(shí)體相當(dāng)于一個(gè)較大的電路系統(tǒng),所定義的例化元件相當(dāng)于一個(gè)要插在這個(gè)電路系統(tǒng)上的芯片,而當(dāng)前設(shè)計(jì)實(shí)體中指定的端口則相當(dāng)于這塊電路板上準(zhǔn)備接受此芯片的一個(gè)插座。元件例化是 VHDL設(shè)計(jì)實(shí)體構(gòu)成自上而下層次化設(shè)計(jì)的一種重要途徑。要進(jìn)行插 B判決首 19 先要知 道哪一個(gè)是 V,從前面的程序中我們了解到, V已經(jīng)用 11代替, 1用 01取代,從這里就表現(xiàn)出采用雙相碼的優(yōu)點(diǎn),它輕易的解決了 V和 1的差別。 結(jié)果 圖 39插 B模塊的仿真圖 如圖 39, 在仿真中, clk下降沿有效。 由于利用了兩組四位的寄存器,在輸入時(shí)其中前三位沒(méi)有什么條件控制依次移位即可,故輸入和輸出會(huì)有三位的脈沖延時(shí)。 由波形可看出, 在相鄰 “V”之間有偶數(shù)個(gè)非 0碼時(shí)插入 “B”,否則正常輸出。 成功 實(shí)現(xiàn) 了 插 B的功能。 c odeo ut v [ 1. . 0]c lkc odeo ut b[ 1. . 0]hdb3bins t 圖 310插 B模塊的 模型 +A [ 0 ]B [ 0 ]A D D E RDE N AQP R EC L R01010=A [ 1 . . 0 ]B [ 1 . . 0 ]E Q U A L=A [ 1 . . 0 ]B [ 1 . . 0
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1