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

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

?? spi_test.vhd

?? 有關(guān)SPI的vhdl實(shí)現(xiàn)。包括SPI官方協(xié)議
?? VHD
字號(hào):
library ieee;use ieee.std_logic_1164.all; use ieee.numeric_std.all;  entity spi is  generic(N:integer:=100);  port(    allclk   :in std_logic;    rst      : in  std_ulogic;    --addr     : in  std_ulogic_vector(1 downto 0);  --for signaltap,change it                                                     --to signal     --datain   : in  std_ulogic_vector(7 downto 0);    dataout  : out std_ulogic_vector(7 downto 0):="00000000";        --write    : in  std_ulogic;      irq      : out std_ulogic:='0';         misoi    : in  std_ulogic;          mosio    : out std_ulogic:='0';       scko     : out std_ulogic:='0';    spics       : in  std_ulogic;    cs       : out std_ulogic    );end spi;architecture behav of spi is--  type statemachine is(cs_en,spi_init,clk_sel,ad_init_1,ad_init_2,test);--  signal st,nxst : statemachine;  signal st,nxst : std_ulogic_vector(2 downto 0);  signal clk      :   std_ulogic;   -- spi main clk  signal bit_ctr     : std_ulogic_vector(2 downto 0);  signal ctl_reg     : std_ulogic_vector(7 downto 0);  -- control register  signal dvd_ctr     : std_ulogic_vector(4 downto 0); -- clock divider  signal dvd2        : std_ulogic;  signal dvd_zero    : std_ulogic; -- enable clock divider  signal irq_flag    : std_ulogic;  signal misoe_lcl   : std_ulogic;   signal mosie_lcl   : std_ulogic;   signal oflow       : std_ulogic;  signal sel_clk     : std_ulogic_vector(1 downto 0);  signal shift_reg   : std_ulogic_vector(7 downto 0);   signal shift_clk   : std_ulogic;  signal shift_clk_negedge       : std_ulogic; -- negative edge of SCK  signal shift_negative_edge_nxt : std_ulogic;  signal shift_negative_edge     : std_ulogic;  signal shift_datain  : std_ulogic;  signal shift_dataout : std_ulogic;  signal spi_go        : std_ulogic; -- begin a transfer  signal status        : std_ulogic_vector(7 downto 0);  signal tx_end        : std_ulogic;    -- 0 when transfer is end  signal tx_run        : std_ulogic; -- 1 when a transfer is going  signal tx_start      : std_ulogic;  signal tx_start_r1   : std_ulogic;  signal addr : std_ulogic_vector(1 downto 0);  signal datain : std_ulogic_vector(7 downto 0);  signal write : std_ulogic;  signal temp : integer;  begin  mosio <= shift_dataout;    spi_go <= '1' when  write='1' and addr="00" and                     tx_run='0' else            '0';      process(allclk,rst)      begin          if allclk='1' and allclk'event then            if temp<N-1 then              temp<=temp+1;            else              temp<=0;            end if;            if temp<N/2 then              clk<='1';            else              clk<='0';            end if;          end if;      end process;-- shift reg  sr_proc : process(clk)  begin    if (clk'event and clk='1') then      if (rst='1') then        shift_reg <= "00000000";         else        if (spi_go='1') then            -- can't write when transfering          shift_reg  <= datain;            elsif (shift_clk='1') then          shift_reg <= shift_reg(6 downto 0) & shift_datain;        end if;      end if;    end if;  end process;  neg_proc : process(clk)   begin    if (clk'event and clk='1') then              if (rst='1') then        shift_negative_edge <= '0';      elsif (shift_clk_negedge='1') then        shift_negative_edge  <= shift_negative_edge_nxt;      elsif (spi_go='1') then        shift_negative_edge  <= datain(7);      end if;    end if;  end process;    shift_negative_edge_nxt <= misoi;  shift_dataout <= shift_reg(7);  shift_datain <= shift_negative_edge;  tr_proc : process(clk)  begin    if (clk'event and clk='1') then      if (rst='1') then        tx_run <= '0';       else        if (tx_start='1') then          tx_run  <= '1';        elsif (tx_end='1') then          tx_run <= '0';        end if;      end if;    end if;  end process;    bc_proc : process (clk)  begin     if (clk'event and clk='1') then      if (rst='1') then         bit_ctr <= "000";       else        if (tx_start='1') then          bit_ctr <= "000";        elsif (shift_clk='1') then          bit_ctr <= std_ulogic_vector(unsigned(bit_ctr)-1);        end if;      end if;    end if;  end process;  tx_end <= '1' when bit_ctr="001"                     and shift_clk='1' and tx_run='1' else            '0';  tx_start <= '1' when spi_go='1' else              '0';    -- control reg  gjr_proc : process (clk)  begin    if (clk'event and clk='1') then      if (rst='1') then         ctl_reg <= "00000000";       else        if ( write='1' and addr="01") then          ctl_reg <= datain;        end if;      end if;    end if;  end process;  sel_clk     <= ctl_reg(6 downto 5);   -- select clk divider    o_proc : process (clk)  begin    if (clk'event and clk='1') then      if (rst='1') then        oflow <= '0';      else        if ( write='1' and addr="00" and            tx_run='1') then              oflow <= '1';        elsif ( write='1' and addr="10"               and datain(6)='1') then          oflow <= '0';        end if;      end if;    end if;  end process;  --irq   elr_proc : process (clk)  begin    if (clk'event and clk='1') then      if (rst='1') then        irq_flag <= '0';      else        if (tx_end='1') then          irq_flag <= '1';                elsif (addr="10") then          irq_flag <= '0';        end if;      end if;    end if;  end process;  irq <= irq_flag;  flops_proc : process (clk)  begin    if (clk'event and clk='1') then      tx_start_r1 <= tx_start;    end if;  end process;    dvd_proc : process (clk)   begin    if (clk'event and clk='1') then      if (not (tx_run='1') or tx_end='1') then   -- generate clk when transfering         dvd_ctr <= "00000";  -- 00=8, 01=16, 10=32, 11=64        dvd2 <= '0';      else        if (dvd_ctr="00000") then          if (sel_clk="00") then            dvd_ctr <= "00011";          elsif (sel_clk="01") then            dvd_ctr <= "00111";          elsif (sel_clk="10") then            dvd_ctr <= "01111";          else            dvd_ctr <= "11111";          end if;          if (tx_start_r1='0') then            dvd2 <= not dvd2;          end if;        else          dvd_ctr <= std_ulogic_vector(unsigned(dvd_ctr)-1);        end if;      end if;    end if;  end process;  dvd_zero <= '1' when dvd_ctr="00000" else              '0';    shift_clk <= dvd_zero and dvd2 and tx_run and not tx_start_r1;  shift_clk_negedge <= dvd_zero and not dvd2 and tx_run;  with addr select    dataout <=                shift_reg  when "00",               ctl_reg    when "01",               status     when "10",               "XXXXXXXX" when others;  status <= irq_flag & oflow & "000" & tx_run & "00";    scko <= dvd2;  -- main state machine process(allclk,rst)                    -- use allclk   variable mdly : integer;   begin     if rst='0' then       if allclk'event and allclk='1' then     case st is       when "000" =>                    -- delay         if mdly<=5 then           mdly:=mdly+1;         else           mdly:=0;         end if;         if mdly=5 then                 -- init         write<='1';         datain<="10000000";         addr<="01";         mdly:=0;         st<="001";                    end if;       when "001"=>                     -- transfer "10010111"         datain<="10010111";         if irq_flag='0' then           addr<="00";                  -- wait for irq         else           addr<="10";                  -- addr="00",transfer; addr="10",rese irq_flag           st<="010";                    end if;       when "010"=>         datain<="00100101";                    if irq_flag='0'then                      addr<="00";         else           addr<="10";                      st<="011";         end if;       when "011"=>                  if mdly<=20 then           mdly:=mdly+1;         else           mdly:=0;         end if;         if mdly=20 then         mdly:=0;         st<="001";                    end if;                when others => null;     end case;            end if;          else       st<="000";       addr<="00";       datain<="00000000";         end if;   end process;  end behav;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
蜜臀va亚洲va欧美va天堂| 午夜私人影院久久久久| 日韩va亚洲va欧美va久久| jlzzjlzz欧美大全| 精品伦理精品一区| 亚洲国产精品麻豆| 91最新地址在线播放| 国产欧美久久久精品影院| 蜜臀av性久久久久蜜臀aⅴ四虎| 欧美mv日韩mv国产| 丰满少妇在线播放bd日韩电影| 日韩欧美一区二区在线视频| 亚洲欧洲99久久| 国产成人av资源| 久久久午夜精品| 国产呦萝稀缺另类资源| 欧美午夜精品一区| 亚洲男人的天堂一区二区| 成人一区二区三区视频| 国产欧美一区二区精品忘忧草 | 欧美三级中文字| 亚洲精品国产一区二区精华液| 成人免费观看男女羞羞视频| 亚洲精品免费一二三区| 欧美一三区三区四区免费在线看| 亚洲小少妇裸体bbw| 日韩精品专区在线影院重磅| 国产99久久久国产精品潘金网站| 一区二区三区在线影院| 欧美吻胸吃奶大尺度电影| 免费观看30秒视频久久| 欧美成人bangbros| 成a人片亚洲日本久久| 中文av字幕一区| 风间由美一区二区av101| 亚洲一区二区在线免费看| 欧美亚洲一区三区| 韩国精品主播一区二区在线观看| 精品日韩一区二区| 色综合久久久久久久久| 一区二区三区视频在线看| 欧美大白屁股肥臀xxxxxx| 99久久国产综合精品女不卡| 免费成人深夜小野草| 一色桃子久久精品亚洲| 欧美一级淫片007| av午夜一区麻豆| 欧美一级片在线观看| 99精品视频一区| 久久成人av少妇免费| 久久久精品免费网站| 欧美特级限制片免费在线观看| 国产精品66部| 亚洲日本中文字幕区| 欧美在线观看18| 日韩av午夜在线观看| 综合在线观看色| 26uuu欧美日本| a级精品国产片在线观看| 麻豆专区一区二区三区四区五区| 一区二区三区免费观看| 欧美国产日韩精品免费观看| 色综合天天视频在线观看| 激情久久久久久久久久久久久久久久| 一区二区三区日韩精品视频| 欧美激情一区二区三区| 欧美mv和日韩mv的网站| 欧美视频一区二区三区四区| 成人av免费在线| 久久99久久99精品免视看婷婷| 国产精品私人影院| 日韩美女天天操| 欧美日韩国产a| 国产精品系列在线播放| 免费av成人在线| 午夜精品福利一区二区蜜股av| 亚洲欧洲精品成人久久奇米网| 久久久99精品免费观看不卡| 日本乱人伦aⅴ精品| 久久精品国产免费看久久精品| 亚洲一二三区视频在线观看| 亚洲欧洲美洲综合色网| 粉嫩aⅴ一区二区三区四区五区| 麻豆精品新av中文字幕| 婷婷综合久久一区二区三区| 亚洲精品中文在线观看| 中文字幕在线不卡一区二区三区| 久久伊人中文字幕| 精品国产一区二区三区久久久蜜月| eeuss国产一区二区三区| 国产91精品欧美| 国产精品亚洲人在线观看| 久久成人18免费观看| 蜜臀a∨国产成人精品| 三级欧美韩日大片在线看| 亚洲欧洲日本在线| 国产精品久久久久久久第一福利| 制服丝袜在线91| 97se狠狠狠综合亚洲狠狠| 成人免费视频网站在线观看| 国产精品99久久久| 国产suv精品一区二区三区| 国产精品一品视频| 懂色一区二区三区免费观看| 国产91清纯白嫩初高中在线观看| 国产激情一区二区三区| 国产成人精品亚洲777人妖| 国产乱码精品一区二区三区忘忧草| 国产一区二区看久久| 国产精选一区二区三区| 国产成人av影院| 中文字幕第一区二区| 国产欧美一区二区精品性色超碰| 国产日本欧美一区二区| 日本一区二区视频在线观看| 国产精品三级视频| 亚洲色图都市小说| 一区二区三区在线看| 午夜亚洲国产au精品一区二区| 日韩电影一区二区三区四区| 免费成人结看片| 国产精品一区在线观看乱码| 成人午夜大片免费观看| 97超碰欧美中文字幕| 欧美亚洲自拍偷拍| 6080日韩午夜伦伦午夜伦| 日韩美一区二区三区| 久久精品一级爱片| 国产精品盗摄一区二区三区| 亚洲黄色小视频| 日本欧美在线看| 国产一区二区三区最好精华液| 成人黄色a**站在线观看| 91热门视频在线观看| 9l国产精品久久久久麻豆| 日本精品视频一区二区| 欧美日韩国产综合一区二区| 91精品国产综合久久久蜜臀图片| 国产精品一区二区在线播放| aaa国产一区| 欧美日韩国产一二三| 欧美va在线播放| 国产精品乱人伦中文| 一区二区三区视频在线看| 免费看日韩a级影片| 国产一区二区三区免费观看| av激情综合网| 91精品国产综合久久久久久漫画 | 精品久久人人做人人爱| 久久久国产一区二区三区四区小说| 国产精品无码永久免费888| 一区二区三区.www| 久久精品国产免费看久久精品| 国产91精品露脸国语对白| 欧美丝袜丝交足nylons| 精品对白一区国产伦| 亚洲人成小说网站色在线 | 欧美亚洲一区三区| 久久99精品国产麻豆婷婷| 成人av在线网站| 欧美美女直播网站| 在线亚洲高清视频| 欧美成人一区二区三区| 亚洲欧洲精品成人久久奇米网| 手机精品视频在线观看| 成人小视频在线| 欧美丰满少妇xxxbbb| 中文字幕不卡在线| 日本亚洲欧美天堂免费| 成人黄色电影在线| 日韩一级片网址| 亚洲女与黑人做爰| 精品在线你懂的| 欧美亚洲综合在线| 国产精品天美传媒沈樵| 天天色综合成人网| 波多野结衣中文一区| 日韩一级片在线观看| 亚洲精品亚洲人成人网在线播放| 精品一区二区久久久| 欧美视频在线观看一区二区| 国产三级久久久| 日精品一区二区三区| 99久久99久久精品免费观看| 欧美成人vps| 香蕉成人啪国产精品视频综合网| 日韩精品高清不卡| 97超碰欧美中文字幕| 26uuu欧美| 日韩高清不卡一区二区三区| 99re这里只有精品视频首页| 精品日本一线二线三线不卡| 欧美丰满高潮xxxx喷水动漫 | 久久久久久99久久久精品网站| 亚洲自拍偷拍网站| 波多野结衣中文字幕一区 | 国产清纯白嫩初高生在线观看91 | 轻轻草成人在线| 91九色02白丝porn| 国产精品日韩成人|