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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

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

[求助] verilog代码求助,太菜鸟,自己搞很久不懂

[复制链接]
发表于 2015-11-19 09:42:01 | 显示全部楼层 |阅读模式

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

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

x
刚学verilog,用vivado设计RS encoder的top,如图,alpha5,10,11,14都是已经写好了,如图,现在代码一直报错,我又不知道错在哪里,求教, rs.jpg





  1. module top(
  2. input [7:0] datain,
  3. output [15:0] dataout
  4. );
  5. wire [3:0]A1, [3:0]B1, [3:0]R1, [3:0]S1, [3:0]R11, [3:0]R12,[3:0]S11;
  6. alpha5 (R11[3:0], A1[3:0]);
  7. alpha11 (R12[3:0], B1[3:0]);
  8. alpha10 (S11[3:0], A1[3:0]);
  9. alpha14 (S12[3:0], B1[3:0]);
  10. xor (R1[3:0], R11[3:0], R12[3:0]);
  11. xor (S1[3:0], S11[3:0], S12[3:0]);
  12. assign datain[7:0]={A1[3:0],B1[7:4]};
  13. assign dataout[15:0]={A1[3:0],B1[7:4],R1[11:8],S1[15:12]};
  14. endmodule


复制代码



对verilog和vivado都是在太不熟悉
发表于 2015-11-19 10:17:30 | 显示全部楼层
模块alpha和xor的端口顺序要对应。
12.assign datain[7:0]={A1[3:0],B1[3:0]};
13.assign dataout[15:0]={A1[3:0],B1[3:0],R1[3:0],S1[3:0]};
发表于 2015-11-19 10:58:12 | 显示全部楼层
本帖最后由 418478935 于 2015-11-19 11:06 编辑

楼上说的对
楼主你的 B1 R1 和 S1 声明的位宽是 4-bit ,bit索引是[3:0],但是你使用它们时的索引已经超出了你的声明范围,你使用时应该是
B1[3:0]  R1[3:0]  S1[3:0]

不过楼主你还是把EDA工具提供的错误信息贴出来比较好
发表于 2015-11-19 15:03:45 | 显示全部楼层
回复 1# yyixx

datain是输入信号,是不能给赋值的

assign datain = ....; 这里是有问题的
 楼主| 发表于 2015-11-19 22:13:07 | 显示全部楼层
本帖最后由 yyixx 于 2015-11-19 22:27 编辑

回复 4# harry_hust


   说对了,按楼上改了syntax error是没有了,但综合的时候出错,datain这里的确有问题,请问这里input将8bits数据分成两个4bits数据怎么改?[Synth 8-3352] multi-driven net b14[0] with 2nd driver pin 'GND' ["E:/vivado_project/RS/RS.srcs/sources_1/new/alpha11.v":27]
[Synth 8-3352] multi-driven net b14[0] with 1st driver pin 'i_1/i_3/O' ["E:/vivado_project/RS/RS.srcs/sources_1/new/alpha11.v":27]
[Synth 8-5559] multi-driven net b14[0] is connected to constant driver, other driver is ignored ["E:/vivado_project/RS/RS.srcs/sources_1/new/alpha11.v":27]
[Synth 8-4485] pin datain[7] is connected to multiply driven net where other driver is constant
[Common 17-69] Command failed: Vivado Synthesis failed

前三个warning,后两个是error
发表于 2015-11-19 22:39:39 | 显示全部楼层
回复 5# yyixx


   datain[7:0]分成两个4bit信号可以直接用datain[7:4]和datain[3:0].错误信息说的是datain的第7bit(datain[7])有多个驱动,意思是有多个信号都接到这一bit上了,是有问题的。
发表于 2021-11-4 05:59:39 | 显示全部楼层
thanks for your sharing
发表于 2021-11-4 10:25:25 | 显示全部楼层
6楼正解,datain是输入信号,错误是存在mutiply driven,即信号存在多驱动,应该是assign A1 = datain[3:0];assign B1=datain[7:4];

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

本版积分规则

关闭

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

×

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

GMT+8, 2024-5-22 01:57 , Processed in 0.032346 second(s), 11 queries , Gzip On, Redis On.

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