集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 2589|回复: 7

夏宇闻老师,各位前辈高人,FPGA 与DSP并口通信的问题

[复制链接]
jessie9940509 发表于 2011-12-21 19:32:17 | 显示全部楼层 |阅读模式
夏宇闻老师,各位前辈高人:
我正在做FPGA 与DSP并口通信,就是把FPGA 当做SRAM一样的读写,但是仿真不对,麻烦给看看代码,哪里的问题呢?


module CommandOperate(resetcommandmainprocess,
                                          DSP_DATA,DSP_ADDR,dsp_we,dsp_rd,cs_fpga,
                                          LED1);
input              resetcommandmainprocess;
input                 dsp_we,dsp_rd,cs_fpga;
inout[15:0]  DSP_DATA;
input[12:8]         DSP_ADDR;
output                LED1;//LED2;
/////////////////////////////////////////
reg[15:0]         Reg_LED1;//Reg_LED2;
reg[15:0]         rd_data;

        always @(posedge dsp_rd or posedge resetcommandmainprocess )
                begin
                        if (resetcommandmainprocess) begin
                                rd_data  <= 16'bzzzz_zzzz_zzzz_zzzz;
       
                        end
                        else if (( DSP_ADDR[12:8] == 5'b11000)&&(cs_fpga == 0))
                                 rd_data  <= Reg_LED1;
            else rd_data  <= 16'bzzzz_zzzz_zzzz_zzzz;

                end
assign DSP_DATA=rd_data ;               
///////////////////////////////////////////////
always @(posedge dsp_we or posedge resetcommandmainprocess)
                begin
                        if (resetcommandmainprocess)begin
                                 Reg_LED1<=16'h0000;
                                 end
                        else if(( DSP_ADDR[12:8] == 5'b11000)&&(cs_fpga == 0))
                                 Reg_LED1<= DSP_DATA;

                end
assign LED1=1'b1;//Reg_LED1[0];                               
endmodule
 楼主| jessie9940509 发表于 2011-12-21 19:33:03 | 显示全部楼层
在线等待,已经搞了两天了。
 楼主| jessie9940509 发表于 2011-12-21 22:05:23 | 显示全部楼层
module CommandOperate(
                      DSP_RSTn,//Inputs from MAX811
                                RDn,
                                WEn, //from DSP2812
                                DSP_DATA,
                                DSP_ADDR,
                                CS0AND1n,
/////////////////////////////////////////
                                LD
                                );
////////////////////////////////////////////
input               DSP_RSTn;//Inputs from MAX811
input                        RDn;
input                        WEn; //from DSP2812
inout                        [15:0]DSP_DATA;
input                        [12:0]DSP_ADDR;
input                        CS0AND1n;
/////////////////////////////////////////
output[15:0]                        LD;
////////////////////////////////////////////////////////
reg[15:0]  LED;
///////////////////////
reg [15:0]rd_data;
///////////////////////////////////////////////////
always @(posedge RDn or posedge DSP_RSTn )
                begin
                        if (DSP_RSTn) begin
                                rd_data <= 16'bzzzzzzzzzzzzzzzz;
       
                        end
                        else if (( DSP_ADDR[12:0] == 13'b0000000000001)&& (CS0AND1n == 0 ))
                                 rd_data[15:0]<=LED[15:0];
            else rd_data <= 16'bzzzzzzzzzzzzzzzz;

                end
assign DSP_DATA=rd_data;
///////////////////////////////////////////////
always @(posedge WEn or posedge DSP_RSTn )
                begin
                        if (DSP_RSTn) begin
                                LED[15:0] <= 0;
                        end
                        else if (( DSP_ADDR[12:0] == 13'b0000000000001 )&& (CS0AND1n == 0 ))
                                 LED[15:0]<= DSP_DATA[15:0];
                end

assign LD=LED;                                                                                               
endmodule
这是最新的代码,还是不行,第二次读数据,就错了,data[0]上面的数据没有了,不对了
 楼主| jessie9940509 发表于 2011-12-21 22:06:19 | 显示全部楼层
就是这样,LD是我要的数据

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
至芯兴洪 发表于 2011-12-23 20:09:07 | 显示全部楼层
你的数据流乱起八糟的,由于你的代码有问题,数据存在冲突,当然没有数据
白开水的噩梦 发表于 2011-12-25 14:34:51 | 显示全部楼层
感觉你写的很混乱
suifeng0868 发表于 2011-12-25 16:13:14 | 显示全部楼层
你直接用内部的核不就行了,Quartus里面有内部RAM核可以调用啊。
suifeng0868 发表于 2011-12-25 16:13:28 | 显示全部楼层
你直接用内部的核不就行了,Quartus里面有内部RAM核可以调用啊。
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2025-8-19 23:40 , Processed in 0.071945 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表