集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 1939|回复: 4

CPLD读取单片机数据

[复制链接]
usd 发表于 2010-6-26 01:10:35 | 显示全部楼层 |阅读模式
通过接收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
//基本显示功能下的形成原始地址
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//first begin
/////////////////存储操作//////////////////////////////////
[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
ICE 发表于 2010-6-26 02:38:02 | 显示全部楼层
LCD模组内部是个状态机,标志是CMD寄存器的值<br>
你先用modlesim模拟下,才好找问题啊,先不写RAM,先看状态机的运转正常不
usb 发表于 2010-6-26 04:07:25 | 显示全部楼层
另外你的乘法用移位来做,用的资源会更少
AAT 发表于 2010-6-26 05:45:09 | 显示全部楼层
能说具体点么/
Sunlife 发表于 2015-6-17 10:50:25 | 显示全部楼层

LCD模组内部是个状态机,标志是CMD寄存器的值<br>
你先用modlesim模拟下,才好找问题啊,先不写RAM,先看状态机的运转正常不
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

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

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

GMT+8, 2025-6-21 09:19 , Processed in 0.109373 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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