99问答网
所有问题
VHDL 下如何实现在if语句下运行process?
例如:
else
process(XXX)
xxxx
VHDL总是报错,如何实现?
举报该问题
推荐答案 推荐于2016-08-12
在VHDL中,if是顺序语句,而process是并行语句。process语句的目的就是将顺序语句描述的电路模块构造成一个并行语句放在
结构体
中,因此顺序语句是放在进程(process)或者子程序中的,而进程或者子程序内部是不能出现并行语句的。所以
if语句
中是不可能出现process语句的,这有违硬件并行工作的原理。
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://99.wendadaohang.com/zd/WjXBBOOOO.html
其他回答
第1个回答 2010-11-17
不可以吧,楼主应该把条件放到process结构里面。应该是在一个process下根据条件选择这样运行或那样运行,而不是根据条件执行process。
第2个回答 2010-11-14
If 是要在Process里面才能用的,在VHDL没有把process嵌套在if里面的用法,你把你要实现 的功能附上来,让大家来帮你分析分析应该怎样做
第3个回答 2010-11-14
没这写法。
process都是由process后面括号里面的敏感信号触发的,也就是每当括号里面的敏感信号发生变化都会激活进程。
那你想想用if语句触发进程,是不是可以把if条件里面的信号放到process()括号里面来呢。
也可以用if语句来产生一个中间信号,用这个中间信号来做为process的敏感信号。
注意vhdl都是由很多的进程组成的。当然也有些组合逻辑语句写在进程外面,每条语句也就相当于一个进程,与其他的process都是并行的。
楼上的:你的QQ是多少啊?找你好久了。哪里有vhdl,哪里就有你啊,哈哈!
本回答被网友采纳
第4个回答 2010-11-15
楼主你还是好好学一下vhdl语法吧!那个大那个小得先看好了啊!
相似回答
VHDL
语言的
IF语句
答:
IF语句
最常用
在process
进程里面,不能直接放在结构体中,结构体可改为:-- Architecture Body ARCHITECTURE adder_architecture OF adder IS BEGIN
PROCESS
(a,b,ci)BEGIN IF(a='0' and b='0' and ci='0') THEN s<='0'; co<='0';END IF;END PROCESS ;END adder_architecture;...
vhdl中如何在process
的
if语句
中调用定义的component
答:
过程是可以共享的进程,过程中的
语句
与进程中的语句一样,只能是顺序语句,而元件例化语句是并行语句,不能够出现在过程中。你的描述:if(。。。)then u0:multi port map ();不符合硬件设计的规律。你的描述用文字来表达就是:如果某个条件成立,则硬件中就有元件multi,否则硬件中就没有这个元...
vhdl
语言中什么情况需要用
process
答:
一些语句必须在进程内执行,例如:if,case,when语句等。所以用process语句。process是进程语句 process语句之间是并行执行的
,而进程内部语句之间是顺序执行的,进程之间通过信号量传递来实现通信。process语句的执行靠敏感信号变化来激发。格式为:[进程名称]PROCESS 语句 [敏感信号表];[说明语句;]BEGIN 顺...
VHDL
语言中 将CLK 频率 改变
语句怎么
写
process
(Clk) begin
if
(Clk...
答:
CLK频率改变可以用计数器
实现
,如下current_sta就是五位的计数器,计数到“11111”就是进行64分频,clk_s就是你需要的频率,其值=CLK/64
process
(Clk)begin if(Clk'event and Clk='1') then if current_sta="11111" then clk_s <= not clk_s;current_sta<="00000";else current_sta<=...
VHDL
语言 怎么理解并行
语句
和
PROCESS
的区别
IF怎么
用 求详解 可以追加...
答:
就是说一个结构体可以包括多个
PROCESS
,它们之间是并发执行的,而每个PROCESS内部是顺序执行的。不知道是不是你想要的答案。至于
IF语句
,我觉得和C++什么的差不多呢。就是 IF(条件)THEN (顺序语句);ELSIF(条件)THEN (顺序语句);……ELSE (顺序语句);END IF;建议你弄本书来看啊,
VHDL
其实...
VHDL
程序解释
答:
clkdiv <= (others => '0');elsif(rising_edge(clk)) then --否则在时钟上升沿到来 clkdiv <= clkdiv + 1; clkdiv+1 end if; --
if语句
结束 end
process
; ---进程结束 这段进程就是
实现
clkdiv的计数功能,在清零信号clr有效时,对clkdiv清零,否则加1 ...
用VHDL的if语句
设计一个4位D触发器
答:
ENTITY dff_4 IS PORT(clk: IN bit;d: IN bit_vector(3 DOWNTO 0);q,q_n: OUT bit_vector(3 DOWNTO 0));END dff_4;ARCHITECTURE bhv OF dff_4 IS SIGNAL q_s: bit_vector(3 DOWNTO 0);BEGIN
PROCESS
(clk)BEGIN IF clk'event AND clk='1' THEN q_s <= d;END IF;END ...
vhdl
语言关于
if语句
的问题。
答:
else if(b'event and b='1')then if(counter="0000")then counter<="1111";else counter<=counter-'1';end if;end if;end if;end if;end
process
;end behav;你试试这个 我觉得 A、B是要有优先级的 不然A和B 同时产生上升延时 COUNTER是加1还是减1?这个编译通过了 没仿真 你看看先 ...
VHDL
语言 用
if语句
写8-3优先编码器 在线等 急!!
答:
PROCESS
(ei_n,d)BEGIN IF(ei_n = ′1′)THEN eo_n <= ′1′;gs_n <= ′1′;a <= ″111″; -- 不允许当前编码器编码 ELSIF(d= B″1111_1111″)THEN eo_n <= ′0′;gs_n <= ′1′;a <= ″111″; -- 当前编码器无码可编 ELSE eo_n <= ′1′;gs...
大家正在搜
vhdl process语句
sprocess里退火语句
process语句必须
process语句中必须加上
process语句的特点
process语句里面信号
if语句属于什么语句
if…else语句
Loop语句
相关问题
在VHDL语言中,我想用if和process的结合,怎么实现...
vhdl中如何在process的if语句中调用定义的comp...
vhdl语言中什么情况需要用process
VHDL中,在process中的if(clk'event a...
VHDL 语言问题 在process里面 1 if语句块和2...
VHDL语言 怎么理解并行语句和PROCESS的区别 IF怎...
VHDL中process的语句问题
我想问下我的vhdl程序的process语句的问题