打印
[verilog]

Verilog 代码,问题出在哪,小白求助,在线等

[复制链接]
1202|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 zhaironghui 于 2015-10-22 11:25 编辑

大家好,接触 Verilog 时间不长,遇到一个问题,真心求教。谢谢
背景:想把 AD 输出的 8 位并行数据在 CPLD 中进行并串转换,并在 DSP 提供的 串行时钟 CLKR1 和 帧同步(片选)信号 FSR1 的控制下,将串行数据经 DR1 引脚输出
问题:综合能通过,但经过波形仿真,DR1 输出的数据总是不对

代码如下:
//
module spi(
        output reg clk_ad,

   //SPI_1,方向:CPLD-->DSP        
        output reg DR1,
        input FSR1,
        input CLKR1,
        
        input clk_in,
        input [7:0]data_in       //AD输入cpld的8位数据
        );
        
        reg[4:0]temp;
//add        
        reg[7:0]data_to_dsp;     //用于数据缓存
        reg[8:0]data_to_dspp;

//AD的时钟由有源晶振4分频得到,10/4=2.5M
always @(posedge clk_in) begin
        temp<=temp+1'd1;
        if(temp==1)
                begin
                        clk_ad<=~clk_ad;
                        temp<=0;
end

        else
                        clk_ad<=clk_ad;
end

//AD输入到CPLD的数据转移到寄存器data_to_dsp中
always @(posedge clk_ad) begin
        data_to_dsp<=data_in;               
end

//CPLD到DSP的SPI实现(SPI1)
always @(negedge CLKR1) begin
        if(!FSR1)
                        begin
                                  data_to_dspp[8:0] <= {data_to_dsp[7:0],1'b0};
                                DR1 <= data_to_dspp[8];
    end
end

endmodule

相关帖子

沙发
feihufuture| | 2015-10-22 12:08 | 只看该作者
将实现简化说下

使用特权

评论回复
板凳
zhaironghui|  楼主 | 2015-10-22 14:14 | 只看该作者

我波形仿真的时候,给 FSR1 的是 2.5MHz (频率跟 clk_ad 一样),给 CLKR1 的是 40MHz

波形仿真.png (16.26 KB )

波形仿真.png

使用特权

评论回复
地板
feihufuture| | 2015-10-22 15:03 | 只看该作者
DR1是啥管脚

使用特权

评论回复
5
zhaironghui|  楼主 | 2015-10-22 15:49 | 只看该作者

是我定义的 SPI 协议中的数据输出引脚,可能定义的不规范

使用特权

评论回复
6
简单happy| | 2015-11-11 15:05 | 只看该作者
路过来学习的

使用特权

评论回复
7
玄德| | 2015-11-11 21:36 | 只看该作者

又碰到一个不考虑复位问题的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

71

帖子

1

粉丝