【正文】
gic_vector(15 downto 0)。 勤務信號中間變量 signal full_frame_ser : std_logic_vector(31 downto 0) :=00000000000000000000000000000000。 總幀計數(shù)值:32位 01535 對應05FFHbeginsample ad7667 main : process(grst,reset,state1,fosc) variable t : integer range 0 to 6000000。 variable wrst : integer range 0 to 17。 begin if grst = 39。039。 or reset = 39。139。 then t := 0。 vst = 39。139。 wrst := 0。 frame_t = 0。 subframe_ser = 000000。 full_frame_ser = 00000000000000000000000000000000。 data = 0000000000000000。 byte = 39。139。 wrclk = 39。039。 wrclk_tmp =39。039。 elsif fosc39。event and fosc = 39。139。 then if state1 = 39。139。 then case wrst is when 0 = if t 5999999 then t := t + 1。 else t := 0。 byte = 39。139。 wrst := 1。 end if。 AD變換和通道切換 when 1 = 1clk byte = 39。139。 vst = 39。039。 wrst := 2。 when 2 = 1clk vst = 39。139。 wrst := 3。 when 3 = 1clk if frame_t = 23 then ID data = 0000000000 amp。 subframe_ser。 elsif frame_t = 47 then if subframe_ser = 14 then data = full_frame_ser(31 downto 16)。 SIDH elsif subframe_ser = 15 then data = full_frame_ser(15 downto 0)。 SIDL elsif subframe_ser = 30 then data = 1111110110110001。 FDB1 elsif subframe_ser = 31 then data = 1000010101000000。 8540 end if。 end if。 wrst := 4。 when 4 = 1clk if qfrst = 39。139。 then full_frame_ser = 00000000000000000000000000000000。 end if。 wrst := 5。 1clk when 5 = wrclk = 39。039。 wrclk_tmp = 39。039。 if frame_t = 47 then frame_t = 0。 if subframe_ser = 31 then subframe_ser = 000000。 full_frame_ser = full_frame_ser + 1。 else subframe_ser = subframe_ser + 1。 end if。 else frame_t = frame_t + 1。 end if。 wrst := 6。 when 6 = 24clk if t 23 then t := t + 1。 wrst := 6。 else t := 0。 wrst := 7。 end if。 when 7 = 1clk adhdata=ad。 wrst := 8。轉(zhuǎn)換數(shù)據(jù)和勤務信號輸出30clk when 8 = 1clk if frame_t = 24 or (frame_t = 0 and subframe_ser = 15) or (frame_t = 0 and subframe_ser = 16) or (frame_t = 0 and subframe_ser = 31) or (frame_t = 0 and subframe_ser = 0) then frame_data = data(15 downto 8)。 else frame_data = adhdata。 end if。 byte = 39。039。 wrst := 9。 when 9 = 1clk//wrclk=39。139。_18clk wrclk = 39。139。 wrclk_tmp = 39。139。 wrst := 10。 when 10 = 17clk if t 16 then t := t + 1。 wrst := 10。 else adldata=ad。 wrclk = 39。039。 wrclk_tmp = 39。039。 t := 0。 wrst := 11。 end if。 //wrclk=39。039。_18clk when 11 = 16clk if t 15 then t := t + 1。 wrst := 11。 else t := 0。 wrst := 12。 end if。 when 12 = 1clk if frame_t = 24 or (frame_t = 0 and subframe_ser = 15) or (frame_t = 0 and subframe_ser = 16) or (frame_t = 0 and subframe_ser = 31) or (frame_t = 0 and subframe_ser = 0) then frame_data = data(7 downto 0)。 else frame_data = adldata。 end if。 wrst := 13。 when 13 = 1clk wrclk = 39。139。 wrclk_tmp = 39。139。 wrst := 14。 when 14 = 13clk//wrclk=39。139。_18clk if t 12 then t := t + 1。 wrst := 14。 else t := 0。 wrst := 1。 end if。 when others = wrst := 0。 end case。 else wrclk =39。139。 end if。end if。end process main。附錄B 系統(tǒng)原理圖附錄C 系統(tǒng)PCB版圖參考文獻[1] 夏宇聞,Virology數(shù)字系統(tǒng)設計教程[M].北京航空航天大學出版社,2003.[2] 陳福集,[M],2008.[3] [M].第五版.[4] 肖忠祥,六路電壓信號原理[M].西安:西北工業(yè)大學出版社,2001.[5] 周振安,范良龍,六路電壓信號系統(tǒng)的設計與實踐[M].北京:地震出版社,2005.[6] 宋光德,張慧,[J]電子測量與儀器學報,2004(03)4750.[7] 楊志方,王澤成,涂坦,談宏華,[J].武漢化工學院學報.[8] 曹偉軍,[J].單片機及嵌入式系統(tǒng)應用,2008(01)24.[9] [J].現(xiàn)代電子技術報,2010年第8期.[10] 李鵬,馬游春,[J]..[11] 林長青,[J].中科院上海技術物理研究所,上海200083 .[12] 黃容蘭,[J].:1004—9037(2009).[13] 江勇,[J].:1003—0107(2009)030020—03.[14] 于超,陳光武,[J].國家綠色膜技術與裝備工程技術研究中心,.[15] Intel Reference Manual, 2005[16] Spartan3E Complete datasheet, 2006[17] Wayne Wolf. FPGA Based System Design. Published by arrangement with the original publisher, Person Education, Inc.[18] [J]電子測量與儀器學報,2004(03)4750.[19]董代浩,郭懷理,學出版社.