3396|2

60

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

vhdl奇偶校验电路中信号和变量的问题 [复制链接]

在下面的程序里面,我个人感觉tmp应该被定义为变量,而不能被定义为信号.因为变量赋值是没有延时的,而信号赋值有延时.造成tmp <= tmp XOR a(n);无法执行,因为没有初值.但是书中却定义为信号.请问各位,应该定义为什么呢.


LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY p_check IS
PORT (  a : IN  STD_LOGIC_VECTOR (7 DOWNTO 0);
          y : OUT STD_LOGIC );
END p_check;
ARCHITECTURE opt OF p_check IS
   SIGNAL tmp :STD_LOGIC ;
BEGIN
  PROCESS(a)
    BEGIN
     tmp <='0';
     FOR n IN 0 TO 7 LOOP
      tmp <= tmp XOR a(n);
     END LOOP ;
      y <= tmp;
     END PROCESS;
    END opt;

最新回复

说的很清楚,谢谢.  详情 回复 发表于 2009-3-29 22:53
点赞 关注

回复
举报

78

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
问题多了去了,这是什么书呀,误人子弟。

1. VHDL是描述硬件的,信号和变量只是代码级的描述,一个变量也可能是最终电路里的线或者寄存器,很难说一定是个什么,完全和电路逻辑有关,和数据类型没什么关系。
2. 信号有延时这个是语法级的概念,所有的线和门在最终电路里都有延时。
3. 在RTL仿真里面,信号的赋值在下一个delta时间更新。
4. For应该尽量避免,他会直接将电路打散,这里n=0~7,所以会生成8个xor门。
5. 你说的不能执行完全是仿真的说法。电路哪有不能执行的。
6. 无法仿真的原因是你的测试激励没有给a赋初值。没有初值的量为X,X xor X还是X,没有变化。

用var声明一个内部变量来做这个for确实会好理解一些,但是效果是一样的。如果我写,我会声明变量。
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
说的很清楚,谢谢.
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表