• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

SPI接口设计VHDL代码Quartus仿真

07/08 08:19
381
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-240122201043138.doc

共1个文件

名称:SPI接口设计VHDL代码Quartus仿真

软件:Quartus

语言:VHDL

代码功能:

SPI接口设计

SPI接口定义:要求地址位8bit,数据位16bit,再加上读写标识为1bit,一共25bit。

Bit顺序为:读写标识1bit+地址位8bi+数据位16bit。

本资源支持VHDL和Verilog两种语言。

FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com

演示视频:

设计文档:

1. 工程文件

2. 程序文件

3. 管脚分配

对应开发板位置:

4. 程序编译

5. RTL图

6. Testbench

7. 仿真图

SPI接口定义:要求地址位8bit,数据位16bit,再加上读写标识为1bit,一共25bit。Bit顺序为:读写标识1bit+地址位8bi+数据位16bit。

写数据仿真图

读数据仿真

部分代码展示:

LIBRARY ieee;
   USE ieee.std_logic_1164.all;
ENTITY SPI_top IS
   PORT (
      sys_rst_p  : IN STD_LOGIC;--复位
      sys_clk    : IN STD_LOGIC;--14.7456   
      SPI_CLK    : OUT STD_LOGIC;--100K
      SPI_DI     : OUT STD_LOGIC;--MOSI
      SPI_ENB    : OUT STD_LOGIC;--CS低电平有效
      SPI_DO     : IN STD_LOGIC--MISO
   );
END SPI_top;
ARCHITECTURE behave OF SPI_top IS
   COMPONENT spi_interface IS
      PORT (
         sys_rst_p  : IN STD_LOGIC;
         sys_clk    : IN STD_LOGIC;
         SPI_CLK    : OUT STD_LOGIC;
         SPI_DI     : OUT STD_LOGIC;
         SPI_ENB    : OUT STD_LOGIC;
         SPI_DO     : IN STD_LOGIC;
         WR_RD_in   : IN STD_LOGIC_VECTOR(1 DOWNTO 0);
         int_wr_data_in : IN STD_LOGIC_VECTOR(15 DOWNTO 0);
         int_add_in : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
         int_rd_data_out : OUT STD_LOGIC_VECTOR(15 DOWNTO 0)
      );
   END COMPONENT;
      
   SIGNAL WR_RD_in        : STD_LOGIC_VECTOR(1 DOWNTO 0);--读写寄存器--10=写,01=读
   SIGNAL int_wr_data_in  : STD_LOGIC_VECTOR(15 DOWNTO 0);
   SIGNAL int_add_in      : STD_LOGIC_VECTOR(7 DOWNTO 0);
   SIGNAL int_rd_data_out : STD_LOGIC_VECTOR(15 DOWNTO 0);
BEGIN
   
   WR_RD_in <= "01";--10=写,01=读
   int_wr_data_in <= "0001001000110100";--数据
   int_add_in <= "01010110";--地址
   --调用SPI接口模块
   i_spi_interface : spi_interface
      PORT MAP (
         sys_rst_p        => sys_rst_p,
         sys_clk          => sys_clk,
         SPI_CLK          => SPI_CLK,
         SPI_DI           => SPI_DI,
         SPI_ENB          => SPI_ENB,
         SPI_DO           => SPI_DO,
         WR_RD_in         => WR_RD_in,
         int_wr_data_in   => int_wr_data_in,
         int_add_in       => int_add_in,
         int_rd_data_out  => int_rd_data_out
      );
   
END behave;

点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=609

  • 2-240122201043138.doc
    下载

相关推荐