在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2150|回复: 0

CPLD 读取单片机数据

[复制链接]
发表于 2007-9-11 11:26:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

x
最近在做液晶驱动,里面的一部分是:我通过接收51单片机的nWE信号来开始接收地址和数据,可是检验后发现数据没有读到RAM中去,能帮我分析一下么?
module TFT(clk,A,D,nCS3,nWE,nOE,
            VD_L,VD_H,
            VA,VOE,VCE,VWE,UE,LE);
input clk;
input [1:0]A; //address
input [7:0]D; //data
input nCS3,nWE,nOE;
inout [7:0]VD_L; //ram's low data line
inout [7:0]VD_H; // ram's high data line
output[15:0]VA;  //ram's address line
output VOE,VCE,VWE,UE,LE; //ram's control signal
reg [15:0]VA;
reg [15:0]ADDR;
reg VOE,VCE,VWE,UE,LE;
reg [7:0]VD_L;
reg [7:0]VD_H;
//定义四个寄存器变量!
reg [7:0]CMD;
reg [7:0]Y;
reg [7:0]DAT;
             //二个X值得高低寄存器.
reg [7:0]D_XL;
reg [7:0]D_XH;
reg [1:0]D_LH;//用于判断X的高低八位
//用于标志功能的位!
reg [8:0]i;
reg [2:0]cyc_cnt;

//////////////////单片机的写操作///////////////////////
[email=always@(posedge]always@(posedge[/email] nWE)
begin
if(A==2'b10)
begin
CMD=D;//根据不同的CMD值来看是显示,清平还是八点写!
i=0;
end
//////////这一部分用于输入的X,Y,Data值///////////////////
else if(A==2'b00)//X时分为高低八位,要分别处理!
begin
D_LH=D_LH+1;
if(D_LH==1)
D_XL=D;
else  //D_LH=2;
begin
D_XH=D;
D_LH=0;
i=0;//用于多点连写的标志
end
end
else if(A==2'b01)//Y只有八位
begin
Y=D;
i=0;//用于多点连写的标志
end
else //(A==11)
begin
//基本显示功能下的形成RAM的原始地址
DAT=D;
if(Y<117)
begin
ADDR=Y*234+D_XH*256+D_XL;
end
else
ADDR=(Y-117)*234+D_XH*256+D_XL;
i=i+1;
end
end//

/////////////////存储操作(61lv6416)//////////////////////////////////
[email=always@(posedge]always@(posedge[/email] clk)
begin
VCE=0;
LE=0;
UE=0;
if(cyc_cnt==2)
begin
VWE=1;
VA=ADDR+i;
if(Y<117)
VD_L=DAT;
else
VD_H=DAT;
end
if(cyc_cnt==4)
begin
VWE=0;
cyc_cnt=0;
end
cyc_cnt=cyc_cnt+1;
end
endmodule
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-27 20:54 , Processed in 0.034597 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表