新人刚用modelsim仿真,编译通过了,但是还是没有办法仿真,求助各位大佬!

2019-07-15 20:37发布

写的是一个十进制转六进制,再转成8421码的代码,但是仿真时出现了,# ** Error: G:/FPGA/test/work_1_3/Convert_6BCD_tb.v(23): (vopt-2135) Too many port connections. Expected 2, found 4.
#
# Optimization failed
# Error loading design
这个问题,端口太多是哪里的端口太多,实在搞不懂,百度也百度不到问题,请各位帮帮忙,代码如下
  1. `timescale 1ns / 1ns

  2. module Convert_6BCD(numInput, numOutput);
  3. input [2:0] numInput;
  4. output [11:0] numOutput;

  5. reg [2:0] munsix;
  6. reg [11:0] numOutput;
  7. reg [1:0] tempi;

  8. always@(numInput)
  9. begin
  10.         munsix[0]<=numInput[0]%6;
  11.         munsix[1]<=(numInput[0]/6)%6;
  12.         munsix[2]<=((numInput[0]/6)/6)%6;
  13. end
  14. always@(numInput)
  15. begin  
  16.         #10 numOutput[0]<=munsix[0]%2;
  17.         #10 numOutput[1]<=(munsix[0]/2)%2;
  18.         #10 numOutput[2]<=((munsix[0]/2)/2)%2;
  19.         #10 numOutput[3]<=(((munsix[0]/2)/2)/2)%2;
  20.         #10 numOutput[4]<=munsix[1]%2;
  21.         #10 numOutput[5]<=(munsix[1]/2)%2;
  22.         #10 numOutput[6]<=((munsix[1]/2)/2)%2;
  23.         #10 numOutput[7]<=(((munsix[1]/2)/2)/2)%2;
  24.         #10 numOutput[8]<=munsix[2]%2;
  25.         #10 numOutput[9]<=(munsix[2]/2)%2;
  26.         #10 numOutput[10]<=((munsix[2]/2)/2)%2;
  27.         #10 numOutput[11]<=(((munsix[2]/2)/2)/2)%2;
  28. end
  29. endmodule
复制代码
  1. `timescale 1ns / 1ns

  2. module Convert_6BCD_tb;
  3. reg [2:0] numInput;
  4. reg [2:0] munsix;
  5. wire [11:0] numOutput;
  6. reg [1:0] tempi;

  7. initial
  8. begin
  9.         numInput=3'd0;
  10.         munsix=3'd0;
  11.         for(tempi=2'd1;tempi<11;tempi=tempi+1)
  12.                 #10 numInput={$random}%100;
  13. end

  14. Convert_6BCD dut
  15. (        
  16.         .numInput   (numInput),
  17.         .munsix     (munsix),
  18.         .numOutput  (numOutput),
  19.         .tempi          (tempi)
  20.         );        
  21. endmodule
复制代码

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
2条回答
chen030
2019-07-15 23:26
你的Convert_6BCD里边只有
input [2:0] numInput;
output [11:0] numOutput;
输入输出一共两个

例化的时候
Convert_6BCD dut
(        
        .numInput   (numInput),
        .munsix     (munsix),
        .numOutput  (numOutput),
        .tempi          (tempi)
        );
用到了四个

所以会有Expected 2, found 4.  这个错误。
最佳答案

一周热门 更多>