lcytms 发表于 2017-2-7 16:10:42

本帖最后由 lcytms 于 2017-2-7 16:19 编辑

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

lcytms 发表于 2017-2-7 16:15:13

本帖最后由 lcytms 于 2017-2-7 16:17 编辑

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

lcytms 发表于 2017-2-7 16:20:29

本帖最后由 lcytms 于 2017-2-7 16:22 编辑

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

lcytms 发表于 2017-2-7 16:23:31

本帖最后由 lcytms 于 2017-2-7 16:25 编辑

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

lcytms 发表于 2017-2-7 16:26:17

17.        保存。

lcytms 发表于 2017-2-7 16:27:15

18.        产生HDL文件。

lcytms 发表于 2017-2-7 16:28:27

19.        修正spi_three_wire.v文件。

lcytms 发表于 2017-2-7 16:30:19

本帖最后由 lcytms 于 2017-2-7 16:48 编辑

20.        保存并编译。

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 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

lcytms 发表于 2017-2-7 16:44:32

本帖最后由 lcytms 于 2017-2-7 16:46 编辑

进行分析综合检查。
进行仿真设置。
查看仿真结果。
当SCEN为0时,SPC的时钟有16个上升沿。
当传输结束时,SCEN为1,且ORDY为1。
仿真功能正确。
页: 1 2 3 4 [5] 6
查看完整版本: FPGA初级课程第二十一讲 SPI