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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2154|回复: 7

[求助] 求组Assign多路写法,急急急!!!

[复制链接]
发表于 2014-5-21 11:50:01 | 显示全部楼层 |阅读模式
10资产
我想在中间变量messg0 == 1'b1的时候,吧波形p_clk 赋值给输出,以此类推,然后我的写法是这样的,

assign led_out = (messg0 == 1'b1)  ? p_clk : 1'b0;
assign led_out = (messg1 == 2'b01) ? clk_trad_one : 1'b0;
assign led_out = (messg1 == 2'b10) ? clk_mo : 1'b0;
assign led_out = (messg2 == 2'b01) ? clk_msec : 1'b0;

    在ISE中进行综合时提示:ERROR:Xst:528 - Multi-source in Unit <aa> on signal <led_out>; this signal is connected to multiple drivers.
    说是多次赋值了,要怎么写才可以实现我需要的功能!!!    菜鸟求教~拜谢~~!!

最佳答案

查看完整内容

assign led_out = (messg0 == 1'b1) ? p_clk : (messg1 == 2'b01) ? clk_trad_one : (messg1 == 2'b10) ? clk_mo: (messg2 == 2'b01) ? clk_msec :1'b0;
发表于 2014-5-21 11:50:02 | 显示全部楼层
assign led_out = (messg0 == 1'b1)  ? p_clk :
                            (messg1 == 2'b01) ? clk_trad_one :
                            (messg1 == 2'b10) ? clk_mo:
                            (messg2 == 2'b01) ? clk_msec :1'b0;
 楼主| 发表于 2014-5-21 12:05:22 | 显示全部楼层
回复 2# hao3081


   谢谢了。
发表于 2015-3-19 16:15:55 | 显示全部楼层
学习学习...
发表于 2015-3-19 16:51:08 | 显示全部楼层
也可以写成:
always@(*)
begin
if (messg0 == 1'b1)
    led_out = p_clk ;
else if (messg1 == 2'b01)
    led_out = clk_trad_one ;
else if (messg1 == 2'b10)
    led_out = clk_mo ;
else if (messg2 == 2'b01)
    led_out = clk_msec ;
else
    led_out = 1'b0 ;                                                                           
end
发表于 2015-3-20 14:47:33 | 显示全部楼层
你这个多次赋值了的嘛,肯定会报错嘛
发表于 2015-3-20 14:48:42 | 显示全部楼层
二楼和五楼的写法都可以
发表于 2015-3-21 02:09:52 | 显示全部楼层
其实楼主的写法,在一些综合器下是可以的,但是不建议你那么写
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-5-26 18:46 , Processed in 0.025077 second(s), 6 queries , Gzip On, Redis On.

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