【正文】
139。 and reg0(4 downto 2)=001 and reg1(4 downto 2)=000 then reg0=0000 amp。 and data1=39。use 。bing_chuan:process(clk2)beginif clk239。clk2: in std_logic。end if。elses2(4)=39。s0(4)=s0(3)。ds12:dff port map(s1(1),clk,s1(2))。elset0=t0+1。039。add_v:process(clk,clr)beginif clk39。signal flag3:integer range 1 downto 0:=0。139。139。039。039。 end if。use 。同時(shí),也是通過(guò)自己這三個(gè)月來(lái)的不斷學(xué)習(xí)和努力,才明白:實(shí)際操作和設(shè)計(jì),并不是像學(xué)習(xí)理論知識(shí)那么簡(jiǎn)單,會(huì)理論不等于就會(huì)應(yīng)用,很多都是經(jīng)驗(yàn)的東西,需要在自己的努力設(shè)計(jì)中才能慢慢體會(huì)到,設(shè)計(jì)多了,才會(huì)經(jīng)驗(yàn)中找到設(shè)計(jì)自如的感覺(jué)。值得注意的是,時(shí)鐘信號(hào)的管腳是固定的,分別為39和90號(hào)管腳,分配時(shí)應(yīng)注意。由于該信號(hào)可能包含有B脈沖和V脈沖,因此需要在扣V扣B模塊中,去除V和B脈沖。V碼檢測(cè)電路包括+V碼檢測(cè)和V碼檢測(cè)兩部分。由上述的程序下載到FPGA或CPLD中,其輸出結(jié)果并不是“+1”、“1”、“0”的多電平變化波形,而是單極性雙電平信號(hào),事實(shí)上,程序輸出的是給單/雙變換器的硬件電路地址信號(hào)。處理難點(diǎn)的思路是:首先把碼元(經(jīng)插“V”處理過(guò)的)放入一個(gè)4位的移位寄存器里,在同步時(shí)鐘的作用下,同時(shí)進(jìn)行是否補(bǔ)“B”的判決,等到碼元從寄存器里出來(lái)的時(shí)候,就可以決定是應(yīng)該變換成“B”符號(hào),還是照原碼輸出。+139。39。這里使用了一個(gè)技巧來(lái)實(shí)現(xiàn)流程的控制,即在選擇語(yǔ)句(case語(yǔ)句)中嵌套了條件判斷語(yǔ)句(if語(yǔ)句)來(lái)控制雙重條件判斷的執(zhí)行結(jié)果。解決的方法是利用了雙相碼,將其用二進(jìn)制碼去取代。工程上,一般將AMI或HDB3碼數(shù)字信號(hào)進(jìn)行整流處理,(RZ|τ=)。于是,出現(xiàn)了各種各樣常用碼型。在實(shí)際的基帶傳輸系統(tǒng)中,并不是所有電波均能在信道中傳輸,因此有基帶信號(hào)的選擇問(wèn)題,因此對(duì)碼型的設(shè)計(jì)和選擇需要符合一定的原則。其編碼規(guī)則為代碼中的0仍為傳輸碼0,而把代碼中1交替地變化為傳輸碼的+11+11,、。從其編碼原理可知,每一個(gè)破壞符號(hào)V總是與前一非0符號(hào)同極性,因此,從收到的HDB3碼序列中,容易識(shí)別V符號(hào),同時(shí)也肯定V符號(hào)及其前面的3個(gè)符號(hào)必是連0符號(hào),于是可恢復(fù)成4個(gè)連0碼,然后再將所有的1變成+1后變得到原消息代碼。整個(gè)HDB3編碼器包含3個(gè)功能部分:插“V”、補(bǔ)“B”和單極性碼轉(zhuǎn)變成雙極性碼。Flag1=0Flag0=0Codeoutv=+1Flag0=1Codeoutv=39。流程圖 補(bǔ)B模塊的設(shè)計(jì) 插“B”模塊的功能是保證附加“V”符號(hào)后的序列不破壞“極性交替反轉(zhuǎn)”造成的無(wú)直流特性,即當(dāng)相鄰“V”符號(hào)之間有偶數(shù)個(gè)非0符號(hào)的時(shí)候,把后一小段的第1個(gè)“0”變換成一個(gè)非破壞符號(hào)——“B”符號(hào)。39。元件例化是使VHDL設(shè)計(jì)實(shí)體構(gòu)成自上而下層次設(shè)計(jì)的一種重要途徑。Dataout為編碼輸出,其中dataout1為高位,dataout0為低位??踁扣B電路在V脈沖和同步時(shí)鐘的控制下,完成扣V扣B的功能??踁扣B模塊框圖如圖44。CC4052 是一個(gè)差分4 通道數(shù)字控制模擬開(kāi)關(guān),有A0、A1 兩個(gè)二進(jìn)制控制輸入端和INH 輸入,具有低導(dǎo)通阻抗和很低的截止漏電流。[4] ,2005。begin process(clk,reset) begin if reset=39。 when 1=dout=39。 when 9=dout=39。 when 17=dout=39。 end case。編碼器library ieee。signal s1:std_logic_vector(4 downto 0):=00000。thencodeoutv=000。end if。end case。bclk:clkb=not clk。s0(4)=39。139。139。signal qq:integer range 3 downto 0。 then qq=0。end yima。039。 reg0(4 downto 1)。 end process。 process(clock) begin if rising_edge(clock) then if reg0(0)=39。 reg1(1)。039。end if。 thencode_temp=10。end process output。s0(4)=s0(3)。end if。s1(4)=s1(3)。s2(0)=codeoutv(2)。flag1=0。flag0=1。ponent dffport(d :in std_logic。end xhdb3。ENTITY D ISPORT(D,CLK: IN std_logic。 when 20=dout=39。 when 12=dout=39。 when 4=dout=39。 then if en=39。[10],高等教育出版社。(2) 雖然實(shí)現(xiàn)的設(shè)計(jì)要求的基本功能,但是所用方法較復(fù)雜,事實(shí)上還可能找到其他的建模方法。 HDB3編/譯碼器的硬件電路結(jié)構(gòu)以及硬件調(diào)試整體仿真完后,可以對(duì)頂層文件進(jìn)行分配管腳,當(dāng)然首先要選擇好芯片,本次設(shè)計(jì)采用的芯片是ACEX1KEP1K10TC1003,分配管腳要注意只能用其中標(biāo)注的I/O口,管腳分配好后,用串口線將電腦與FPGA實(shí)驗(yàn)箱連接起來(lái),開(kāi)電源,點(diǎn)擊TOOLS\Programmer進(jìn)入下載頁(yè)面,如果是第一次使用的話,點(diǎn)擊Hardware setup,然后在Hardware setting選項(xiàng)中點(diǎn)擊Addhardware,hardware type選擇‘byteblastermv orbyteblasterII’,‘port’選擇‘LPT1’,點(diǎn)擊OK完成硬件設(shè)置。+V碼檢測(cè)模型框如圖42所示。因此可從所接受的信碼中找到V碼,然后根據(jù)加取代節(jié)的原則,V碼與前面的三位碼必然是取代碼,需要全部復(fù)原為四連0。根據(jù)編碼規(guī)則,“B”符號(hào)的極性與前一非零符號(hào)相反,“V”極性符號(hào)與前一非零符號(hào)一致。39。39。+v39。插39。若把信號(hào)處理的順序變換一下:首先完成插“V”工作,接著執(zhí)行補(bǔ)“B”功能。它克服了AMI碼的長(zhǎng)連0傳現(xiàn)象。HDB3碼因具有無(wú)直流成分,低頻成分少和連0個(gè)數(shù)最多不超過(guò)三個(gè)等明顯的優(yōu)點(diǎn),對(duì)定時(shí)信號(hào)的恢復(fù)十分有利, CCITT已建議把HDB3碼作為PCM終端設(shè)備一次群到三次群的接口碼型。以上要求導(dǎo)致了HDB3碼的出現(xiàn)并獲廣泛應(yīng)用。HDB3碼 這種碼型在數(shù)字通信中用得很多,HDB3碼是AMI碼的改進(jìn)型,稱為三階高密度雙極性碼。這樣做需要大量的寄存器,同時(shí)電路結(jié)構(gòu)也變的復(fù)雜。在其他條件下,讓原代碼照常輸出。39。Codeoutb=codeoutvCodeoutb=codeoutvCodeoutb=codeoutvCodeoutb=39。Codeoutv=39。如下圖為實(shí)現(xiàn)極性變換功能的流程圖。圖36 編碼仿真圖第四章 HDB3譯碼器的設(shè)計(jì) HDB3譯碼器的設(shè)計(jì)思路根據(jù)編碼規(guī)則,破壞點(diǎn)V脈沖與前一個(gè)脈沖同極性。這是因?yàn)樵趦蓚€(gè)+B脈沖之間,存在B脈沖,說(shuō)明第二個(gè)+B脈沖不是+V碼,而只有在連續(xù)兩個(gè)+B脈沖之間無(wú)B脈沖,才能說(shuō)明這兩個(gè)+B脈沖在HDB3碼中,是真正同極性的于是就可以判定第二個(gè)+B脈沖實(shí)際上是+V碼,達(dá)到檢測(cè)+V碼的目的。本次設(shè)計(jì)采用的是頂層文件的方法,先將編碼和譯碼建成元器件,然后在頂層文件中進(jìn)行調(diào)用,在仿真中編碼的輸出時(shí)兩個(gè)單極性的輸出,把它作為譯碼的兩個(gè)單極性輸入,這樣就把編碼和譯碼相互關(guān)聯(lián)起來(lái)了,從而可以進(jìn)行仿真觀察結(jié)果。也可以采用3位2進(jìn)制碼表示,000表示0碼,010表示1,110表示+1,011表示V,111表示+V,001表示B,101表示+B。[9] +plusⅡ入門(mén)與提高,人民郵電出版社。039。039。139。039。use 。codeout:out std_logic_vector(1 downto 0))。signal s3:std_logic_vector(2 downto 0)。if(flag0=0)thencodeoutv=110。elsecodeoutv=011。s1(0)=codeoutv(1)。s2(4)=s2(3)。s0(4)=s0(3)。s1(4)=s1(3)。end if。139。end if。 and data1=39。reg1=0000 amp。 end process。end rtl。reg1=data1 amp。 and data1=39。architecture rtl of yima is signal