打印
[ZLG-ARM]

FPGA 异步与同步

[复制链接]
1001|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
黑发尤物|  楼主 | 2011-10-29 21:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
使用EDK中的emc IP核,设置为异步,两个bank。一个控制FLASH,一个控制外部地址空间传参数。Cen为片选信号,Mem_DQ_I 为emc的数据输入总线,DQ_0和DQ_1分别为flash的数据和emc的回读数据
第一种写法:Mem_DQ_I <= DQ_0 when (cen(0)='0') else (others=>'Z');
                  Mem_DQ_I <= DQ_1 when (cen(1)='0') else (others=>'Z');

第二种写法:Mem_DQ_I <= DQ_0 when (cen(0)='0') else
                                        DQ_1 when (cen(1)='0') else
                                        (others=>'Z');

第三种写法:      process(clk,rst)
                        begin
                                if (rst ='0') then
                                        Mem_DQ_I <=(others=>'Z');
                                elsif (clk 'event and clk ='0') then
                                        if (cen(0)='0') then
                                                Mem_DQ_I<= DQ_0;
                                        elsif (cen(1)='0') then
                                                Mem_DQ_I<= DQ_1;
                                        end if;
                                end if;
                        end process;

关于这段代码我有几个疑问:
1.        第一种写法,结果会不会有冲突?
2.        第一种和第二种写法最终的编译效果有区别吗?
3.        第二种写法和第三种写法一个异步,一个同步,有师兄给我的指导经验是:最好使用同步,少用异步。大家的看法呢?

相关帖子

沙发
yoyowodeai| | 2011-10-29 21:45 | 只看该作者
少用异步必须的

使用特权

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

本版积分规则

0

主题

890

帖子

2

粉丝