【正文】
~20V 的數(shù)字信號可控制峰-峰值至20V 的模擬信號??偨Y(jié)一下實際操作的設計過程,可得到如下設計流程圖:學習VHDL語言設計分析HDB3碼編/解碼器功能確定設計方案 仿真不通過應用VHDL進行編程對系統(tǒng)仿真測試、選擇合適芯片并定義管腳調(diào)試達到要求、完成設計系統(tǒng)功能的硬件測試 圖61 總體設計流程圖本次設計的HDB3碼編/解碼器雖然達到了預期的目的,但是,由于很多方面的影響,和設計時間的要求,在設計很多方面還是存在著不足之處,主要就是以下幾個方面:(1) 由于采用雙相碼表示“V”、“B”及0,程序下載到FPGA或CPLD中,其輸出結(jié)果并不是“+1”、“1”、“0”的多電平變化波形,而是單極性雙電平信號。也可以采用3位2進制碼表示,000表示0碼,010表示1,110表示+1,011表示V,111表示+V,001表示B,101表示+B。(3) 硬件實現(xiàn)的可能性不高。 這些方面都需要我繼續(xù)學習下去,在不斷的積累當中去想清楚、弄明白,豐富這些問題,當然,在豐富了自己的知識和經(jīng)驗后,問題應會迎刃而解。同時,也是通過自己這三個月來的不斷學習和努力,才明白:實際操作和設計,并不是像學習理論知識那么簡單,會理論不等于就會應用,很多都是經(jīng)驗的東西,需要在自己的努力設計中才能慢慢體會到,設計多了,才會經(jīng)驗中找到設計自如的感覺。 雖然說,整個系統(tǒng)還存在很多不足,但是,我也并不感到有太多的遺憾,因為面對自己這段時間的辛勤勞動的成果,心里更多的還是萬分喜悅!不足之處總是有的,這些就是自己今后需要努力的地方,只要不斷的朝著自己的目標的努力,很快就會有解決的那一天!參考文獻[1] 鄧勇、周擇、: 國防工業(yè)出版社,2004。[3] ,2005。[5] 韋崗、季飛、傅娟. 通信系統(tǒng)建模與仿真[M]. 北京:電子工業(yè)出版社,2007年。[7] 鄭存芳、隋韋韋、[OL].2009年。[9] +plusⅡ入門與提高,人民郵電出版社。[11],北京希望出版社。use 。use 。 dout:out std_logic)。architecture behave of xulie is signal count11:integer range 0 to 23。139。 elsif clk39。039。139。 else count11=0。 end if。 end process。139。039。039。039。039。139。039。039。039。039。139。139。039。039。039。039。139。139。039。039。039。039。139。039。039。 end process。D觸發(fā)器library ieee。use 。Q: OUT std_logic)。ARCHITECTURE behave OF D ISBEGINPROCESS(CLK)BEGINIF(CLK39。139。END IF。END behave。use 。clk: in std_logic。codeout:out std_logic_vector(1 downto 0))。architecture behave of xhdb3 issignal t0:integer:=0。signal flag1:integer range 1 downto 0:=0。signal flag3:integer range 1 downto 0:=0。signal codeoutv:std_logic_vector(2 downto 0)。signal codeoutb:std_logic_vector(2 downto 0)。signal clkb:std_logic。signal clkout:std_logic。signal s3:std_logic_vector(2 downto 0)。clk:in std_logic。end ponent。add_v:process(clk,clr)beginif clk39。139。139。t0=0。139。if(flag0=0)thencodeoutv=110。elsecodeoutv=010。end if。039。flag1=0。flag1=1。firstv=1。flag1=1。elsecodeoutv=011。flag0=0。end if。elset0=t0+1。end if。t0=t0。end if。end process add_v。s1(0)=codeoutv(1)。ds21:dff port map(s2(0),clk,s2(1))。ds01:dff port map(s0(0),clk,s0(1))。ds12:dff port map(s1(1),clk,s1(2))。ds23:dff port map(s2(2),clk,s2(3))。ds03:dff port map(s0(2),clk,s0(3))。add_b:process(clkb)beginif clkb39。139。s2(4)=s2(3)。s0(4)=s0(3)。s2(4)=s2(3)。s0(4)=s0(3)。139。039。139。elses2(4)=s2(3)。s0(4)=s0(3)。flag2=1。s1(4)=s1(3)。elses2(4)=39。s1(4)=39。s0(4)=39。flag3=0。flag2=0。s1(4)=s1(3)。end case。s1(4)amp。end if。outclk:clkout=clk after 5 ns。event and clkout=39。 thenif codeoutb=000thencodeout=00。elsecodeout=10。end if。end behave。use 。clk2: in std_logic。code_GL: out std_logic)。architecture behave of GuiLing issignal code_temp: std_logic_vector(1 downto 0)。beginGL:process(clk2)beginif clk239。139。139。elsecode_temp=00。end if。bing_chuan:process(clk2)beginif clk239。139。039。elsif qq=0 then qq=1。elsif qq=1 then qq=0。end if。end process bing_chuan。譯碼器library ieee。use 。 高位 data0 :in std_logic。 data_out :out std_logic)。architecture rtl of yima is signal reg0 :std_logic_vector(4 downto 0)。begin process(clock) begin if rising_edge(clock) then if data0=39。 and data1=39。 and reg0(4 downto 1)=0001 and reg1(4 downto 1)=0000 then reg0=00001。 elsif data0=39。 and data1=39。 and reg0(4 downto 1)=0000 and reg1(4 downto 1)=0001 then reg0=00001。 elsif data0=39。 and data1=39。 and reg0(4 downto 2)=000 and reg1(4 downto 2)=001 then reg0=0000 amp。reg1=0000 amp。 elsif data0=39。 and data1=39。 and reg0(4 downto 2)=001 and reg1(4 downto 2)=000 then reg0=0000 amp。reg1=0000 amp。 else reg0=data0 amp。reg1=data1 amp。 end if。 end process。139。139。139。039。 end if。end rt