在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
123
返回列表 发新帖
楼主: Paul_Lee

写VHDL程序时想到的一个问题,请指教,if (clk'event and clk=0)

[复制链接]
发表于 2010-6-4 19:44:33 | 显示全部楼层
楼上说的“都是平行执行的”,在process中是串行的吧
发表于 2010-6-10 21:46:24 | 显示全部楼层
我觉着glenchan 说法正确。
发表于 2010-6-15 12:25:38 | 显示全部楼层
本帖最后由 hsiangantw 于 2010-6-15 12:27 编辑

“process” 内顺序执行指的是逻辑层面上,合成工具为正确理解设计者的意思而言,并非实际硬件电路上具有 ”顺序执行” 的特性。

例如:

process  (a, b)
begin
   if a=’0’ then
      c <= b;
   else
      c <= not b;
   end if;
end process;

就concurrent电路的角度来看,在一块电路中,同时将c设为b,与not b是自我矛盾的。但是就process内来看,则受到a的条件制约,在a = ‘0’ 的条件成立时,与不成立时,分别指定不同的信号。

合成时,会以一由信号a选择的双输入multiplexer切换选择b与not b的信号,并将multiplexer的输出指定给c。
亦即,若将MUX的输入与输出关系给考虑进来,就能正确理解电路的功能:

MUX_SEL <= a;        -- multiplexer SELECT input
MUX_IN0 <= b;        -- multiplexer IN0, enabled if MUX_SEL = ‘0’
MUX_IN1 <= not b;  -- multiplexer IN1, enabled if MUX_SEL = ‘1’
c <= MUX_O;           -- multiplexer output

实际硬件电路上,b与not b这两条路径的运算,分别有各自独立的电路,在信号b进入模块后是同时执行的。

此时,电路的最长时间延迟,包括一个not 闸,与一个MUX的delay。最短时间延迟,则仅包括一个MUX。

这种现象,与透过CPU或micro-controller顺序执行程序代码的概念有很大的不同。

另一个例子如:
process ( clk )
begin
   if clk’event and clk=’0’ then
      if a=’0’ then
         c <= b;
      else
         c <= not b;
      end if;
   end if;
end process;

在这个电路中,由于指定了下降沿产生变化的信号c,所以会infer一个register存储组件。
但是,此时multiplexer的输出就不会直接指定给c,实际上是指定给register的输入,经过clk触发后的register输出才接到c。

此时电路的最长时间延迟,包括not、MUX与一个FF。

此时就牵涉到clk的period时间长度、输入信号a、b、运算所需时间、register的setup与hold time等时序上的问题。

进一步又牵涉到输入信号a, b的来源是asynchronous或synchronous、clock domain、clock skew、net delay等问题。深入的话就谈不完了。

但是针对顶层所提的问题来讲,确实:
1.        时序电路在process里面,确实要考虑到clock period timing与运算延迟的问题。但是,各别的信号路径所产生的运算延迟,是分开计算的,而非依序迭加计算的。
2.        换句话说,发生信号延迟无法满足时序要求的时候,首要针对最长路径来作分析与优化。
3.        最后,每一条路径的运算都是同时在进行的,这跟CPU执行软件的概念有很大的差异,要特别留意的。
4.        最后的最后,注意实务上每个模块彼此间的信号交连的过程中,除频率频率外还牵涉到时域差异的问题,设计时间没考虑清楚的话,在模拟与测试过程中易有各种奇怪的意外发生。
发表于 2010-6-20 23:49:10 | 显示全部楼层
个人认为楼主的问题在于,楼主将vhdl当作C语言去分析了。其实PROCESS对应的是一块电路,而不是一段程序。写这个代码的时候你要明白这是个什么电路,自然就不会当作C语言去分析了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-23 12:15 , Processed in 0.027813 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表