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

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

?? control.vhd

?? 一個關于4路CAN卡的硬件程序,用VHDL編寫
?? VHD
?? 第 1 頁 / 共 2 頁
字號:
--本程序用于711所智能CAN網(wǎng)卡
--此程序負責控制第一、二路CAN通道
--作者:JYH
--設計開始時間:2003年8月4日
--設計完成時間:
--版本號:1.0
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
use ieee.std_logic_arith.all;
entity control is
port
(jp                            :  in       std_logic_vector(7 downto 0);     --跨接針
--************************************************************************   --本段定義單片機端口引腳
 p0a, p0b                      :  inout    std_logic_vector(7 downto 0);     
 p2a, p2b                      :  in       std_logic_vector(7 downto 0);
 alea, aleb                    :  in       std_logic;
 wra, wrb                      :  in       std_logic;
 rda, rdb                      :  in       std_logic;
 c51rsta, c51rstb              :  out      std_logic;
 sjarsta, sjarstb              :  out      std_logic;
--************************************************************************   --本段定義定義雙口RAM引腳
 iol, iora, iorb               :  inout    std_logic_vector(7 downto 0);
 al, ara, arb                  :  out      std_logic_vector(13 downto 0);
 cela, celb, cera, cerb        :  out      std_logic;
 oela, oelb, oera, oerb        :  out      std_logic;
 rwl, rwra, rwrb               :  out      std_logic;
--************************************************************************   --本段定義ISA總線引腳
 sd                            :  inout    std_logic_vector(7 downto 0);
 sa                            :  in       std_logic_vector(19 downto 0);
 ior, iow, aen, rstdrv         :  in       std_logic;
 sysclk                        :  in       std_logic;
 coma                          :  out      std_logic_vector(3 downto 0));
end control;

architecture body_control of control is
signal base_address                                :   std_logic_vector(4 downto 0);    --基地址
signal cs_a, cs_b           :   std_logic;                                              --A通道和B通道的片選信號
signal addressa,addressb                     :   std_logic_vector(7 downto 0);          --鎖存單片機地址總線低8位
signal wr_a_up, wr_b_up, wr_a_down, wr_b_down                                :  integer range 0 to 30000;   --堆棧區(qū)棧頂指針
signal rd_a_up, rd_b_up, rd_a_down, rd_b_down                                :  integer range 0 to 30000;   --堆棧區(qū)棧底指針
signal commanda,commandaa, commandb, commandbb    :  std_logic_vector(3 downto 0);  --命令字寄存器
signal stata,statb           :  std_logic_vector(4 downto 0);            --狀態(tài)字寄存器
signal bcd_a_up, bcd_a_down, bcd_b_up, bcd_b_down : integer range 0 to 9;
signal mcu_command_a,mcu_command_b         : std_logic_vector(1 downto 0);
signal a_up_full,a_up_empty,a_down_full,a_down_empty  : std_logic;
signal b_up_full,b_up_empty,b_down_full,b_down_empty  : std_logic;

begin
--*************************************************************************
--本段描述單片機與雙口RAM連接關系
process(p2a,alea,rda,wra)
begin
    if alea'event and alea='0' then   --地址鎖存
	    addressa<=p0a;
	end if;
	oera<='0';                    --輸出允許常低
	if p2a(7 downto 6)="01" then  --產(chǎn)生雙口RAM片選信號
	    cera<='0';
	else
	    cera<='1';
	end if;
	if rda='0' then               --產(chǎn)生雙口RAM讀寫信號
	    rwra<='1';
	else
	    rwra<=wra;
	end if;
end process;
process(wra)
begin
    if wra'event and wra='1' then
        if addressa&p2a="1000000000000000" then
 	        mcu_command_a<=p0a(1 downto 0);
		end if;
	end if;
end process;
process(rda,addressa,p2a,mcu_command_a)
begin
    if addressa&p2a="1000000000000000" and rda='0' then
	    p0a(1 downto 0)<=mcu_command_a;
	else 
	    p0a(1 downto 0)<="ZZ";
	end if;
end process;
process(wrb)
begin
    if wrb'event and wrb='1' then
        if addressa&p2b="1000000000000000" then
 	        mcu_command_b<=p0b(1 downto 0);
		end if;
	end if;
end process;
process(rdb,addressb,p2b,mcu_command_b)
begin
    if addressb&p2b="1000000000000000" and rdb='0' then
	    p0b(1 downto 0)<=mcu_command_b;
	else 
	    p0b(1 downto 0)<="ZZ";
	end if;
end process;
process(p2b,aleb,rdb,wrb) 
begin
    if aleb'event and aleb='0' then
	    addressb<=p0b;
	end if;
	oerb<='0';
	if p2b(7 downto 6)="01" then 
	    cerb<='0';
	else
	    cerb<='1';
	end if;
    if rdb='0' then
	    rwrb<='1';
	else
	    rwrb<=wrb;
	end if;
end process;

--ara<=p2a(5 downto 0)&addressa;
arb<=p2b(5 downto 0)&addressb;

process(wra,p2a,p0a)
variable data : std_logic_vector(7 downto 0);
begin
    if p2a(7 downto 6)="01" and wra='0' then
        data:=p0a;
	else
	    data:=(others=>'Z');
	end if;
	iora<=data;
end process;
process(rda,p2a,iora)
variable data : std_logic_vector(7 downto 0);
begin
    if p2a(7 downto 6)="01" and rda='0' then
	    data:=iora;
	else
	    data:=(others=>'Z');
	end if;
	p0a<=data;
end process;

process(wrb,p2b,p0b)
variable data : std_logic_vector(7 downto 0);
begin
    if p2b(7 downto 6)="01" and wrb='0' then
        data:=p0b;
	else
	    data:=(others=>'Z');
	end if;
	iorb<=data;
end process;
process(rdb,p2b,iorb)
variable data : std_logic_vector(7 downto 0);
begin
    if p2b(7 downto 6)="01" and rdb='0' then
	    data:=iorb;
	else
	    data:=(others=>'Z');
	end if;
	p0b<=data;
end process;
--*******************************************************************
process(jp)
begin
    case jp is
	    when "00000001" => base_address<="10000";
		when "00000010" => base_address<="10001";
		when "00000100" => base_address<="10010";
		when "00001000" => base_address<="10011";
		when "00010000" => base_address<="10100";
		when "00100000" => base_address<="10101";
		when "01000000" => base_address<="10110";
		when "10000000" => base_address<="10111";
		when others => base_address<="10000";
	end case;
end process;

process(aen,ior,iow,sa,base_address)
begin
    cs_a<='1';
	cs_b<='1';
	if aen&sa(16 downto 0)="0000000"&base_address&"00001" then
        cs_a<='0';
    end if;
	if aen&sa(16 downto 0)="0000000"&base_address&"00101" then
        cs_b<='0';
    end if;		
	oela<='0';
	oelb<='0';
	cela<=cs_a;
	celb<=cs_b;
	if ior='0'  then
	    rwl<='1';
	else
	    rwl<=iow;
	end if;
end process;
 
process(ior,cs_a,iol)
variable data    : std_logic_vector(7 downto 0);
begin
    if cs_a='0' and ior='0' then
	    data:=iol;
	else 
	    data:=(others=>'Z');
	end if;
	sd<=data;
end process;
process(iow,cs_a,sd)
variable data    : std_logic_vector(7 downto 0);
begin
    if cs_a='0' and iow='0' then
	    data:=sd;
	else
	    data:=(others=>'Z');
	end if;
	iol<=data;
end process;

process(ior,aen,sa,base_address,commanda)
begin
    if aen&sa(16 downto 0)="0000000"&base_address&"00000" and ior='0' then
	    sd(3 downto 0)<=commanda;
	else
        sd(3 downto 0)<=(others=>'Z');
	end if;
end process;
process(iow)
begin
    if iow'event and iow='1' then
	    if aen&sa(16 downto 0)="0000000"&base_address&"00000" then
	   		commandaa<=sd(3 downto 0);
		end if;
	end if;
end process;
process(commandaa)
begin
    if commandaa(3)='1' then
	   commanda<="1000";
	   elsif commandaa(2)='1' then
	       commanda<="0100";
		   elsif commandaa(1)='1' then
		       commanda<="0010";
			   elsif commandaa(0)='1'then
			       commanda<="0001";
			   else
			       commanda<="0000";
    end if;
end process;

process(ior,aen,sa,base_address,commandb)
begin
    if aen&sa(16 downto 0)="0000000"&base_address&"00100" and ior='0' then
	    sd(3 downto 0)<=commandb;
	else
        sd<=(others=>'Z');
	end if;
end process;
process(iow)
begin
    if iow'event and iow='1' then
	    if aen&sa(16 downto 0)="0000000"&base_address&"00100" then
	        commandbb<=sd(3 downto 0);
		end if;
	end if;
end process;
process(sysclk,commandbb)
begin
    if sysclk'event and sysclk='1' then
    if commandbb(3)='1' then
	   commandb<="1000";
	   elsif commandbb(2)='1' then
	       commandb<="0100";
		   elsif commandbb(1)='1' then
		       commandb<="0010";
			   elsif commandbb(0)='1'then
			       commandb<="0001";
			   else
			       commandb<="0000";
    end if;
	end if;
end process;
--************************************************************************************************


process(iow)
begin
    if iow'event and iow='1' then
	    if aen&sa(16 downto 0)="0000000"&base_address&"00011" then
			bcd_a_down<=conv_integer(sd(3 downto 0));
--			bcd_a_up<=conv_integer(sd(7 downto 4));
		end if;	
		if aen&sa(16 downto 0)="0000000"&base_address&"00111" then
			bcd_b_down<=conv_integer(sd(3 downto 0));
--			bcd_b_up<=conv_integer(sd(7 downto 4));
		end if;
		if commanda(0)='0' then 
            bcd_a_down<=0;
		else
		    if aen&sa(16 downto 0)="0000000"&base_address&"00001" and commanda(0)='1' then
		        bcd_a_down<=bcd_a_down+1;
		    end if;
		end if;
		if commandb(0)='0' then 
            bcd_b_down<=0;
		else
		    if aen&sa(16 downto 0)="0000000"&base_address&"00101" and commandb(0)='1' then
		        bcd_b_down<=bcd_b_down+1;
		    end if;
		end if;
	end if;
end process;
process(ior,commanda)
begin

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人免费视频app| 91片在线免费观看| 亚洲综合一区在线| 久久综合久久鬼色中文字| 一本一本大道香蕉久在线精品| 蜜臀久久久99精品久久久久久| 国产精品久久久久久久久果冻传媒 | 日韩限制级电影在线观看| 国产激情视频一区二区在线观看| 亚洲国产一区二区a毛片| 国产精品色在线观看| 日韩免费一区二区| 欧美中文字幕一二三区视频| 成人免费毛片嘿嘿连载视频| 久久国产欧美日韩精品| 亚洲一区成人在线| 亚洲欧美激情视频在线观看一区二区三区 | 精品久久国产字幕高潮| 欧美日韩中文一区| 色哟哟精品一区| 成人免费av网站| 国产精品原创巨作av| 六月婷婷色综合| 免费在线观看成人| 天堂影院一区二区| 亚洲综合自拍偷拍| 洋洋av久久久久久久一区| 国产精品色在线| 国产精品色呦呦| 国产免费观看久久| 国产欧美日韩视频一区二区| 日韩美女在线视频| 欧美精品一区二区三区在线| 欧美一级在线免费| 欧美va亚洲va在线观看蝴蝶网| 欧美一区二区三区影视| 在线播放中文一区| 欧美一级二级三级乱码| 日韩女优av电影在线观看| 日韩欧美中文字幕公布| 日韩精品一区二区三区swag| 欧美xxx久久| 国产亚洲欧美色| 国产欧美综合色| 国产精品久久久久一区| 亚洲少妇30p| 亚洲一级二级三级在线免费观看| 亚洲国产精品久久人人爱| 午夜久久久久久电影| 免费成人在线播放| 国产裸体歌舞团一区二区| 国产69精品一区二区亚洲孕妇 | 欧美日产在线观看| 日韩一级免费观看| 久久天堂av综合合色蜜桃网| 国产校园另类小说区| 中文字幕在线观看不卡视频| 亚洲人成亚洲人成在线观看图片 | 日韩三级在线免费观看| 精品奇米国产一区二区三区| 欧美激情在线一区二区| 中文字幕一区在线观看视频| 亚洲图片欧美色图| 老司机精品视频一区二区三区| 国产电影一区在线| 日本乱码高清不卡字幕| 欧美一级二级在线观看| 日本一区二区三区电影| 一区二区三区不卡视频在线观看 | 日韩欧美国产麻豆| 国产女人水真多18毛片18精品视频| 国产精品久久久久永久免费观看| 一区二区三区成人在线视频| 久久机这里只有精品| 播五月开心婷婷综合| 欧美三级资源在线| 国产网站一区二区三区| 一区二区在线观看视频| 蜜芽一区二区三区| 99vv1com这只有精品| 91精品国产91久久久久久一区二区 | 成人国产电影网| 欧美精品xxxxbbbb| 国产精品污网站| 日韩精品一级二级 | 美国十次综合导航| 99视频在线精品| 欧美成人女星排名| 亚洲欧美国产高清| 国产在线观看一区二区| 在线观看免费亚洲| 中文字幕av一区二区三区高| 亚洲成人免费观看| 99久久综合国产精品| 欧美一级夜夜爽| 一区二区三区欧美| 丁香啪啪综合成人亚洲小说| 欧美伦理电影网| 一区二区在线观看视频| 国产乱子轮精品视频| 在线播放中文一区| 亚洲一区在线观看免费 | 国内外成人在线| 欧美午夜精品久久久久久孕妇| 久久―日本道色综合久久| 亚洲 欧美综合在线网络| 91在线观看视频| 久久久五月婷婷| 美女国产一区二区| 欧美精品乱码久久久久久| 亚洲欧洲成人精品av97| 国产精品一区二区三区99| 日韩三级视频中文字幕| 亚洲成人av电影| 欧美午夜一区二区三区| 亚洲人成在线观看一区二区| 成人动漫中文字幕| 久久精品亚洲精品国产欧美kt∨| 美国毛片一区二区| 3d成人h动漫网站入口| 亚洲综合激情小说| 在线视频中文字幕一区二区| 国产精品美女久久久久aⅴ| 国产大陆a不卡| 久久亚区不卡日本| 狠狠色伊人亚洲综合成人| 日韩精品一区二| 看电影不卡的网站| 日韩免费福利电影在线观看| 秋霞国产午夜精品免费视频| 欧美日韩日日摸| 亚洲h动漫在线| 欧美高清精品3d| 青青草成人在线观看| 日韩欧美国产成人一区二区| 毛片基地黄久久久久久天堂| 欧美一区欧美二区| 精品一区二区日韩| 久久免费美女视频| 国产91精品一区二区| 国产精品美女一区二区三区 | 国产mv日韩mv欧美| 久久久综合网站| 成人一区二区视频| 樱桃国产成人精品视频| 欧美日韩国产bt| 日本aⅴ亚洲精品中文乱码| 欧美电影免费观看高清完整版| 国产精品亚洲一区二区三区在线| 国产免费久久精品| 色综合av在线| 亚洲第一搞黄网站| 精品国产一区二区三区不卡| 国产.精品.日韩.另类.中文.在线.播放| 欧美国产日韩亚洲一区| 色婷婷综合在线| 日本视频一区二区| 国产亚洲欧美一区在线观看| 91小视频在线观看| 午夜电影一区二区| 久久色中文字幕| 色综合天天综合色综合av | 亚洲成人动漫在线免费观看| 日韩一区二区麻豆国产| 国产精品一卡二| 日韩伦理免费电影| 91麻豆精品国产91久久久| 国产一区日韩二区欧美三区| 亚洲人成亚洲人成在线观看图片| 欧美丰满少妇xxxxx高潮对白| 国产真实乱对白精彩久久| 亚洲精品视频在线观看免费| 日韩午夜电影av| 一本到高清视频免费精品| 另类小说综合欧美亚洲| 国产精品不卡在线| 91精品国产高清一区二区三区| 成人精品亚洲人成在线| 日本成人在线不卡视频| 国产精品国产馆在线真实露脸 | 欧美精品一区二区久久久 | 国产精品久久久久久久久久久免费看| av色综合久久天堂av综合| 日韩精品成人一区二区在线| 国产精品午夜春色av| 欧美一区在线视频| 色综合久久六月婷婷中文字幕| 久久精品国产999大香线蕉| 日韩理论在线观看| 精品久久久久久久久久久久久久久久久| heyzo一本久久综合| 精品一区二区三区在线观看国产 | 国产一区二区三区四区在线观看 | 国产99久久久国产精品潘金| 亚洲国产精品嫩草影院| 国产精品久久久久影院老司| 日韩一区二区精品葵司在线| 欧美在线免费观看亚洲| 不卡一区二区三区四区| 国产综合久久久久影院|