微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 问:process中敏感变量问题?

问:process中敏感变量问题?

时间:10-02 整理:3721RD 点击:
在我的程序中有这样一个要求:地址由外部给定,然后根据这个地址加1送出,有时还要保持(就是不加一)。但是要求外部地址一有变化就得传到过来,用什么样的敏感变量能实现这样的功能?
我这样做的:
CFG_ADDR:IN STD_LOGIC_VECTOR(5 DOWNTO 0);
LAST_ADDR:OUT STD_LOGIC_VECTOR(5 DOWNTO 0));
.
SIGNAL ORI_ADDR:STD_LOGIC_VECTOR(5 DOWNTO 0);
.
PROCESS(CFG_ADDR)
BEGIN
IF CFG_ADDR'EVENT THEN
ORI_ADDR<=CFG_ADDR;
END IF;
END PROCESS;
但是不行。

问:process中敏感变量问题?
如果只从仿真的角度来说,你把那个IF行去掉都可以了,地址一有变化,就可以进入这个进程。
但是如果从硬件实现的角度来说,这个功能实现起来很麻烦。而且一般都是靠另外的地址有效信号来实现,如果没有这种信号,光从地址来判断是不可取的。
另外,EVENT只对单一信号起作用,不能用向量。

问:process中敏感变量问题?
那可不可以这样,假设有两个信号:
IF CFG_ADDR(0)'EVENT AND CFG_ADDR(1)'EVENT THEN
..................
...................................

问:process中敏感变量问题?
不可以,硬件上无法实现

问:process中敏感变量问题?
CFG_ADDR:IN STD_LOGIC_VECTOR(5 DOWNTO 0);
LAST_ADDR:OUT STD_LOGIC_VECTOR(5 DOWNTO 0));
.
SIGNAL ORI_ADDR:STD_LOGIC_VECTOR(5 DOWNTO 0);
.
ORI_ADDR<=CFG_ADDR;

问:process中敏感变量问题?
不需用进程,直接赋值就可以呀

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top