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

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

?? dalia.vhd

?? 用VHDL實現(xiàn)DALI數(shù)據(jù)傳輸協(xié)議,速度快,穩(wěn)定,方便
?? VHD
?? 第 1 頁 / 共 3 頁
字號:
library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity dali is   port( IRQ,rst,clk_main,data_in,lamp_failure : in  std_logic;             tch0,tch1 : out std_logic_vector(15 downto 0);				 data_out: out std_logic        );end dali;architecture behavior of dali is   signal limit_error,rec_active,rec_active1,startbit_error,stopbit_error,databit_error,rst_real:  std_logic :='0';--not    signal rec_position  : integer range 0 to 15 ;   signal rec_bit : integer range 0 to 18 ;   signal address,command,level,state_no,fade_time : std_logic_vector(7 downto 0) ;	signal tsco:std_logic;	signal clk_dali,clk_20:std_logic;	signal short_address:std_logic_vector(7 downto 0);	signal input_level2,input_level3,input_level4,input_level:std_logic_vector(7 downto 0);   signal min_level:std_logic_vector(7 downto 0);   signal max_level:std_logic_vector(7 downto 0);	signal power_failure,withdraw:std_logic;   signal fade_rate:std_logic_vector(7 downto 0);   signal fade_start_level:std_logic_vector(7 downto 0);   signal fade_stop_level:std_logic_vector(7 downto 0);	signal new_level:std_logic_vector(7 downto 0);   signal fade_total:std_logic_vector(12 downto 0);   signal state_time:std_logic_vector(12 downto 0);	signal random_addr_out1,random_addr_out2,random_addr_out3,address_time :std_logic_vector(7 downto 0);	signal system_failure_level,power_on_level:std_logic_vector(7 downto 0);	signal answer,dtr,selection:std_logic_vector(7 downto 0);	signal search_address_h,search_address_m,search_address_l:std_logic_vector(7 downto 0);	signal random_address_h,random_address_m,random_address_l:std_logic_vector(7 downto 0);	signal send_position,dataout1,dataout2,datain11,datain12,datain13,datain21,datain22,datain23 : std_logic_vector(7 downto 0);	signal low_counter : std_logic_vector(15 downto 0);	signal send_value : std_logic;	signal physical_min_level: std_logic_vector(7 downto 0);--physical_min_level not initialized!!!!   signal fg:std_logic:='0';	signal addr11,addr12,addr13,addr21,addr22,addr23 :integer range 0 to 1;	signal dataout11,dataout12,dataout13,dataout21,dataout22,dataout23 :std_logic_vector(7 downto 0);		component lamp_setlevel is      port (new_level: in std_logic_vector(7 downto 0);--equal to the light control command             min_level: in std_logic_vector(7 downto 0);            max_level: in std_logic_vector(7 downto 0);             level: out std_logic_vector(7 downto 0);             limit_error: out std_logic;-- if exceed the limit, limit_error will be 1             tsco: out std_logic; --check if the lamp is working at full power.1 yes 0 no              tch0: out std_logic_vector(15 downto 0);             tch1: out std_logic_vector(15 downto 0)            );  end component;   component ram is     port( clk_dali: in std_logic;		       addr : in  integer range 0 to 1;             datain : in std_logic_vector(7 downto 0);				 dataout : out std_logic_vector(7 downto 0)            );   end component; 			  component ram1 is     port( clk_dali: in std_logic;             datain : in std_logic_vector(7 downto 0);				 dataout : out std_logic_vector(7 downto 0)            );   end component; 
  beginp0: process(rst,clk_dali)    variable i:integer:=0;    	 begin	    if(rst='1')  then			 while(i<=9) loop				 if(rising_edge(clk_20))then				    i:=i+1;				 end if;			 end loop;			 if(rst='1')  then				 rst_real<='1';				 else				 rst_real<='0';			 end if;       end if;    end process p0;
	p1: process(IRQ)	 begin	    if(falling_edge(IRQ))then			 rec_active1<='1';		 end if;	 end process p1;
	p2: process(rst_real,clk_dali,data_in)--ini	 variable rec_value,temp_value : std_logic;    begin       if(rst_real='1') then          rec_active<='1';          rec_bit<=0;          rec_position<=0;          address<="00000000";          command<="00000000";          datain11<="00000000";		    addr11<=0;          stopbit_error<='0';          startbit_error<='0';          databit_error<='0';			 datain11<="00000000";			 system_failure_level<="11111110";												 						 --not          elsif (rec_active='1' and rec_active1='1') then             if(rising_edge(clk_dali)) then                temp_value:=data_in;                rec_position<=rec_position+1;                if(temp_value/=rec_value) then                   CASE  rec_bit IS                       when 0=> 							    rec_bit<=rec_bit+1;                         rec_position <=0;								 datain11<="00000000";                      when 17=> 							    if(rec_position>6) then                            rec_active<='0';                            rec_bit<=0;                         end if;							    datain11<="00000000";                      when 18=> 							    rec_active<='0';                         rec_bit<=0;					          datain11<="00000000";                      when others=> 							    if(rec_position>6) then                             if(temp_value='1') then                               if(rec_bit<=8) then                                  address(8-rec_bit)<=temp_value;                                  else                                  command(16-rec_bit)<=temp_value;                               end if;                            end if;                            rec_bit<=rec_bit+1;                            rec_position <=0;                         end if;					          datain11<="00000000";                   end CASE ;                   rec_value := temp_value;                       else                   CASE  rec_bit IS                       when 0=> 								 if(rec_position=8) then                            rec_active<='0';                            rec_bit<=0;                         end if;							    datain11<="00000000";                      when 17=> 								 if(rec_position=8) then                            if(temp_value='0') then                               rec_active<='0';                               rec_bit<=0;                            end if;                         end if;							    datain11<="00000000";                      when 18=> 								 if(rec_position=8) then                            rec_active<='0';                            datain11<="00000001";							       addr11<=0;								    rec_bit<=0;								    rec_position<=0;                         end if;                      when others=> 								 if(rec_position=10) then                            rec_active<='0';                            rec_bit<=0;                         end if;							    datain11<="00000000";                   end CASE ;                end if;             end if;       end if;    end process p2;
p3: process(address,command,rst_real)    variable a,b,c,fadetime : std_logic_vector(7 downto 0);    variable m,n : std_logic_vector(23 downto 0);	 variable fade_rate_temp:std_logic_vector(7 downto 0);    variable divide_temp,ddtemp,d1,d2,d3,d4:std_logic_vector(11 downto 0);    variable fade_total_temp:std_logic_vector(3 downto 0);	 variable fade_total_temp1,fade_total_temp2:std_logic_vector(12 downto 0);    variable nn:integer range 0 to 16; 	 variable fg_temp:std_logic:='0';
    begin	 if(rst_real='1') then		 max_level<="11111110";		 min_level<=physical_min_level;		 fade_rate<="00000111";		 fade_time<="00000000";		 random_address_h<="11111111";	    random_address_m<="11111111";		 random_address_l<="11111111";	 end if;    if(dataout1="00000001") then		 datain12<="00000000";	    addr12<=0;       a:=address and "11100001";       if((address(7)='0')or(a="10100001")or(a="10110001")) then          b:=address and "01111110";          c:='0'& b(7 downto 1) ;          if((address(7)='0') and (c=short_address)) then             if(address(0)='0') then -- for lamp_setlevel --else                if(command/="11111111") then                   if(fade_time="00000000")then                      input_level2<=command;                         --component used  ATTENTION!!!!!!                      datain21<="00000000";							 addr21<=1;                      else                      fade_start_level<=level;							 fade_stop_level<=command;							 nn:=conv_integer(fade_time-"00000001");							 case nn is								 when 0=> fade_total_temp1:="0000000100011" ; 								 when 1=> fade_total_temp1:="0000000110010";								 when 2=> fade_total_temp1:="0000001000111";								 when 3=> fade_total_temp1:="0000001100100";								 when 4=> fade_total_temp1:="0000010001101";								 when 5=> fade_total_temp1:="0000011001000";								 when 6=> fade_total_temp1:="0000100011011";								 when 7=> fade_total_temp1:="0000110010000";								 when 8=> fade_total_temp1:="0001000110110";								 when 9=> fade_total_temp1:="0001100100000";								 when 10=>fade_total_temp1:="0010001101011";								 when 11=>fade_total_temp1:="0011001000000";								 when 12=>fade_total_temp1:="0100011010111";								 when 13=>fade_total_temp1:="0110010000000";								 when 14=>fade_total_temp1:="1000110101110";								 when others=>null;							 end case;							 state_time<=fade_total_temp1;							 fg_temp:=not fg_temp;							 fade_total<=fade_total_temp1;							 datain21<="00000000";							 addr21<=1;					    end if;					 end if;                else                     --for common command                nn:=conv_integer(fade_rate);--get the answer of the fade rate by the case.
					 case nn is					    when 0 =>fade_rate_temp:="01001000";					    when 1 =>fade_rate_temp:="00110011";					    when 2 =>fade_rate_temp:="00100100";					    when 3 =>fade_rate_temp:="00011001";					    when 4 =>fade_rate_temp:="00010010";					    when 5 =>fade_rate_temp:="00001101";					    when 6 =>fade_rate_temp:="00001001";				       when 7 =>fade_rate_temp:="00000110";					    when 8 =>fade_rate_temp:="00000100";					    when 9 =>fade_rate_temp:="00000011";					    when 10 to 11 =>fade_rate_temp:="00000010";					    when 12 to 14 =>fade_rate_temp:="00000001";					    when others =>null;					 end case;
		          case command is                                                                    --OFF				       when "00000000" => 				          power_failure<='0';                      input_level2<="00000000";                      datain21<="00000000";							 addr21<=1;				       when "00000001"=>            			 if(level/="00000000" and level/=max_level) then                         --up                         fade_start_level<=level;                         if(fade_rate_temp>(max_level-level)) then                            fade_stop_level<=max_level;                            divide_temp:="00001010"*(max_level-level);--12 bit								    ddtemp:=divide_temp-'0'&fade_rate_temp&"000";								    if(ddtemp>"000000000000") then								       fade_total_temp(3):='1';								       d1:=ddtemp;								       else								       fade_total_temp(3):='0';								       d1:=divide_temp;								    end if;								    ddtemp:=d1-"00"&fade_rate_temp&"00";								    if(ddtemp>"000000000000") then								       fade_total_temp(2):='1';								       d2:=ddtemp;								       else								       fade_total_temp(2):='0';								       d2:=d1;								    end if;								    ddtemp:=d2-"000"&fade_rate_temp&'0';								    if(ddtemp>"000000000000") then								       fade_total_temp(1):='1';								       d3:=ddtemp;								       else								       fade_total_temp(1):='0';								       d3:=d2;								    end if;								    ddtemp:=d3-"0000"&fade_rate_temp;								    if(ddtemp>"000000000000") then								       fade_total_temp(0):='1';								       d4:=ddtemp;								       else								       fade_total_temp(0):='0';								       d4:=d3;								    end if;								    fade_total_temp2:="000000000"&fade_total_temp;	                            else                             fade_stop_level<=level+fade_rate_temp;                            fade_total_temp2:="0000000001010";                         end if;                         datain21<="00000010";						       addr21<=1;                         state_time<=fade_total_temp2; 						       fg_temp:=not fg_temp;						       fade_total<=fade_total_temp2;                      end if;
				       when "00000010"=> 				          if(level/="00000000" and level/=min_level) then                          --down                         fade_start_level<=level;                         if(fade_rate_temp>(level-min_level)) then                            fade_stop_level<=min_level;                            divide_temp:="00001010"*(level-min_level);								    ddtemp:=divide_temp-'0'&fade_rate_temp&"000";								    if(ddtemp>"000000000000") then								       fade_total_temp(3):='1';								       d1:=ddtemp;								       else								       fade_total_temp(3):='0';								       d1:=divide_temp;								    end if;								    ddtemp:=d1-"00"&fade_rate_temp&"00";								    if(ddtemp>"000000000000") then								       fade_total_temp(2):='1';								       d2:=ddtemp;								       else								       fade_total_temp(2):='0';								       d2:=d1;								    end if;								    ddtemp:=d2-"000"&fade_rate_temp&'0';								    if(ddtemp>"000000000000") then								       fade_total_temp(1):='1';								       d3:=ddtemp;								       else								       fade_total_temp(1):='0';								       d3:=d2;								    end if;								    ddtemp:=d3-"0000"&fade_rate_temp;								    if(ddtemp>"000000000000") then								       fade_total_temp(0):='1';								       d4:=ddtemp;								       else								       fade_total_temp(0):='0';								       d4:=d3;								    end if;                            fade_total_temp2:="000000000"&fade_total_temp; 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成a人无v码亚洲福利| 国产精品自拍三区| 亚洲国产美国国产综合一区二区| 欧美日韩精品高清| 欧美三级视频在线播放| 精品视频123区在线观看| 91精品国产色综合久久ai换脸 | 亚洲国产视频网站| 日韩精品一级中文字幕精品视频免费观看| 国产精品久久久久久妇女6080| 亚洲国产精品精华液ab| 亚洲精品中文在线观看| 午夜免费久久看| 精品一区二区三区视频在线观看 | 欧美亚洲动漫制服丝袜| 精品蜜桃在线看| 国产精品久久久久久久久搜平片 | 狠狠色丁香婷综合久久| 福利视频网站一区二区三区| 777午夜精品免费视频| 26uuu欧美| 天堂va蜜桃一区二区三区漫画版 | 欧美挠脚心视频网站| 精品国产成人系列| 午夜精品成人在线视频| 不卡的电视剧免费网站有什么| 欧美亚日韩国产aⅴ精品中极品| 日韩一区二区中文字幕| 一区2区3区在线看| 一本大道久久精品懂色aⅴ| 久久午夜电影网| 免费成人你懂的| 精品欧美一区二区久久| 日本中文一区二区三区| 欧美亚洲精品一区| 亚洲精品老司机| 一本久久a久久精品亚洲| 久久精品国产99| 亚洲精品国产a久久久久久 | 337p亚洲精品色噜噜狠狠| 自拍偷拍亚洲综合| 一本大道av伊人久久综合| 亚洲欧美激情视频在线观看一区二区三区| 精品综合免费视频观看| 久久蜜桃一区二区| 99久久伊人久久99| 亚洲精品伦理在线| 欧美大片在线观看| 成人黄色电影在线| 亚洲宅男天堂在线观看无病毒| 91国产丝袜在线播放| 日本麻豆一区二区三区视频| 日韩欧美一二三四区| 成人av网站免费观看| 亚洲五月六月丁香激情| 日韩欧美黄色影院| 91热门视频在线观看| 麻豆精品视频在线观看| 亚洲欧洲日韩一区二区三区| 日韩三级av在线播放| 99久精品国产| 国产成人自拍高清视频在线免费播放| 亚洲精品一卡二卡| 日本一区二区三区在线不卡| 欧美麻豆精品久久久久久| 成人做爰69片免费看网站| 日本不卡的三区四区五区| 最新日韩av在线| 国产精品美日韩| 久久久久99精品国产片| 日韩你懂的在线观看| 欧美日韩国产大片| 欧美色倩网站大全免费| 色综合久久中文综合久久97| 国产91丝袜在线播放| 国产精品亚洲午夜一区二区三区| 日本aⅴ精品一区二区三区| 亚洲伦理在线免费看| 一区二区三区免费在线观看| 中文字幕视频一区二区三区久| 久久精品视频一区二区三区| 久久久久久久精| 欧美韩国日本综合| 中文字幕av免费专区久久| 国产视频一区二区三区在线观看 | 欧美成人精品1314www| 精品91自产拍在线观看一区| 欧美r级电影在线观看| 久久精品亚洲精品国产欧美| 欧美国产国产综合| 亚洲国产sm捆绑调教视频 | 日日骚欧美日韩| 国产精品资源站在线| 欧美吞精做爰啪啪高潮| 日韩视频永久免费| 国产精品久久久久毛片软件| 91美女在线观看| 在线观看一区二区视频| 欧美国产精品久久| 国产欧美精品一区| 精品处破学生在线二十三| 日韩毛片在线免费观看| 美女一区二区在线观看| 国产精品中文字幕日韩精品| 成人网页在线观看| 另类小说综合欧美亚洲| 国产精品88av| 久久久久久夜精品精品免费| 亚洲一区二区美女| 色视频欧美一区二区三区| 日本一区二区三区视频视频| 日韩激情在线观看| 欧美性淫爽ww久久久久无| 1024亚洲合集| 91网站最新地址| 日韩美女啊v在线免费观看| 丰满白嫩尤物一区二区| 99精品偷自拍| 亚洲丝袜美腿综合| 91国偷自产一区二区三区观看| 精品国产乱码久久久久久图片| 天天综合网天天综合色| 欧美日韩国产成人在线免费| 日韩av在线免费观看不卡| 欧美日韩日日夜夜| 婷婷久久综合九色综合伊人色| 欧美性猛片xxxx免费看久爱| 午夜亚洲福利老司机| 久久欧美一区二区| 色呦呦日韩精品| 久久超碰97中文字幕| 国产精品国产三级国产三级人妇 | 色婷婷久久久久swag精品| 久久久国产一区二区三区四区小说 | 亚洲一区二区三区视频在线| 91免费国产在线观看| 美女网站一区二区| 国产精品麻豆99久久久久久| 在线免费观看一区| 国产69精品久久久久毛片| 午夜电影一区二区| 亚洲色图视频免费播放| 精品国产乱码久久久久久久| 99国产精品久久久久久久久久久| 日韩精品福利网| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 91成人免费电影| 成人国产一区二区三区精品| 国产自产高清不卡| 久久不见久久见免费视频7| 亚洲成人综合在线| 亚洲永久精品大片| 亚洲在线视频网站| 免费在线欧美视频| 麻豆成人久久精品二区三区小说| 午夜精品aaa| 国产在线视频不卡二| 国产在线国偷精品产拍免费yy| 亚洲国产欧美在线| 久久不见久久见免费视频7 | 91麻豆123| 欧美猛男男办公室激情| 日韩一区二区免费在线观看| 91麻豆精品国产91久久久资源速度 | 欧美日韩国产精选| 精品毛片乱码1区2区3区| 久久一区二区视频| 亚洲人吸女人奶水| 麻豆精品在线观看| 色诱视频网站一区| 日韩视频免费观看高清完整版在线观看| 日韩欧美中文一区二区| 久久先锋资源网| 午夜视频久久久久久| 国产精品一二一区| 国产一区欧美二区| 91免费国产视频网站| 欧美v国产在线一区二区三区| 国产欧美精品国产国产专区| 国产成人精品亚洲777人妖| 国产精品不卡在线| 欧美精品xxxxbbbb| 国产经典欧美精品| 亚洲成人自拍偷拍| 日av在线不卡| 一二三区精品视频| 国产欧美久久久精品影院| 亚洲一区免费视频| 蜜臀va亚洲va欧美va天堂 | 亚洲国产精品久久艾草纯爱 | 日韩和欧美一区二区| 欧美在线免费观看亚洲| 一区二区三区四区在线免费观看| 波多野结衣视频一区| 亚洲老妇xxxxxx| 欧美日本免费一区二区三区| 美女爽到高潮91| 国产情人综合久久777777| 国产成人小视频| 亚洲一区二区视频|