发新帖我要提问
12
返回列表
打印

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

[复制链接]
楼主: jlgcumt
手机看帖
扫描二维码
随时随地手机跟帖
21
charrijon| | 2012-11-29 23:02 | 只看该作者 回帖奖励 |倒序浏览
总之怎么都存在一个握手的协议,看你怎么做合适了。可以加时间监视,譬如两次时间间隔超过10us,就认为第二次写是新的数据开始。

使用特权

评论回复
22
XiaoWei369| | 2012-11-30 15:12 | 只看该作者
总之怎么都存在一个握手的协议,看你怎么做合适了。可以加时间监视,譬如两次时间间隔超过10us,就认为第二次写是新的数据开始。
charrijon 发表于 2012-11-29 23:02
和猴哥说的一样。

使用特权

评论回复
23
GoldSunMonkey| | 2012-11-30 15:47 | 只看该作者
:shutup:

使用特权

评论回复
24
gregy_cn| | 2012-12-19 23:16 | 只看该作者
第一次写16bit进入缓冲区,第二次写16bit进入数据区同时自动将第一次写的16bit送入数据区。共需要写2次,占用48个D触发器。

使用特权

评论回复
25
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;

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则