搜索
bottom↓
回复: 3

关于cpld和cpu的通讯问题

[复制链接]

出0入0汤圆

发表于 2012-7-6 16:33:49 | 显示全部楼层 |阅读模式
绝对的初学者。
我想实现这样一个功能:cpu给cpld发四个地址,cpld接收到地址后根据不同地址给数据总线赋不同的值,把值送给cpu。
我完全是按书上语法来写的,查错编译综合也都通过了,但下到cpld里就是传不了数,用仿真器在cpu里读不到数。
对应的引脚都连好了,UCF的定义也没问题。哪位好心的高手能指导我一下。。。
如果有好的学习方法也欢迎指导。。。我以前接触的硬件主要是画原理图和PCB图或者做手工焊板子。。。
现在学fpga,除了看书,就是照着例子写代码,下到芯片里实验。但写好的代码实现不了功能,我很迷茫。。。
十分感谢路过的各位!

`define SctrByte0 8'h00  //定义地址
`define SctrByte1 8'h01  
`define SctrByte2 8'h02
`define SctrByte3 8'h03

module transmit(DataBus,AddressBus,WE,OE,CS1,inclk);
input [7:0] AddressBus;  //地址总线                    
input WE;                   //cpu写使能
input OE;                   //cpu读使能
input CS1;      
input inclk;                 //cpld时钟
inout [7:0] DataBus;    //数据总线

reg pre_rd;
reg [7:0] DataReg = 8'b00000000;  
reg [7:0] AddressReg;

assign DataBus = DataReg;

always @(posedge inclk)
begin
if (CS1 == 0 && WE == 0)
begin
AddressReg <= AddressBus;     //cpu向cpld写地址
end
end

always @(posedge inclk)
begin
if (OE == 0)
begin
pre_rd <= 1;
end
else
begin
pre_rd <= 0;
end
end

always @(posedge inclk)
begin
if (pre_rd)
        begin
        case(AddressReg)                       //根据不同地址赋值
        `SctrByte0:
        begin
        DataReg <= 8'b00000011;
        end
                                       
        `SctrByte1:
        begin
        DataReg <= 8'b00001100;
        end
                                       
        `SctrByte2:
        begin
        DataReg <= 8'b00110000;
        end
                                       
        `SctrByte3:
        begin
        DataReg <= 8'b11000000;       
        end
        endcase
        end
   else
begin
DataReg <= 8'bzzzzzzzz;
end
end

endmodule

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

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

出0入442汤圆

发表于 2012-7-6 20:36:56 | 显示全部楼层
谁告诉你Reg可以赋值'bz?你自己发明的吧。或者就是你的书是你写的。还有可能是你看的是讲的仿真的。给一个端口赋值的方法是assign Port = (PortEN)? RegData : 'bz;

出0入0汤圆

发表于 2012-7-6 22:22:38 | 显示全部楼层
你的CPU和CPLD的通信方式是什么?不理解

出0入0汤圆

发表于 2012-7-7 19:17:55 | 显示全部楼层
用的什么板子,管脚约束可别错
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-7-24 09:25

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

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