[VHDL] cpld写lcd的时序,第一次写vhdl,大家帮忙看看有问题没

[复制链接]
 楼主| zhubright 发表于 2013-9-18 12:59 | 显示全部楼层 |阅读模式
这是连线图

本帖子中包含更多资源

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

×
 楼主| zhubright 发表于 2013-9-18 13:00 | 显示全部楼层
这是时序,,T4=200ns,    T3=400ns,T3起始到T6起始的间隔为100ns,用的时钟周期是50ns.

本帖子中包含更多资源

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

×
 楼主| zhubright 发表于 2013-9-18 13:01 | 显示全部楼层
第一次写程序,对时序懵懵懂懂的,希望得到指点
这是程序
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity lcd is
  PORT ( LCD_RST: in std_logic;
         LCD_DIN: in std_logic_vector(7 downto 0);
LCD_CLK: in std_logic;
LCD_A0 : out std_logic;
LCD_A1 : out std_logic;
LCD_WR : BUFFER std_logic;
LCD_RD : out std_logic;
LCD_CS : BUFFER std_logic;
LCD_D  : out std_logic_vector(7 downto 0)
);
end lcd;
architecture Behave of lcd is
SIGNAL SIG_CON: integer range  0 to 15;
BEGIN
   process(LCD_RST,LCD_CLK,SIG_CON)
begin
   LCD_RD<='1';  ---读信号始终无效,只写不读
LCD_CS<='0';  ---片选信号可以一直是低吧?????????
if( LCD_RST='0' )then
if(LCD_CLK'event and LCD_CLK='0') then----------这里改成上升沿也行么????????
         SIG_CON <= SIG_CON + 1;
    end if;
if (SIG_CON=3) then
     LCD_D<=LCD_DIN;
end if;
IF (SIG_CON=5) THEn
      SIG_CON<=0;
   LCD_WR<=  NOT LCD_WR;
end if;
else   LCD_D <= "00000000";
end if;
end process;
end Behave;             
GoldSunMonkey 发表于 2013-9-18 21:25 | 显示全部楼层
zhubright 发表于 2013-9-18 13:01
第一次写程序,对时序懵懵懂懂的,希望得到指点
这是程序
library IEEE;

还是仿真一下吧
GoldSunMonkey 发表于 2013-9-18 21:25 | 显示全部楼层
我现在没有心思看代码了
huangxz 发表于 2013-9-18 23:20 | 显示全部楼层
GoldSunMonkey 发表于 2013-9-18 21:25
我现在没有心思看代码了

VHDL是比较难看懂的。
EDAbuffalo 发表于 2013-11-8 21:50 | 显示全部楼层
很多错。。看别人写的代码比看自己的麻烦的多啊。同意猴哥。。仿真一下全搞定
您需要登录后才可以回帖 登录 | 注册

本版积分规则

21

主题

244

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部