yygyyygy 发表于 2011-5-24 20:51:51

【疑问】VHDL的一个简单程序的思考

程序如下:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;

ENTITY delta IS
PORT
(
        A,B,C,D:IN BIT;
        U,V,W,X,Y,Z:BUFFER BIT
);
END delta;

ARCHITECTURE delta OF delta IS
BEGIN
Z <= NOT Y;
Y <= W OR X;
X <= U OR V;
W <= U AND V;
V <= C OR D;
U <= A AND B;
END delta;

仿真图:
http://cache.amobbs.com/bbs_upload782111/files_39/ourdev_642584VT79V8.png
(原文件名:QQ截图未命名.png)

不明为啥Y、Z的变化会在U的前面??

arokh 发表于 2011-5-24 22:41:06

是行为仿真还是时序仿真?

yygyyygy 发表于 2011-5-25 11:21:18

回复【1楼】arokh 圆圆的饭团
-----------------------------------------------------------------------

时序仿真吧,

怎样做行为仿真??

xw11221122 发表于 2011-5-31 16:07:02

回复【楼主位】yygyyygy
-----------------------------------------------------------------------
我也是刚学FPGA,对于VHDL刚开始了解,对于楼主的问题,我个人觉得首先要理解一个概念:VHDL是硬件描述语言,他不同于C语言之类。他是并行执行的,不像C语言是时序的。从这个观点看,楼主虽然定义了U<=A and B,楼主的概念是Y是随着U的改变而改变的,但是在硬件上来看不一定是这样,这是个组合逻辑,U只是阐述A,B与Y的关系,而不是一个变量把A,B的值逐次赋给U然后递交给Y,硬件描述后,可能会出现一个Y与A,B,C,D之间的一个直接的组合逻辑,而并不经过U。不知道我这样的理解,楼主觉得怎么样?
页: [1]
查看完整版本: 【疑问】VHDL的一个简单程序的思考