SPI接口设计VHDL代码Quartus仿真

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

软件:Quartus

语言:VHDL

代码功能:

SPI接口设计

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

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

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


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


演示视频:

设计文档:

设计文档.doc

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;

代码文件(付费下载):



1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » SPI接口设计VHDL代码Quartus仿真

发表评论

模板文件不存在: ./template/plugins/comment/pc/index.htm

注册为本站会员,充值100得150,详情咨询客服

目前为止共有 *** 位优秀的会员加入! 立刻加入会员