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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 10986|回复: 10

[求助] VHDL同一进程中对变量多次赋值,在Verilog中如何表述

[复制链接]
发表于 2013-8-3 16:52:45 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
VHDL中在同一个process中对变量进行多次赋值,在verilog中怎么转过来进行表示,
     是在always中进行if...elseif...elseif....else...吗?还是别的方法表述,求高手指点 !
发表于 2013-8-3 19:39:52 | 显示全部楼层
if、case、assign
发表于 2013-8-3 20:03:07 | 显示全部楼层
不知道有没有VHDL2VERILOG的软件。
 楼主| 发表于 2013-8-3 20:48:53 | 显示全部楼层
回复 3# chen.terry 软件有,但是只是转语法,一些逻辑相关的东西是没有转的,很弱
 楼主| 发表于 2013-8-3 21:19:38 | 显示全部楼层
回复 2# HADIST

1、case语句感觉还行2、if语句有优先级,那这个优先级可以理解为按在同一个进程中对变量多次赋值的顺序,第一次赋值是最高优先级,第二次赋值是第二优先级,以此类推吗?
3、assign赋值,也是有优先级的,和我在2的表达一样的吗?
    感谢您的回答!
发表于 2013-8-3 21:23:26 | 显示全部楼层
回复 5# wangbo19852008


   都是有优先级的,case也有
 楼主| 发表于 2013-8-3 22:07:47 | 显示全部楼层
回复 6# HADIST

那优先级的顺序,是和变量赋值的顺序一致吗?谢谢
 楼主| 发表于 2013-8-3 22:14:05 | 显示全部楼层
回复 6# HADIST

转成verilog的if优先级和VHDL中多次赋值的变量中的顺序一致吗?比如下面的v.triggered中的两次赋值,就按这个上下顺序进行if..elseif...转换吗?谢谢您的回答!-- positive pulse trigger

if ctrlIn.trigger_cond = positivePulse then

if r.rtick = '1' then

v.pulsescan    := '1';


v.pulsewidth   := (others => '0');

end if;



if r.pulsescan = '1' and r.pulse = '1' then

v.pulsewidth := r.pulsewidth + 1;

end if;


if r.ftick = '1' then

v.pulsescan    := '0';


if (r.greatThanMin and r.lessThanMax) = '1' then

v.triggered      := '1';

end if;

end if;

end if;

-- negative pulse trigger

if ctrlIn.trigger_cond = negativePulse then

if r.ftick = '1' then

v.pulsescan    := '1';


v.pulsewidth   := (others => '0');

end if;


if r.pulsescan = '1' and r.pulse = '0' then

v.pulsewidth := r.pulsewidth + 1;

end if;


if r.rtick = '1' then

v.pulsescan    := '0';


if (r.greatThanMin and r.lessThanMax) = '1' then

v.triggered      := '1';

end if;

end if;


end if;
发表于 2013-8-4 10:50:41 | 显示全部楼层
回复 8# wangbo19852008
我看到你的v.triggered是在两个不同的if语句里面赋值的。在process里面的code是顺序执行的。
 楼主| 发表于 2013-8-4 18:49:06 | 显示全部楼层
回复 9# HADIST


     在同一个process语句中code是顺序执行,我明白。我的v.triggered值确实是在两个不同的if语句中,我问的意思是:我在verilog中转换v.triggered变量时,将v.triggered在同一个always中赋值,并把v.triggered定义为reg信号,这个时候也要用if语句来赋值,那这个时候的优先级是按在VHDL中两个if语句的那个顺序吗?谢谢您的回答?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

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

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