ANG 发表于 2010-6-28 00:35:17

一个用cpld控制sram读写的程序,请高手指点一下!

下面是我写的一段用于控制对外部设备进行写操作的代码,希望先送读信号,再送地址,数据和使能暂时没送,做到这里,仿真时出现问题,为什么写信号变高后就不再变低了啊?高手指点一下要怎么用cpld控制sram的读写时序啊?

ENTITY sram IS
PORT (
   wr: OUT STD_LOGIC;
   clk : IN STD_LOGIC;
   adr : OUT STD_LOGIC_VECTOR ( 7 DOWNTO 0 )
);
END sram;

ARCHITECTURE behav OF sram IS
signal adr_in :integer;
BEGIN

RD_WR:PROCESS( clk )
BEGIN

   IF ( clk 'EVENT AND clk ='1' )THEN
      wr <= '0' ;
       adr <= CONV_STD_LOGIC_VECTOR ( adr_in,8);--转换成矢量型
       adr_in <= adr_in + 1;--送地址,并加一
       wr <= '1' after 20ns;
    END IF;
END PROCESS ;

END

HANG 发表于 2010-6-28 02:30:46

真郁闷,怎么都没有人会指点一下吗?

VVIC 发表于 2010-6-28 03:50:39

综合器一般不支持时间 20ns 不能编译

encounter 发表于 2010-6-28 04:31:36

wr &lt;= '1' after 20ns<br>
可以综合吗?

HDL 发表于 2010-6-28 05:20:59

延时不可综合,建议可使用状态机

404549377 发表于 2012-3-15 15:32:58

这个得用状态机吧,我最近也在做一个sram读写,都是要分读写状态的

zombes 发表于 2012-3-15 21:42:11

能不能把工程文件共享下,分享光荣!

wochuoqi7 发表于 2012-3-16 18:22:19

这个很明显啊
页: [1]
查看完整版本: 一个用cpld控制sram读写的程序,请高手指点一下!