verilog写了个spi的写模块 2021-09-28

晚上用verilog写了个spi的写模块,一开始综合竟然各种报错,不过还好全是接口的小问题,另外发现对发送位的计数的时候不要总是减1去判断,+1更符合逻辑啊,-1实在是太绕来绕去了。只是判断时就需要判断i是不是等于一个正整数,这个可能对时序要求高一些,不过spi时钟频率比较低,问题应该不大把。下次有空把读的模块也写一下做仿真把。

ps:写代码时发现了复位信号的作用,把状态机复位到idle状态,不然寄存器的值不确定,状态机一开始就不知道在什么状态了。

`timescale 1ns / 1ps
//
// Company: 
// Engineer: 
// 
// Create Date: 2021/09/28 21:41:12
// Design Name: 
// Module Name: spi_wr
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//


module spi_wr(
    input clk_50M,
    input wren,
//    output spi_ready,
    input sys_rst,
    input[7:0] wr_add,
    input[7:0] wr_data,
    output csb_n,
    output pdwn,
    output sclk,
    inout dataio
    );
    reg isout;
    reg pdwn;
    reg csb_n;
    reg sclk;
    reg dataout;
    assign dataio=isout?dataout:1'bz;
    
   
上一篇:[网鼎杯2018]Unfinish


下一篇:Python做数据分析(一)分析社区超市运营数据,自动更新促销时间