找回密码
 注册
搜索
查看: 830|回复: 3

[讨论] 新人求教,应该是一个简单的问题

[复制链接]
发表于 2008-8-15 16:51:41 | 显示全部楼层 |阅读模式
硬件情况:
    每一个时钟的上升沿,在8位的数据总线上都会有一个有效数据。
目的:
    在8位数据总线上的数据流中节取 以(0xFFD8)开头 ,以(0xFFD9)结尾的一段数据放在缓冲RAM中
问题:
    如何判断连续的两个时钟上沿时数据总线的数据是否(0xFFD8)或(0xFFD9)。
    这个时序如何用VHDL表示?

下面这个是我写的一段。我知道不对,但是我不知道应该如何写。请高手帮忙。
process (clkin)
        begin
           if rising_edge(clkin) then       
                if( Data_bus = "11111111" )then     -- (0xFF)
                                              FF_flag <= '1';
                end if;
        end if;
end process;                       

process (clkin)
        begin
        if rising_edge(clkin) then       
                if( Data_bus = "11011000" )then            -- (0xD8)
                                      if(FF_flag = '1') then
                                            HEAD_OF_FILE_FLAG <= '1';
                                      end if;
                end if;
        end if;
end process;
发表于 2008-8-16 07:56:39 | 显示全部楼层
这个程序你用FSM来写是很简单的,建议你用FSM来写.在第一种状态下判断FF,在第二种状态下判断D8,一次类推,每一种状态对应一个数据脉冲。
点评回复

使用道具 举报

 楼主| 发表于 2008-8-18 10:09:18 | 显示全部楼层
谢谢 nicerain

我试试,有问题在请教。[em01]
点评回复

使用道具 举报

 楼主| 发表于 2008-8-19 16:41:51 | 显示全部楼层
请问“每一种状态对应一个数据脉冲“。这个如何实现,我是个初学者,
能否解释的稍微详细一点。
谢谢 nicerain ,有时候对于初学者一个简单的问题可能会很迷茫。希望各位能够多多帮助。




[em14]
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-11-27 22:47 , Processed in 0.046661 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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