⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 spi_interface.vhd

📁 SPI接口的vhdl代码
💻 VHD
字号:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
use ieee.std_logic_arith.all;

entity spi_interface is
port(
     clk : in std_logic;
     cs  : in std_logic;
     sclk: in std_logic;
     din : in std_logic_vector(7 downto 0);
     mosi: out std_logic
    );
end spi_interface;

architecture behave of spi_interface is
type send_states is(cs_starting,waiting,sending,shifting,increment,cs_over);
signal send_state : send_states;
signal q:std_logic;
begin
 process(clk,cs,send_state)
  begin
    if cs='1' then 
       mosi<='0';
       q<=din;
    elsif rising_edge(clk) then
      case send_state is
        when cs_starting=>
               if sclk='1' then
                  send_state<=waiting;
               end if;
        when waiting=>
                send_state<=sending;
        when sending=>
                if i>7 then
                  mosi<=q(0);
                else
                  mosi<='0';
                end if;
                 send_state<=shifting;
        when shiting=>
                if i>7 then
                   q<=('0' & q(7 downto 1));      --right shifting
                end if;
                send_state<=increment;
        when increment=>
                i:=i+1;
                send_state<=cs_over;
        when cs_over=>
                
                
       end case;
    end if;
end process;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -