搜索
bottom↓
回复: 1

FPGA通信问题请求帮助。。

[复制链接]

出0入0汤圆

发表于 2012-2-3 13:40:57 | 显示全部楼层 |阅读模式
有个想法在实施过程中遇到坎了,悲剧了就。。。
想用fpga控制运动部分,ARM负责运算和界面。fpga和arm之间数据不多,但是要高速。

于是我想直接用总线方式控制,我只要在fpga内部建立几个内存空间就好,arm可以读写,fpga本身也可以读写,达到数据交换的目的。。。。我是用nios做的。

在编译程序的时候就悲剧了。

先奉上程序,现在只写了 arm写,nios总线读的部分 就出问题了

module ddram(
        reset_n,
        clk,
        chipselect,
        address,
        write,
        writedata,
        read,
        byteenable,
        readdata,
        wr,//arm写
        rd,//arm读
        datain,//数据
        addr,//地址
        ctr//片选
        );

input clk;
input reset_n;
input chipselect;
input [1:0]address;
input write;
input [31:0] writedata;
input read;
input [3:0] byteenable;
output [31:0] readdata;

input wr;
input rd;
input ctr;
input [7:0] datain;
input [3:0] addr;

reg [31:0] x_reg;
reg [31:0] y_reg;   
reg [31:0] z_reg;
reg x_reg_selected;
reg y_reg_selected;
reg z_reg_selected;
reg [31:0] readdata;


always @ (address)
begin
                      x_reg_selected<=0;
                      y_reg_selected<=0;
                      z_reg_selected<=0;
                      case(address)
                                   2'b00:x_reg_selected<=1;
                                   2'b01:y_reg_selected<=1;
                                   2'b10:z_reg_selected<=1;
                                  default:
                                         begin
                                                x_reg_selected<=0;
                                                y_reg_selected<=0;
                                                z_reg_selected<=0;
                                         end
                       endcase
end           

always @ (address or read or x_reg or y_reg or z_reg or chipselect)
    begin
            if(read & chipselect)
                        case(address)
                                2'b00:readdata<=x_reg;
                                2'b01:readdata<=y_reg;
                                2'b10:readdata<=z_reg;
                                default:readdata=32'h8888;
                    endcase       
end
       

       
always @ (posedge clk or negedge reset_n)
begin
                if(reset_n==1'b0)
                    begin
                                x_reg=32'h0000;
                                y_reg=32'h0000;
                                z_reg=32'h0000;
                    end
                else
                    begin
                                if(ctr==1'b0)
                                                if(wr==1'b0)
                                                                       case(addr)
                                                                                    4'b0000:x_reg[7:0]  = datain[7:0];
                                                                                    4'b0001:x_reg[15:8] = datain[7:0];
                                                                                    4'b0010:x_reg[23:16]= datain[7:0];
                                                                                    4'b0011:x_reg[31:24]= datain[7:0];
                                                                                    4'b0100:y_reg[7:0]  = datain[7:0];
                                                                                    4'b0101:y_reg[15:8] = datain[7:0];                                                                       
                                                                                    4'b0110:y_reg[23:16]= datain[7:0];
                                                                                    4'b0111:y_reg[31:24]= datain[7:0];
                                                                                    4'b1000:z_reg[7:0]  = datain[7:0];                                                       
                                                                                    4'b1000:z_reg[15:8] = datain[7:0];                                                       
                                                                                    4'b1000:z_reg[23:16]= datain[7:0];
                                                                                    4'b1000:z_reg[31:24]= datain[7:0];                                                       
                                                                                    default:
                                                                                         begin
                                                                                                 x_reg=32'h8888;
                                                                                                 y_reg=32'h8888;
                                                                                                 z_reg=32'h8888;
                                                                                          end
                                                                         endcase       

                        end
end      
endmodule



在加入软核的时候报错如下

(原文件名:报错.jpg)

不知道如何解决了。。。

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2012-2-3 23:12:39 | 显示全部楼层
你的 SOPC 是定義有錯,少很多東西。
      
        s_irq,
        s_chipselect_n,
        s_read_n,
        s_write_n,
        s_address,
        s_readdata,
        s_writedata,
        
     
        m_waitrequest,   //表示無法接受新的讀寫操作
        m_address,       //讀寫操作的位址
        m_read,          //讀信號
        m_readdata,      //讀出去的資料
        m_write,         //寫信號
        m_writedata,     //寫進來的數據
        m_byteenable,    //位元組有效信號
        m_burstcount,    //顯示需要burst的資料數量
        m_readdatavalid, //返回資料有效信號

一般使用 ARM 與 FPGA溝通就好,NIOS II 有仲裁機制增加自己問題多。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 11:29

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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