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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? mouse.vhd

?? 用VHDL編寫的鼠標控制程序
?? VHD
字號:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity mouse is
Port (
clk : in std_logic;
reset : in std_logic;
ps2_clk : inout std_logic;
ps2_data : inout std_logic;
left_button : out std_logic;
right_button : out std_logic;
mousex: buffer std_logic_vector(9 downto 0);
mousey: buffer std_logic_vector(9 downto 0);
data_ready : out std_logic;-- rx_read_o
error_no_ack : out std_logic
);
end mouse;
architecture Behavioral of mouse is
constant TOTAL_BITS : integer :=33; -- 數(shù)據(jù)包位數(shù)
constant WATCHDOG : integer :=320; -- 400usec所需sys_clk脈沖數(shù)
--constant DEBOUNCE_TIMER : integer := 2;
--type m1statetype is ( m1_clk_h, m1_falling_edge, m1_falling_wait,
-- m1_clk_l, m1_rising_edge, m1_rising_wait);
type m2statetype is (m2_reset, m2_wait, m2_gather, m2_verify, m2_use, m2_hold_clk_l,
m2_data_low_1, m2_data_high_1, m2_data_low_2, m2_data_high_2, m2_data_low_3,
m2_data_high_3, m2_error_no_ack, m2_await_response);
--signal m1_state,m1_next_state : m1statetype;
signal m2_state,m2_next_state : m2statetype;
--signal m3_state,m3_next_state : std_logic;
signal watchdog_timer_done : std_logic;--命令傳輸超時標志
signal q : std_logic_vector(TOTAL_BITS-1 downto 0);--位序列
signal bitcount : std_logic_vector(5 downto 0);--位計數(shù)器
signal watchdog_timer_count : std_logic_vector(8 downto 0); --等待時間
--signal debounce_timer_count : std_logic_vector(1 downto 0);
signal ps2_clk_hi_z : std_logic;
signal ps2_data_hi_z : std_logic;
signal fallsig,risesig : std_logic_vector(2 downto 0);
signal clean_clk : std_logic; -- 從m1跟隨ps2_clk反向輸出
signal rise,n_rise : std_logic; -- m1狀態(tài)機輸出數(shù)據(jù)
signal fall,n_fall : std_logic; -- m1狀態(tài)機輸出數(shù)據(jù)
signal output_strobe : std_logic; -- 鎖存數(shù)據(jù)到輸出寄存器
signal packet_good : std_logic; -- 檢查數(shù)據(jù)是否有效
--signal x_increment : std_logic_vector(8 downto 0);
--signal y_increment : std_logic_vector(7 downto 0);
signal mouseyy : std_logic_vector(9 downto 0);
begin
ps2_clk <= '0' when ps2_clk_hi_z='0' else 'Z';
ps2_data <= '0' when ps2_data_hi_z='0' else 'Z';
------------------------------------
--檢測ps2clk上升沿和下降沿
------------------------------------
detect_ps2clkfall : process(clk,reset,ps2_clk)
begin
if reset='0' then
fallsig <= "000";
elsif clk'event and clk='1' then
fallsig(0) <= ps2_clk;
fallsig(1) <= fallsig(0);
fallsig(2) <= fallsig(1);
end if;
end process;
fall <= '1' when fallsig="110" else '0';
detect_ps2clkrise : process(clk,reset,ps2_clk)
begin
if reset='0' then
risesig <= "000";
elsif clk'event and clk='1' then
risesig(0) <= ps2_clk;
risesig(1) <= risesig(0);
risesig(2) <= risesig(1);
end if;
end process;
rise <= '1' when risesig="001" else '0';
------------------m2 狀態(tài)
m2statech: process (reset, clk)
begin
if (reset='0') then
m2_state <= m2_reset;
elsif (clk'event and clk='1') then
m2_state <= m2_next_state;
end if;
end process;
--m2 狀態(tài)傳輸邏輯
m2statetr: process (m2_state, q, fall,rise,watchdog_timer_done,bitcount,ps2_data,packet_good)
begin
-- 輸出信號的缺省值
ps2_clk_hi_z <= '1';
ps2_data_hi_z <= '1';
error_no_ack <= '0';
output_strobe <= '0';
case m2_state is
when m2_reset => -- 復位后向鼠標發(fā)送命令字
m2_next_state <= m2_hold_clk_l;
when m2_wait =>
if (fall='1') then
m2_next_state <= m2_gather;
else
m2_next_state <= m2_wait;
end if;
when m2_gather =>
if ((watchdog_timer_done='1') and (bitcount=TOTAL_BITS))then
m2_next_state <= m2_verify;
else
m2_next_state <= m2_gather;
end if;
when m2_verify =>
--if (bitcount < TOTAL_BITS) then --替換 " packet_good='1' "
--m2_next_state <= m2_wait;
--else
m2_next_state <= m2_use;
--end if;
when m2_use =>
output_strobe <= '1';
m2_next_state <= m2_wait;
-- 用狀態(tài)機的9個狀態(tài)實現(xiàn)命令字傳輸,使鼠標進入"streaming"模式,
-- 并等待鼠標正確應答
when m2_hold_clk_l =>
ps2_clk_hi_z <= '0'; -- 啟動看門狗!
if (watchdog_timer_done='1') then
m2_next_state <= m2_data_low_1;
else
m2_next_state <= m2_hold_clk_l;
end if;
when m2_data_low_1 =>
ps2_data_hi_z <= '0'; -- 數(shù)據(jù)位 開始位, d[0] and d[1]
if (fall='1' and (bitcount = 2)) then
m2_next_state <= m2_data_high_1;
else
m2_next_state <= m2_data_low_1;
end if;
when m2_data_high_1 =>
ps2_data_hi_z <= '1'; -- 數(shù)據(jù)位 d[2]
if (fall='1' and (bitcount = 3)) then
m2_next_state <= m2_data_low_2;
else
m2_next_state <= m2_data_high_1;
end if;
when m2_data_low_2 =>
ps2_data_hi_z <= '0'; -- 數(shù)據(jù)位 d[3]
if (fall='1' and (bitcount = 4)) then
m2_next_state <= m2_data_high_2;
else
m2_next_state <= m2_data_low_2;
end if;
when m2_data_high_2 =>
ps2_data_hi_z <= '1'; -- 數(shù)據(jù)位 d[4],d[5],d[6],d[7]
if (fall='1' and (bitcount = 8)) then
m2_next_state <= m2_data_low_3;
else
m2_next_state <= m2_data_high_2;
end if;
when m2_data_low_3 =>
ps2_data_hi_z <= '0'; -- 奇偶校驗位
if (fall='1') then
m2_next_state <= m2_data_high_3;
else
m2_next_state <= m2_data_low_3;
end if;
when m2_data_high_3 =>
ps2_data_hi_z <= '1'; -- 允許鼠標拉成低電平(ACK脈沖)
if (fall='1' and (ps2_data='1')) then
m2_next_state <= m2_error_no_ack;
elsif (fall='1' and (ps2_data='0')) then
m2_next_state <= m2_await_response;
else
m2_next_state <= m2_data_high_3;
end if;
when m2_error_no_ack =>
error_no_ack <= '1';
m2_next_state <= m2_error_no_ack;
-- 為了鼠標正確進入"streaming"模式,狀態(tài)極必須等待足夠長的時間,
-- 確保鼠標正確應答0xFA。
when m2_await_response =>
--if (bitcount = 22) then
m2_next_state <= m2_verify;
--else
-- m2_next_state <= m2_await_response;
--end if;
when others => m2_next_state <= m2_wait;
end case;
end process;-----------------------------m2 狀態(tài)結(jié)束
--位計數(shù)器
bitcoun: process (reset, clk)
begin
if (reset='0') then
bitcount <= (others=>'0'); -- normal reset
elsif (clk'event and clk='1') then
if (fall='1') then
bitcount <= bitcount + 1;
elsif (watchdog_timer_done='1') then
bitcount <= (others=>'0'); -- rx watchdog timer reset
end if;
end if;
end process;
-- 數(shù)據(jù)移位寄存器
dataseq: process (reset, clk)
begin
if (reset='0') then
q <= (others=>'0');
elsif (clk'event and clk='1') then
if (fall='1') then
q <= ps2_data & q(TOTAL_BITS-1 downto 1);
end if;
end if;
end process;
-- 看門狗時間計數(shù)器
watchcount: process (reset,rise,fall, clk)
begin
if ((reset='0') or (rise='1') or (fall='1')) then
watchdog_timer_count <= (others=>'0');
elsif (clk'event and clk='1') then
if (watchdog_timer_done='0') then
watchdog_timer_count <= watchdog_timer_count + 1;
end if;
end if;
end process;
watchdog_timer_done <= '1' when (watchdog_timer_count=WATCHDOG-1) else '0';
-- 接收數(shù)據(jù)包有效標志
packet_good <= '1';
-- 輸出數(shù)據(jù)
outdata: process (reset, clk)
begin
if (reset='0') then
left_button <= '0';
right_button <= '0';
--x_increment <= (others=>'0');
--y_increment <= (others=>'0');
elsif (clk'event and clk='1') then
if (output_strobe='1') then
left_button <= q(1);
right_button <= q(2);
--x_increment <= '0' & q(19 downto 12);
mouseyy <= not (q(6) & q(6) & q(30 downto 23)) + "1";
end if;
end if;
end process;
cordinatex: process (reset, clk)
begin
if (reset='0') then
mousex <= "0110010000"; -- 400
elsif (clk'event and clk='1') then
if (output_strobe='1') then
if ((mousex >= 797 and q(5)='0') or (mousex <= 2 and q(5)='1')) then
mousex <= mousex;
else
mousex <= mousex + (q(5) & q(5) & q(19 downto 12));--q(5):xsign q(6):ysign
end if;
end if;
end if;
end process;
cordinatey: process (reset, clk)
begin
if (reset='0') then
mousey <= "0100101100"; -- 300
elsif (clk'event and clk='1') then
if (output_strobe='1') then
if ((mousey >= 597 and q(6)='1') or (mousey <= 2 and q(6)='0')) then
mousey <= mousey;
else
mousey <= mousey + mouseyy; --(q(6) & q(6) & q(30 downto 23));
end if;
end if;
end if;
end process;
--mousey <= "1001010101"-mouseyy;
data_ready <= output_strobe;
end Behavioral;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91丨国产丨九色丨pron| 亚洲色图都市小说| 蜜桃久久精品一区二区| 91麻豆精品国产| 青青草伊人久久| 久久影视一区二区| 国产激情视频一区二区在线观看 | 久久久91精品国产一区二区精品| 国产尤物一区二区| 综合色中文字幕| 欧美日韩午夜影院| 狠狠色狠狠色综合系列| 国产午夜精品一区二区三区嫩草 | 日韩片之四级片| 国产在线精品视频| 自拍偷拍亚洲综合| 91麻豆精品国产91| www.亚洲精品| 无码av中文一区二区三区桃花岛| 精品国产欧美一区二区| 99精品视频免费在线观看| 日韩专区在线视频| 中文字幕成人网| 精品视频1区2区| 国产精品中文有码| 亚洲一区二区av电影| 久久久久久久久久久久久女国产乱| jlzzjlzz欧美大全| 日本视频在线一区| 亚洲桃色在线一区| 精品国产在天天线2019| 99re这里只有精品6| 久久国产精品99精品国产| 亚洲图片欧美激情| 精品国产a毛片| 精品视频在线免费观看| 国产一区亚洲一区| 日韩高清一区在线| 国产精品国产馆在线真实露脸| 欧美丰满一区二区免费视频| 粉嫩av一区二区三区粉嫩| 蜜臀av亚洲一区中文字幕| 亚洲欧美另类久久久精品2019| 欧美丰满少妇xxxbbb| 成年人网站91| 激情五月激情综合网| 精品一区二区在线免费观看| 亚洲精品免费播放| 国产拍揄自揄精品视频麻豆 | 欧美三级电影在线看| 国产不卡免费视频| 免费黄网站欧美| 亚洲综合精品自拍| 中文字幕在线不卡一区| 国产午夜精品久久久久久久| 欧美一区二区免费观在线| 99久久综合狠狠综合久久| 国产乱码精品一品二品| 男女性色大片免费观看一区二区| 亚洲一区二区三区视频在线播放| 国产精品传媒视频| 中文字幕国产精品一区二区| 久久久久久电影| 欧美大度的电影原声| 欧美一区二区视频免费观看| 欧美日韩在线播放一区| 91福利视频网站| 91老师国产黑色丝袜在线| 成人激情电影免费在线观看| 国产福利一区二区三区视频| 国内精品国产三级国产a久久| 久久精品久久精品| 韩国毛片一区二区三区| 九九九久久久精品| 精品中文av资源站在线观看| 喷水一区二区三区| 久久国产精品无码网站| 国精产品一区一区三区mba视频 | 亚洲日穴在线视频| 丁香五精品蜜臀久久久久99网站 | 成人黄色777网| www.在线欧美| 9l国产精品久久久久麻豆| 不卡电影免费在线播放一区| 成人av小说网| 欧美性大战久久| 8x福利精品第一导航| 精品国产乱码久久久久久影片| 国产亚洲一区字幕| 久久精品夜色噜噜亚洲a∨| 中文字幕一区二区三区视频| 一区在线中文字幕| 亚洲综合视频在线观看| 日本视频一区二区| 国产传媒欧美日韩成人| 99久久伊人网影院| 欧美日韩美少妇| 亚洲精品在线三区| 国产精品女人毛片| 一区二区三区91| 日韩黄色片在线观看| 国产另类ts人妖一区二区| 91麻豆国产自产在线观看| 欧美日韩免费一区二区三区视频| 精品免费日韩av| 中文字幕制服丝袜一区二区三区 | 成人av在线资源| 欧美人牲a欧美精品| 国产欧美精品一区| 亚洲成人av在线电影| 国内精品伊人久久久久av影院| 99精品视频在线观看| 欧美一区二区三级| 国产精品国产三级国产aⅴ原创| 亚洲风情在线资源站| 国产精品一区二区免费不卡 | 97se亚洲国产综合自在线不卡 | 亚洲成人精品在线观看| 国产一区二区不卡| 欧美日韩亚洲另类| 国产人妖乱国产精品人妖| 亚洲最大成人网4388xx| 国产一区二区不卡老阿姨| 中文字幕精品一区二区精品绿巨人| 午夜一区二区三区在线观看| 九色综合狠狠综合久久| 欧美日韩视频不卡| 日韩一区精品字幕| 久久99热国产| 色婷婷精品久久二区二区蜜臀av| 日韩欧美第一区| 一区二区三区蜜桃网| 国产aⅴ精品一区二区三区色成熟| 欧美在线你懂的| 国产精品伦理在线| 麻豆精品国产传媒mv男同| 欧美在线免费观看视频| 国产精品麻豆视频| 久久不见久久见免费视频1| 欧美日韩一区二区三区在线| 国产精品久久午夜| 国产成a人亚洲精| 欧美va天堂va视频va在线| 亚洲国产精品嫩草影院| 99久久国产综合精品女不卡| 久久精品人人做| 麻豆精品视频在线观看免费| 欧美日韩一区高清| 一区二区国产盗摄色噜噜| 日韩有码一区二区三区| 久久久99精品免费观看| 亚洲精品乱码久久久久久| 国产白丝网站精品污在线入口| 国产乱人伦偷精品视频免下载| 91免费看视频| 国产精品欧美久久久久无广告| 男女男精品视频网| 欧美精品一级二级| 亚洲午夜av在线| 91搞黄在线观看| 亚洲激情男女视频| 色综合久久88色综合天天免费| 国产精品久久久久久户外露出| 国产精品自在欧美一区| 精品国产成人在线影院| 极品少妇xxxx精品少妇偷拍| 欧美一区二区不卡视频| 视频一区国产视频| 91精品在线麻豆| 日本网站在线观看一区二区三区| 这里只有精品免费| 奇米影视7777精品一区二区| 91精品国产全国免费观看| 午夜欧美大尺度福利影院在线看| 欧美男男青年gay1069videost | 国产欧美va欧美不卡在线| 91麻豆产精品久久久久久| 国产欧美一区二区三区沐欲| 国产精品自产自拍| 国产精品欧美极品| 91免费在线看| 亚洲mv大片欧洲mv大片精品| 日韩午夜精品电影| 激情综合五月婷婷| 国产精品毛片大码女人| 一本大道久久a久久精品综合| 一区二区免费在线播放| 欧美精品国产精品| 激情文学综合插| 亚洲国产激情av| 日本韩国欧美一区| 人人超碰91尤物精品国产| 精品欧美黑人一区二区三区| 成人性生交大片免费看视频在线| 国产精品成人午夜| 91精品国产欧美一区二区| 国产中文字幕精品| 一区二区三区日韩欧美| 日韩一区二区电影在线| 国产精品66部|