集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
楼主: lcytms

FPGA初级课程第二十一讲 SPI

[复制链接]
 楼主| lcytms 发表于 2017-2-7 16:10:42 | 显示全部楼层
本帖最后由 lcytms 于 2017-2-7 16:19 编辑

13.        设定X_IDLE状态输出情况。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2017-2-7 16:15:13 | 显示全部楼层
本帖最后由 lcytms 于 2017-2-7 16:17 编辑

14.        设定X_START状态输出情况。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2017-2-7 16:20:29 | 显示全部楼层
本帖最后由 lcytms 于 2017-2-7 16:22 编辑

15.        设定X_SHIFT状态输出情况。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2017-2-7 16:23:31 | 显示全部楼层
本帖最后由 lcytms 于 2017-2-7 16:25 编辑

16.        设定X_STOP状态输出情况。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2017-2-7 16:26:17 | 显示全部楼层
17.        保存。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2017-2-7 16:27:15 | 显示全部楼层
18.        产生HDL文件。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2017-2-7 16:28:27 | 显示全部楼层
19.        修正spi_three_wire.v文件。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2017-2-7 16:30:19 | 显示全部楼层
本帖最后由 lcytms 于 2017-2-7 16:48 编辑

20.        保存并编译。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2017-2-7 16:40:58 | 显示全部楼层
本帖最后由 lcytms 于 2017-2-7 16:46 编辑

编写Testbench。
新建spi_three_wire_test.v文件。
`timescale 1ns/1ns

module spi_three_wire_test;
  
        reg reset;
        reg CLK;
        reg GO;
        reg [3:0] bitcount;
       
        wire SCLK;
        wire bitcountEN;
        wire rstbitcount;
        wire LDEN;
        wire SHEN;
        wire SCEN;
        wire ORDY;
        wire SPC;
   
        spi_three_wire dut (
                reset,CLK,GO,bitcount,SCLK,bitcountEN,rstbitcount,LDEN,SHEN,SCEN,ORDY,SPC);
  
        initial
                begin
                        CLK = 0;
                        reset = 1;
                        GO = 0;
                        bitcount = 0;
                       
                        #100
                        reset = 0;
                        GO = 1;
                        #100
                        GO = 0;
                       
                        #150
                        bitcount = 1;
                        #100
                        bitcount = 2;
                        #100
                        bitcount = 3;
                        #100
                        bitcount = 4;
                        #100
                        bitcount = 5;
                        #100
                        bitcount = 6;
                        #100
                        bitcount = 7;
                        #100
                        bitcount = 8;
                        #100
                        bitcount = 9;
                        #100
                        bitcount = 10;
                        #100
                        bitcount = 11;
                        #100
                        bitcount = 12;
                        #100
                        bitcount = 13;
                        #100
                        bitcount = 14;
                        #100
                        bitcount = 15;
                       
                        #1000 $stop;
                end
   
        always #50 CLK = ~CLK;
  
endmodule

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2017-2-7 16:44:32 | 显示全部楼层
本帖最后由 lcytms 于 2017-2-7 16:46 编辑

进行分析综合检查。
进行仿真设置。
查看仿真结果。
当SCEN为0时,SPC的时钟有16个上升沿。
当传输结束时,SCEN为1,且ORDY为1。
仿真功能正确。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2024-12-24 00:35 , Processed in 0.061996 second(s), 17 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表