怎么用16位的数据线写一个32位的数?

[复制链接]
4299|24
charrijon 发表于 2012-11-29 23:02 | 显示全部楼层
总之怎么都存在一个握手的协议,看你怎么做合适了。可以加时间监视,譬如两次时间间隔超过10us,就认为第二次写是新的数据开始。
XiaoWei369 发表于 2012-11-30 15:12 | 显示全部楼层
总之怎么都存在一个握手的协议,看你怎么做合适了。可以加时间监视,譬如两次时间间隔超过10us,就认为第二次写是新的数据开始。
charrijon 发表于 2012-11-29 23:02
和猴哥说的一样。
GoldSunMonkey 发表于 2012-11-30 15:47 | 显示全部楼层
:shutup:
gregy_cn 发表于 2012-12-19 23:16 | 显示全部楼层
第一次写16bit进入缓冲区,第二次写16bit进入数据区同时自动将第一次写的16bit送入数据区。共需要写2次,占用48个D触发器。
tanghuihua 发表于 2012-12-20 14:48 | 显示全部楼层
SIGNAL TEMPBUF: STD_LOGIC_VECTOR(15 downto 0);
SIGNAL MYREG: STD_LOGIC_VECTOR(31 downto 0);
PROCESS(nRESET,nWE)
BEGIN
        IF nRESET = '0' THEN
                TEMPBUF <= X"0000";
                MYREG <= X"00000000";
        ELSIF nWE'EVENT AND nWE = '1' THEN
                IF Addr = LOADDR AND nCS = '0' THEN
                        TEMPBUF <= DATABUS;
                END IF;
                IF Addr = HIADDR AND nCS = '0' THEN
                        MYREG <= DATABUS & TEMPBUF;
                END IF;
        END IF;
END PROCESS;
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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