打印

VHDL求助!!!!

[复制链接]
2123|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
huang8033|  楼主 | 2010-4-18 17:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
程序一:
library ieee;
use ieee.std_logic_1164.all;
entity text1 is
    port(a0,a1,b:in std_logic;
                  sel:in std_logic;
              result:out std_logic);
end text1;

architecture art of text1 is
   signal temp:std_logic;
begin
   process(a0,a1,b,sel)
        begin
             if(sel='0')then
                    temp<=a0;
             else
                    temp<=a1;
             end if;
             result<=temp and b;  --在process里面
     end process;
end art;
程序二:
library ieee;
use ieee.std_logic_1164.all;
entity text2 is
   port(a0,a1,b:in std_logic;
                 sel:in std_logic;
              result:out std_logic);
end text2;
architecture art of text2 is
   signal temp:std_logic;
begin
    process(a0,a1,sel)
       begin
             if(sel='0')then
               temp<=a0;
             else
               temp<=a1;
              end if;
      end process;
      result<=temp and b;    --在process外面
end art;
     这两个程序在时序上我认为是有区别的。但是为什么两个程序的时序仿真图是一样的呢? 并且生成的RTL也是一样的,哪位高手能帮我解释一下,谢谢了!

相关帖子

沙发
mr.king| | 2010-4-18 21:36 | 只看该作者
组合电路

使用特权

评论回复
板凳
patrick007| | 2010-4-19 08:39 | 只看该作者
应该没区别。
1,敏感列表会加快仿真速度,基本不会对综合的结果产生影响。
2,result信号,在仿真程序中,都是在process过程结束后,才被改变。
3,如果你在text1中使用变量,并且在if中对变量的值进行判断;然后在text2中继续使用信号,然后在if中队信号的值进行条件判断,这时应该会看到区别。这个差别对仿真是“敏感”的,但对综合不一定(但我想95%以上应该是敏感的)。
3,这两个text在仿真程序的运算过程中,是不一样的,但是逻辑结果是一样的,综合的结果应该也是一样的。

根据我的经验:
1,学HDL,尽量先搞清楚最基本的硬件结构的HDL写法。比如各种门,比较器,mux,计数器,FSM等等。
抛弃“编程”的想法,你在描述。过了这步,你在仿真里看到的结果,基本就是综合后,电路的结果了。

2,使用EDA的时候,去读厂家的文档,搞清楚厂家针对每种电路的模板,做完这步,基本上会做出该平台下最有效率的电路。而且基本不会综合出你不知道的东西。

3,回过头来,再考虑第一步,再总结一遍,基本上做平台无关的电路描述就没什么大问题了。

仿真是仿真,综合是综合,这两个东西有一些差别。搞清楚这一点。
记住上面三点。

使用特权

评论回复
地板
patrick007| | 2010-4-19 08:46 | 只看该作者
综合过程有点类似编译。
和模板一样的东西,会综合成模板电路,保证是你想要的东西。
和模板不一样的,会分析逻辑,然后优化,然后map成同样逻辑功能的库里的电路。
如果你“语言用的太离谱”,或者当C一样用,最后就可能和你想要的不一样。

这也是为什么有些人抱怨,明明仿真看着正确,最后硬件功能异常,半天也搞不清楚问题在哪的原因之一。
尤其电路中有时序关系的情况。

使用特权

评论回复
5
sleepybear| | 2010-4-19 09:56 | 只看该作者
“硬件描述语言”,“硬件”是核心,“语言”是载体,“描述”是过程。

使用特权

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

本版积分规则

1

主题

19

帖子

1

粉丝