在Verilog中未解析对'FULLIDAL'的引用

编程入门 行业动态 更新时间:2024-10-24 04:52:29
本文介绍了在Verilog中未解析对'FULLIDAL'的引用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我在尝试运行模拟时遇到一些问题。在我的第三个模块中,我的前两个模块的实例似乎有问题。代码编译正常,但在尝试运行模拟时遇到问题。

我不确定问题出在我的代码中还是我的测试工作台中。

module fulladder ( input [15:0] x, input [15:0] y, output [15:0] O ); assign O = y + x; endmodule module shifter ( input [15:0] in, input [2:0] N, output [15:0] O ); reg [7:0] out_reg; assign O = out_reg; always @(N or in) begin case (N) 7 : out_reg <= { in[7:0],7'b0}; 6 : out_reg <= { in[7:0],6'b0}; 5 : out_reg <= { in[7:0],5'b0}; 4 : out_reg <= { in[7:0],4'b0}; 3 : out_reg <= { in[7:0],3'b0}; 2 : out_reg <= { in[7:0],2'b0}; 1 : out_reg <= { in[7:0],1'b0}; 0 : out_reg <= in[7:0]; endcase end endmodule module my_multiplier(Rst, Ld, clk, A, B, O); input clk; input [7:0]A, B; input Rst, Ld; output [15:0] O; reg Done; reg [15:0] Otemp; reg [15:0] O; reg [7:0] Atemp; reg [1:0] state; reg [1:0] C; parameter S0 = 2'b00, S1 = 2'b01, S2 = 2'b10, S3 = 2'b11; always @(posedge clk or posedge Rst) begin case(state) S0: begin Done <= 0; if (Ld == 1) begin C <= 0; Atemp <= A; state <= S1; end else state <= S0; end S1: if (B[C] == 1) begin shifter ( A, C, Atemp); O <= Otemp; C <= C + 1; state <= S2; end else begin Atemp <= 0; O <= Otemp; C <= C + 1; state <= S2; end S2: begin O <= Otemp; if (C == 3) state <= S3; else state <= S2; end S3: begin Done <= 1; state <= S0; end default state <= S0; endcase fulladder (Atemp, O, Otemp); end endmodule module my_multiplier_tb; reg clk_tb; reg [7:0]A_tb, B_tb; reg Rst_tb, Ld_tb; wire [15:0] O_tb; my_multiplier dut( Rst_tb, Ld_tb, clk_tb, A_tb, B_tb, O_tb ); always #5 clk_tb = ~clk_tb; initial begin A_tb = 8'd8; B_tb = 8'd7; #15 Ld_tb = 1; // set Load to begin multiplication #10 Ld_tb = 0; // wait 1 clock cycle #300 $monitor($time, " A=%d, B=%d, O=%d", A_tb, B_tb, O_tb); $finish; end endmodule 推荐答案

问题在my_multiplier模块中,您有多个语法错误。如果您在edaplayground 上注册了一个免费帐户并在那里发布了您的代码,您可能会在那里看到更多有用的编译错误。

不能将模块实例放置在always块中。这两行必须移到always:

之外 fulladder (Atemp, O, Otemp); shifter ( A, C, Atemp);

完成后,需要添加实例名称,如下面的i0和i1:

fulladder i0 (Atemp, O, Otemp); shifter i1 ( A, C, Atemp);

更多推荐

在Verilog中未解析对&#39;FULLIDAL&#39;的引用

本文发布于:2023-11-12 20:37:53,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1582475.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:中未   Verilog   amp   FULLIDAL

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!