(三)验证代码
设计完Master端和Slave端的代码之后,我们需要对功能块进行验证,检查是否能正常工作。Testbanch的设计主要分为几个主要部分:
① 声明端口类型(模块的输入输出变量);
② 生成时钟,根据你设定的来,这里我们采用的是200Mhz的clk,所以一个周期为5ns,则每经过2.5ns就要进行一次数值反转;
③ 生成驱动(给数据),先reset初值然后再给值,这里需要定义一些task,从而来生成所需格式的数值;
④ 定义task,这个在uart中也是有的;
⑤ 定义检测模块,判断读到的read_data和输入的值是否一致,从而判断SPI整体的设计是否OK;
⑥ 实例化master和slave
1)代码实现
module test;
reg clk_200mhz;
reg rstn;
reg[11:0] cmd_in;
reg cmd_valid;
wire cmd_ready;
wire sclk,csn,mosi,mis