亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? a2d.vhd

?? 將AD轉換得到的八位數據存入RAM
?? VHD
字號:
-- tlc0820ac ---a/d轉換
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all; 
use ieee.std_logic_unsigned.all;
entity a2d is
port(clk :in std_logic;--輸入時鐘信號50MHz
	 sw0 : in std_logic;  --復位
	
--	 mode :out std_logic;  --0820模式,1為寫0為讀,懸空相當于低
	 adcs : out std_logic;
	 rd : out std_logic;
	 int : in std_logic; 
	 datain : in std_logic_vector(7 downto 0);
	 ld: out std_logic_vector(7 downto 0);
	--ram
	ramcs: out std_logic;
	ramsck: out std_logic;
	ramsi: out std_logic;
	ramso: in std_logic;
	--da
	dacs:out std_logic;
	dasck:out std_logic;
	dadin:out std_logic
	);
end a2d;
architecture aa of a2d is
signal t_rd, t_adcs : std_logic;
signal count1: integer range 0 to 4999; --控制AD,total采樣間隔為50+2600=3100ns
signal count2: integer range 0 to 499; --控制回放,每1us回放一次,total采樣間隔為1微妙
signal t_int: integer range 0 to 15;		--350ns 肯定夠int變為高了
signal t_addata :std_logic_vector(7 downto 0);
signal time: integer range 0 to 1002;
signal t_ramcs,t_sck,t_ramsi:std_logic;
signal t_ramso:std_logic_vector(7 downto 0);
signal count3:integer range 0 to 3;
signal ram_part_addr: integer range 0 to 15;
signal t_ramaddr:std_logic_vector(15 downto 0);
signal t_dacs,t_dasck,t_dadin:std_logic;

begin
process(clk,int,sw0)
variable t_ramdata:std_logic_vector(7 downto 0):="00000000";
variable t_dadata:std_logic_vector(15 downto 0):="0000000000000000";
begin

--異步復位
if sw0='0' then
	count1 <= 0;
	time<=0;
	t_adcs <= '1';
	t_rd <= '1';
	t_addata <= "00000000";
	t_ramcs<='1';
	t_ramaddr<="0000000000000000";--initiate address as "0000000000000000"

--計數器
elsif(clk'event and clk='1') then
	
		if time<1001 then	--%6----用于AD和寫RAM,其中0用于WREN命令的寫入
			if count1=4999 then --100ns
				count1<=0;
				time<=time+1;
				t_ramaddr<=t_ramaddr+1; --最終的1000各點存儲在0~999的ram存里面
			else 
				count1<=count1+1;
			end if;	
		elsif count2=499 then	--該值應該根據DA的速度而定,最終定為200*20=4000ns=0.25MHZ
			count2<=0;
			
			if t_ramaddr="000001111100111" then --%000001111100111--
				t_ramaddr<="0000000000000000";
			else
				t_ramaddr<=t_ramaddr+1;
			end if;
		else
			count2<=count2+1;			
		end if;
		
	if time<1000 then	--%5--  --AD and write data into ram 
----------------AD和存儲時序控制start---------------
		if count1 < 3 then
			t_adcs<='1';
			t_rd<='1';
		elsif count1 < 23 then
			t_adcs<='0';
			t_rd<='1';
		elsif count1<155 then
			t_adcs<='0';
			t_rd<='0';
			if int='0' then
				t_int<=t_int+1;
			else
				t_int<=0;
			end if;
			if t_int = 2 then
				t_addata <= datain;
			end if;
		else 	
			t_adcs<='1';
			t_rd<='1';
		end if;
--------------AD和存儲時序控制end-----------------
-------------存儲操縱代碼start-----------------
---------------write WREN pro-code:start---------------------
		if count1<155 then --40ns后讓sck開始驅動
			t_ramcs<='1';
		elsif count1<157+4 then
			t_ramcs<='0';
			count3<=3;
			t_sck<='0';
			t_ramdata:="00000110";
			ram_part_addr<=7;
			t_ramsi<=t_ramdata(7);
		elsif count1< 189+4 then --285=286-1,minus 1 to ensure write 1 byte a time
			t_ramcs<='0';		--286=156+130,130=(40+8*80)/20=34
			if count3=3 then
				count3<=0;
				t_sck<=not t_sck;
			elsif count3=0 then
				count3<=count3+1;	
				ram_part_addr<=ram_part_addr-1;
			elsif count3=1 then	--提前一個時鐘將數據寫到si
				t_sck<=not t_sck;
				t_ramsi<=t_ramdata(ram_part_addr);
				count3<=count3+1;
			else
				count3<=count3+1;
			end if;
		elsif count1<191+8 then
			t_ramcs<='1';
---------------write WREN pro-code:end---------------------
----------------寫數據:start-------------------------------
		elsif count1<193+8 then --40ns后讓sck開始驅動
			t_ramcs<='0';
			count3<=3;
			t_sck<='0';
			t_ramdata:="00000010";
			ram_part_addr<=7;
			t_ramsi<=t_ramdata(7);
		elsif count1< 321+8 then --285=157+128,minus 1 to ensure write 1 byte a time
			t_ramcs<='0';		--286=156+130,130=(40+32*80)/20
			if count1< 225+8-2 then--189=157+32 --減2由于讀信號在下降沿
				t_ramdata:="00000010";			
			elsif count1<257+8-2 then	--221=189+32
				t_ramdata:=t_ramaddr(15 downto 8);
			elsif count1<289+8-2 then
				t_ramdata:=t_ramaddr(7 downto 0);
			else 
				t_ramdata:=t_addata;
			end if;
			if count3=3 then
				count3<=0;
				t_sck<=not t_sck;
			elsif count3=0 then
				count3<=count3+1;
				if ram_part_addr=0 then		--ram_part_addr perhaps should be variable?
					ram_part_addr<=7;
				else
					ram_part_addr<=ram_part_addr-1;
				end if;
			elsif count3=1 then	--提前一個時鐘將數據寫到si
				count3<=count3+1;	
				t_sck<=not t_sck;
				t_ramsi<=t_ramdata(ram_part_addr);
			else
				count3<=count3+1;			
			end if;
		else
			t_ramcs<='1';
		end if;	
----------------寫數據:end-------------------------------
-------------存儲操縱代碼到此-----------------------------
	elsif time=1000 then --%5--
--------------寫入WRDI pro-code:start---------
		t_ramaddr<="0000000000000000";   --為ram讀做準備,存在0-999處
		if count1<2 then --40ns后讓sck開始驅動
			t_ramcs<='0';
			count3<=3;
			t_sck<='0';
			t_ramdata:="00000100";
			ram_part_addr<=7;
			t_ramsi<=t_ramdata(7);
		elsif count1< 34 then --285=286-1,minus 1 to ensure write 1 byte a time
			t_ramcs<='0';		--286=156+130,130=(40+8*80)/20=34
			t_dacs<='1';
			if count3=3 then
				count3<=0;
				t_sck<=not t_sck;
			elsif count3=0 then
				ram_part_addr<=ram_part_addr-1;
				count3<=count3+1;
			elsif count3=1 then	--提前一個時鐘將數據寫到si
				t_ramsi<=t_ramdata(ram_part_addr);
				count3<=count3+1;	
				t_sck<=not t_sck;
			else
				count3<=count3+1;
			end if;
		else
			t_ramcs<='1';
		end if;		
--------------寫入WRDI pro-code:end---------
	elsif(time=1001)then
		if count2<2 then
			t_dacs<='1';
			t_ramcs<='1';
		elsif count2<4 then
			t_dacs<='0';
			count3<=3;
			t_dasck<='1';
			t_dadata:="1101000000000010";
			ram_part_addr<=15;	
			t_dadin<=t_dadata(15);
		elsif count2< 68 then --196=132+64,
			t_dacs<='0';		--286=156+130,130=(40+32*80)/20
			t_ramcs<='1';
			if count3=3 then
				count3<=0;
				t_dasck<=not t_dasck;
			elsif count3=0 then
				count3<=count3+1;
				if ram_part_addr=0 then		--ram_part_addr perhaps should be variable?
					ram_part_addr<=15;
				else
					ram_part_addr<=ram_part_addr-1;
				end if;	
			elsif count3=1 then	--提前一個時鐘將數據寫到si
				t_dadin<=t_dadata(ram_part_addr);
				count3<=count3+1;	
				t_dasck<=not t_dasck;
			else
				count3<=count3+1;	
			end if;
		elsif count2=499 then
			time<=time+1;
		else
			t_dacs<='1';
			t_ramcs<='1';
		end if;
			
			
			
	
	
	
	else --time=1002,read RAM and D/A to display
----------------回放(即DA)時序控制------------------------
-----------1. read ram:start-----------------------------
		if count2<2 then --40ns后讓sck開始驅動
			t_ramcs<='0';
			count3<=3;
			t_sck<='0';
			t_ramdata:="00000011"; --read mode
			ram_part_addr<=7;
			t_ramsi<=t_ramdata(7);
		elsif count2< 130 then 
			t_ramcs<='0';		--286=156+130,130=(40+32*80)/20
			
			if count2< 34-2 then--34=2+32
				t_ramdata:="00000011";			
			elsif count2<66-2 then	--221=34+32
				t_ramdata:=t_ramaddr(15 downto 8);
			elsif count2<98-2 then
				t_ramdata:=t_ramaddr(7 downto 0);
			else 
				t_ramdata:="ZZZZZZZZ";
				if count3=3 then
					t_ramso(ram_part_addr)<=ramso;
				end if;
			end if;
			
			if count3=3 then
				count3<=0;
				t_sck<=not t_sck;
			elsif count3=0 then
				count3<=count3+1;
				if ram_part_addr=0 then		--ram_part_addr perhaps should be variable?
					ram_part_addr<=7;
				else
					ram_part_addr<=ram_part_addr-1;
				end if;
			elsif count3=1 then	--提前一個時鐘將數據寫到si
				t_ramsi<=t_ramdata(ram_part_addr);
				count3<=count3+1;	
				t_sck<=not t_sck;
			else	
				count3<=count3+1;					
			end if;
		else
			t_ramcs<='1';
		end if;	
-----------1. read ram:end-----------------------------
-----------2. DA recovery:start------------------------
		if count2<130+2 then --follow 1
			t_dacs<='1';
			t_dasck<='1';
		elsif count2<132+2 then	--40ns后讓dasck開始驅動	
			t_dacs<='0';
			count3<=3;
			t_dasck<='1';
			t_dadata:="1000"&t_ramso&"0000";
			ram_part_addr<=15;	--借用ram的
			t_ramsi<=t_dadata(15);
		elsif count2< 196+2 then --196=132+64,
			t_dacs<='0';		--286=156+130,130=(40+32*80)/20
			if count3=3 then
				count3<=0;
				t_dasck<=not t_dasck;
			elsif count3=0 then
				count3<=count3+1;
				if ram_part_addr=0 then		--ram_part_addr perhaps should be variable?
					ram_part_addr<=15;
				else
					ram_part_addr<=ram_part_addr-1;
				end if;	
			elsif count3=1 then	--提前一個時鐘將數據寫到si
				t_dadin<=t_dadata(ram_part_addr);
				count3<=count3+1;	
				t_dasck<=not t_dasck;
			else
				count3<=count3+1;	
			end if;
		else
			t_dacs<='1';
		end if;	

-----------2. DA recovery:end------------------------

end if; --time>1000		
end if; --clk
end process;
adcs<=t_adcs;
rd<=t_rd;
ramcs<=t_ramcs;
ramsck<=t_sck;
ramsi<=t_ramsi;
dacs<=t_dacs;
dasck<=t_dasck;
dadin<=t_dadin;
--dataout<=t_addata;
--dclk <= count1;
ld <= t_addata;
end aa;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧洲av在线精品| 日韩av电影天堂| 精品国产乱码久久久久久蜜臀| 91一区二区三区在线观看| 国产精品亚洲一区二区三区妖精| 日本一区中文字幕| 精品综合免费视频观看| 久久99久久精品欧美| 国产一区啦啦啦在线观看| 国产一区三区三区| 99九九99九九九视频精品| 成人av网站在线观看免费| 国产麻豆视频精品| 丁香婷婷深情五月亚洲| 91浏览器入口在线观看| 欧美女孩性生活视频| 日韩女优av电影在线观看| 精品成人私密视频| 欧美成人国产一区二区| 国产女人18水真多18精品一级做| 中文字幕国产一区| 亚洲三级电影全部在线观看高清| 亚洲人成精品久久久久久| 婷婷综合久久一区二区三区| 国产中文一区二区三区| 91在线观看美女| 91麻豆精品国产自产在线观看一区| 日韩视频免费观看高清完整版 | 麻豆成人久久精品二区三区小说| 久久国产精品色| 国产精品一区二区免费不卡| 99九九99九九九视频精品| 在线视频欧美精品| 欧美tickling网站挠脚心| 中文字幕中文乱码欧美一区二区| 亚洲精品日韩综合观看成人91| 日韩在线a电影| av综合在线播放| 日韩精品一区二区三区中文不卡| 国产精品成人网| 欧美bbbbb| 91在线码无精品| 久久蜜桃一区二区| 亚洲va韩国va欧美va精品| 成人永久看片免费视频天堂| 欧美嫩在线观看| 一区二区三区四区在线| 国产精品18久久久久久vr| 欧美性大战久久| 亚洲视频中文字幕| 福利一区二区在线观看| 欧美成人免费网站| 午夜精品aaa| 色视频一区二区| 亚洲日本丝袜连裤袜办公室| 国产精品综合二区| 精品久久一区二区| 蜜桃一区二区三区在线| 欧美久久久久免费| 一区二区三区蜜桃网| 成人黄色综合网站| 中文字幕欧美激情一区| 国产黄色精品视频| 26uuu色噜噜精品一区| 日韩国产精品久久| 91麻豆精品国产91久久久资源速度| 亚洲精品va在线观看| 99久久精品免费精品国产| 国产精品五月天| 粉嫩av一区二区三区在线播放| 精品国产乱码久久久久久图片 | 色偷偷久久人人79超碰人人澡| 国产日韩欧美综合在线| 国产成人精品影院| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 亚洲午夜日本在线观看| a4yy欧美一区二区三区| 亚洲色图在线播放| 欧美色网一区二区| 五月婷婷另类国产| 日韩精品自拍偷拍| 国产一区二区免费在线| 亚洲国产高清aⅴ视频| 成人免费视频一区二区| 国产精品初高中害羞小美女文| 91伊人久久大香线蕉| 亚洲五码中文字幕| 欧美一区二区三区四区久久| 久久成人18免费观看| 欧美激情一二三区| 日本道色综合久久| 日韩av成人高清| 久久久久久99精品| 91在线视频播放地址| 亚洲国产成人porn| 欧美成人性福生活免费看| 国产91精品久久久久久久网曝门 | 中文字幕av一区二区三区免费看| 波多野结衣中文字幕一区二区三区| 亚洲日本在线a| 精品少妇一区二区三区在线播放 | 亚洲视频1区2区| 在线不卡中文字幕| 国产一区二区视频在线播放| 国产精品三级电影| 91精选在线观看| 国产91高潮流白浆在线麻豆| 国产精品美日韩| 欧美一区二区三区成人| 国产iv一区二区三区| 亚洲成人动漫在线免费观看| 久久综合网色—综合色88| 色欧美乱欧美15图片| 精品无人码麻豆乱码1区2区| 亚洲女同一区二区| 久久精品欧美一区二区三区不卡| 在线看不卡av| 国产成人aaa| 日韩av一二三| 亚洲一区二区综合| 国产精品免费av| 欧美xxx久久| 欧美精品丝袜中出| 99re免费视频精品全部| 久久不见久久见中文字幕免费| 亚洲免费电影在线| 欧美激情一区二区三区| 精品国产一二三| 91精品国产综合久久小美女| 91高清在线观看| av电影一区二区| 国产传媒久久文化传媒| 麻豆精品国产传媒mv男同| 亚洲成人一区二区| 一区二区三区四区不卡在线| 国产欧美一区二区在线观看| 制服丝袜中文字幕一区| 欧美三级欧美一级| 欧美性受极品xxxx喷水| 一本到高清视频免费精品| 99久久99久久精品免费看蜜桃| 成人一区在线观看| 久久99国产乱子伦精品免费| 日韩中文字幕91| 日韩电影在线观看一区| 亚洲成人在线网站| 日韩黄色免费电影| 日韩精品电影在线观看| 日本aⅴ亚洲精品中文乱码| 天天做天天摸天天爽国产一区| 一区二区三区四区视频精品免费 | 日韩欧美一卡二卡| 在线综合视频播放| 欧美一区二区三区在| 欧美成人福利视频| 久久精品欧美一区二区三区不卡| xfplay精品久久| 中文在线资源观看网站视频免费不卡| 国产午夜亚洲精品不卡| 国产欧美日韩激情| 综合自拍亚洲综合图不卡区| 亚洲另类色综合网站| 亚洲一级片在线观看| 亚洲成av人在线观看| 麻豆久久久久久| 国产99一区视频免费| 91污片在线观看| 欧美日韩五月天| 欧美电视剧在线观看完整版| 亚洲精品一区二区三区精华液 | 日本成人在线电影网| 日韩av高清在线观看| 国产麻豆精品在线观看| 99久久综合99久久综合网站| 91污在线观看| 日韩天堂在线观看| 中文字幕精品综合| 亚洲一区二区精品视频| 麻豆成人综合网| 99国产精品国产精品毛片| 欧美日韩国产免费| 久久久久久99久久久精品网站| 国产精品进线69影院| 日韩精品1区2区3区| 国产乱码精品一品二品| 在线观看亚洲一区| 久久精品水蜜桃av综合天堂| 亚洲精品菠萝久久久久久久| 麻豆精品久久精品色综合| 91丨九色丨蝌蚪富婆spa| 91精品国产一区二区| 亚洲国产精品激情在线观看| 日日夜夜免费精品| 99麻豆久久久国产精品免费 | 在线免费观看日韩欧美| 日韩女优视频免费观看| 一区二区三区国产豹纹内裤在线| 美女视频一区在线观看| 在线日韩一区二区| 中文一区二区在线观看|