verilog spi slave 错误记录二

使用 cs 引脚 触发 , 使用 gpio0 输出触发信号,使用 逻辑分析仪 观察输出信号, 了解 FPGA 工作逻辑!!! 我觉得这个功能 ,类似 C代码的 printf 啊 !!!

///////////////////////////////////////////////////////////////////////////////////////////////////
// Company: <Name>
//
// File: spi_slave.v
// File history:
//      <Revision number>: <Date>: <Comments>
//      <Revision number>: <Date>: <Comments>
//      <Revision number>: <Date>: <Comments>
//
// Description: 
//
// <Description here>
//
// Targeted device: <Family::SmartFusion2> <Die::M2S010S> <Package::144 TQ>
// Author: <Name>
//
/////////////////////////////////////////////////////////////////////////////////////////////////// 

`timescale 1ns / 1ps

module spi_slave(


    output wire led_1,       // pin_129 / 2.5V
    output wire mod1_gpio_0, // pin_93 / 3.3V

    input wire spi_cs,   // spi_cs / pin_90 / MOD1-4
    input wire spi_clk,  // spi_clk / pin_83 / MOD1-2
    input wire spi_mosi, 
    output wire spi_miso ); // spi_miso / pin_82 / MOD1-7
    
    reg spi_miso_reg;

    reg led_reg = 1'b0;
    
    always @( negedge spi_cs) begin
        if(!spi_cs) begin
            led_reg <= ~led_reg;
        end
    end
        
    assign spi_miso = spi_miso_reg;

    assign led_1 = led_reg;
    assign mod1_gpio_0 = led_reg;

endmodule

 

波形抓取如下:

image

 

分析 不理解,没有按照逻辑执行,  逻辑分析仪增加 spi_clk 监视后发现:

image

 

发现 SPI_CS 在传输时,存在毛刺, 我使用 杜邦线连接,难道影响了信号完整性???

 

如何在代码里, 消除这些毛刺 ?

 

 

可通过逻辑分析仪发现, spi_cs 引脚下拉2.5ns 后, gpio0 有动作,如下图:

 

image

 

posted on 2025-07-30 20:52  所长  阅读(11)  评论(0)    收藏  举报

导航