未连接的端口-Verilog 综合错误

如何解决未连接的端口-Verilog 综合错误

我正在综合我的 RTL,但我一直收到错误“警告:在设计中‘DasisyChain3’端口‘m1_data[7]’未连接到任何网络 (LINT-28)。我不知道为什么它会告诉我这个。我在我的设计中包含了所有模块,它代表了 SPI 协议的某种简化版本。我有一个从主机和 DaisyChain 模块,它是我的顶级模块,是菊花链的实现。

module DaisyChain3(output [7:0] s1_buff,s2_buff,s3_buff,input EN,CLK,input [7:0] m1_data,s1_data,s2_data,s3_data);

    wire SCLK,CS,MOSI;
    wire s1_SOMI,s2_SOMI,s3_SOMI;

    SPIMaster m1(SCLK,MOSI,EN,s3_SOMI,m1_data);
    SPISlave s1(s1_SOMI,s1_buff,SCLK,s1_data);
    SPISlave s2(s2_SOMI,s1_SOMI,s2_data);
    SPISlave s3(s3_SOMI,s3_data);

endmodule

module SPIMaster(output reg SCLK,MISO,input [7:0] m_data);
    wire master_out;
    reg [4:0] count,count1,count2;
    wire [7:0] data_buff;
    wire SCLK1;
    reg master_in,c_sw,k,state,load;
    reg k1,load1;
    shiftReg register_out (master_out,data_buff,load,(~SCLK1),master_in,m_data);
assign SCLK1 = (~c_sw) | CLK;
    always@(posedge CLK) begin
        if(state) begin
            if (k == 1) begin
                state <= 0;
                c_sw <= 0;
                CS <= 1;
                count <= 0;
                k <= 0;
                load <= 0;
            end
            else begin
                state <= 1;
                c_sw <= 1;
                CS <= 0;
            end
        end
        else begin
            if (EN) begin
                state <= 1;
                c_sw <= 1;
                CS <= 0;
                count <= 0;
                k <= 0;
                load <= 1;
            end
        end
            count <= count1;
            load <= load1;
            k <= k1;
    end
    always@(posedge SCLK1) begin
        load1 <= count;
        count1 <= count;
        if (CS == 0) master_in <= MISO;
        if (count1 == 7) begin
            load1 <= 0;
        end
        else if (count1 == 15)begin
            load1 <= 0;
        end
        else begin
            load1 <= 1;
        end
        count1 <= count2;
    end
    always@(negedge SCLK1) begin
        count2 <= count1;
        k1 <= k;
        if (count2 == 23) k1 <= 1;
        else k1 <= 0;
        if (CS == 0) begin
            MOSI <= master_out;
            count2 <= count2 + 1;
        end
    end
endmodule
module SPISlave(output reg SOMI,output [7:0] data_buff,input SIMO,input [7:0] s_data);
    wire clk;
    reg slave_in;
    wire slave_out;
    shiftReg register_out (slave_out,(~CS),clk,slave_in,s_data);
    assign clk = SCLK | CS;
    always@(posedge clk) begin
        slave_in <= SIMO;
    end
    always@(negedge clk) begin
        SOMI <= slave_out;
    end
endmodule

module shiftReg(output shift_out,output reg [7:0] data_buff,input shift_write,shift_in,input [7:0] data);

    reg [7:0] buffer;
    assign shift_out = buffer[7];
    assign buffer[0] = shift_in;
    always@(posedge clk) begin
        if(shift_write == 1) begin
            buffer <= {buffer[6:0],shift_in};
        end
    end
    always@(shift_write) begin
        if(shift_write == 0) begin
            data_buff <= buffer;
            buffer <= data;
        end
    end

endmodule

解决方法

在您之前的消息中,您忘记发布 shiftReg 的代码。它就在这里,它有一个错误,这可能是造成上一个问题的原因,也可能是这个问题的原因。

您的问题是您有多个 (3) 个用于 buffer 的驱动程序:

    assign buffer[0] = shift_in; <<< driver 1
    always@(posedge clk) begin
        if(shift_write == 1) begin
            buffer <= {buffer[6:0],shift_in}; <<< driver 2
        end
    end
    always@(shift_write) begin
        if(shift_write == 0) begin
            data_buff <= buffer;
            buffer <= data;  <<< driver 3
        end
    end

您有触发器、锁存器和组合逻辑驱动相同的信号。您需要确保信号由单个 always 块驱动。目前您有未定义的模拟行为,混淆了合成器和 linter(它也是一个合成器)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams[&#39;font.sans-serif&#39;] = [&#39;SimHei&#39;] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -&gt; systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping(&quot;/hires&quot;) public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate&lt;String
使用vite构建项目报错 C:\Users\ychen\work&gt;npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-
参考1 参考2 解决方案 # 点击安装源 协议选择 http:// 路径填写 mirrors.aliyun.com/centos/8.3.2011/BaseOS/x86_64/os URL类型 软件库URL 其他路径 # 版本 7 mirrors.aliyun.com/centos/7/os/x86
报错1 [root@slave1 data_mocker]# kafka-console-consumer.sh --bootstrap-server slave1:9092 --topic topic_db [2023-12-19 18:31:12,770] WARN [Consumer clie
错误1 # 重写数据 hive (edu)&gt; insert overwrite table dwd_trade_cart_add_inc &gt; select data.id, &gt; data.user_id, &gt; data.course_id, &gt; date_format(
错误1 hive (edu)&gt; insert into huanhuan values(1,&#39;haoge&#39;); Query ID = root_20240110071417_fe1517ad-3607-41f4-bdcf-d00b98ac443e Total jobs = 1
报错1:执行到如下就不执行了,没有显示Successfully registered new MBean. [root@slave1 bin]# /usr/local/software/flume-1.9.0/bin/flume-ng agent -n a1 -c /usr/local/softwa
虚拟及没有启动任何服务器查看jps会显示jps,如果没有显示任何东西 [root@slave2 ~]# jps 9647 Jps 解决方案 # 进入/tmp查看 [root@slave1 dfs]# cd /tmp [root@slave1 tmp]# ll 总用量 48 drwxr-xr-x. 2
报错1 hive&gt; show databases; OK Failed with exception java.io.IOException:java.lang.RuntimeException: Error in configuring object Time taken: 0.474 se
报错1 [root@localhost ~]# vim -bash: vim: 未找到命令 安装vim yum -y install vim* # 查看是否安装成功 [root@hadoop01 hadoop]# rpm -qa |grep vim vim-X11-7.4.629-8.el7_9.x
修改hadoop配置 vi /usr/local/software/hadoop-2.9.2/etc/hadoop/yarn-site.xml # 添加如下 &lt;configuration&gt; &lt;property&gt; &lt;name&gt;yarn.nodemanager.res