verilog当中仿真的时候赋值用=还是<=

news2024/9/21 22:44:27

【总结:<=是所有数据同时变化,而=是顺序执行。如果是左边数据的赋值都是不关联的,那么就可以用<=,使所有赋值同时有效。如果有a和b都需要赋值,且b的值跟a有关的同时还需要一起变化,那么可以用=】

一般情况下可以用<=,因为如果信号需要寄存打一拍,如果给的激励刚好打在要寄存那一拍的时钟上,可能从仿真波形看不出来打拍

比如要实现以下逻辑:(也就是b_sig_reg_sync_pos比b_sig_s_1晚一拍

 always @(posedge input_b_clk_sig)
    begin
      if (input_b_rst_ogsr == 1'b1)
        begin
          b_sig_reg_sync_pos <= 0;
        end
      else if (input_b_ce_sig == 1'b1)
        begin
      if(REG2_INPUTB_BYP=="ENABLED")
            b_sig_reg_sync_pos <= b_sig_s_1;
      else
        b_sig_reg_sync_pos <= b_sig_reg_sync_pos_r;
        end
    end

最开始的输入来自din_0_B (从tb激励里面给)

1.直接用“=”进行赋值,并没有寄存一拍

 

 task generate_signals;

        input integer num_sets;

        integer i;

        begin

            for (i = 0; i < num_sets; i = i + 1) begin

                @(posedge Clock)

                begin

                din_0_B = i + 1;

                end

                #100;

            end

        end

    endtask

2.直接用“<=”进行赋值,有寄存一拍

 

 task generate_signals;

        input integer num_sets;

        integer i;

        begin

            for (i = 0; i < num_sets; i = i + 1) begin

                @(posedge Clock)

                begin

                din_0_B <= i + 1;

                end

                #100;

            end

        end

    endtask

注:(还要一种方式是)

 @(posedge Clock)

  Begin

  #10;

    din_0_B = i + 1;

     end

    #100;

那么数据就会在上升沿之后错过一点点有效,最后的结果也会是在下一个上升沿发生变化

3.用时钟下降沿去赋值,会在下一个时钟上升沿来的时候变化,相当于打半拍

 

task generate_signals;

        input integer num_sets;

        integer i;

        begin

            for (i = 0; i < num_sets; i = i + 1) begin

                @(negedge Clock)

                begin

                din_0_B <= i + 1;

                end

                #100;

            end

        end

    endtask

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2055660.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++ UML 使用 doxygen 生成源码类图

一&#xff1a;安装 sudo apt install doxygensudo apt install doxygen-guisudo apt install graphviz graphviz-doc 二&#xff1a;使用 命令行输入 doxywizard&#xff0c;打开图形界面 参考&#xff1a; https://www.cnblogs.com/guohaoblog/p/15151353.html

探秘:哪些项目需要代理IP来助力?

网络爬虫&#xff1a;数据采集的秘密武器 网络爬虫是互联网世界中的“数据矿工”&#xff0c;它们在网络中不断爬行&#xff0c;采集各种有用的信息。然而&#xff0c;频繁的访问请求很容易引起目标网站的警觉&#xff0c;甚至被封禁。此时&#xff0c;代理IP就像是爬虫的“隐…

Springboot发邮件功能如何实现?详细步骤?

Springboot发邮件配置指南&#xff1f;如何集成Spring Mail发邮件&#xff1f; 无论是用户注册、密码重置还是重要通知的发送&#xff0c;邮件都是不可或缺的沟通方式。Springboot作为一个流行的Java开发框架&#xff0c;提供了简洁易用的方式来实现邮件功能。AokSend将详细探…

LLM的一些基础知识:参数和内存估计

介绍&#xff1a; 基于 Transformer 架构的大型语言模型 (LLM) 已变得越来越普遍。例如&#xff0c;Mistral AI 团队推出了Mistral 7B 模型。了解其推理、微调和训练的内存需求对于高效部署和利用至关重要。 总结&#xff1a; 推理内存估算&#xff1a;对于 70 亿参数模型 (…

安装docker 遇到异常Could not resolve host: mirrorlist.centos.org; 未知的错误

问题 安装docker 遇到异常 Could not retrieve mirrorlist http://mirrorlist.centos.org/?release7&archx86_64&repoos&infrastock error was 14: curl#6 - “Could not resolve host: mirrorlist.centos.org; 未知的错误” 1、安装Docker依赖包 yum install …

机器学习第十二章-计算学习理论

目录 12.1基础知识 12.2 PAC学习 12.3有限假设空间 12.3.1可分情形 12.3.2不可分情形 12.4VC维 12.5 Rademacher复杂度 12.1基础知识 计算学习理论研究的是关于通过"计算"来进行"学习"的理论&#xff0c;即关于机器学习的理论基础&#xff0c;其目的…

数据分析实操案例分享:制造企业如何对订单数据进行BI分析?

提到数据分析&#xff0c;大家可能首先想到的是它在零售行业的应用&#xff0c;它能够助力商家实现精准营销&#xff0c;从而带来盈利。 事实上&#xff0c;数据分析的重要性已经扩展到制造业&#xff0c;它在该行业中的作用日益凸显。它能够帮助生产管理者迅速识别异常&#…

零基础也能看懂的五大网络安全技术,学网络安全真的可以很简单

网络安全技术是保护网络不受未经授权访问、破坏或盗取信息的重要手段。以下是五种零基础也能看懂的网络安全技术&#xff1a; 1.防火墙技术&#xff1a;防火墙是一种网络安全设备&#xff0c;用于监控和控制进入或离开网络的流量。它可以识别不安全的数据包&#xff0c;并阻止…

使用vs配置opencv环境(属性表方法)

opencv官网&#xff1a;https://opencv.org/releases/ 老手回忆&#xff08;新建属性表&#xff09; Step1: 安装VS&#xff0c;安装openCV Step2: 新建项目&#xff0c;新建项目属性表&#xff0c;debug|x64新建属性&#xff0c;命好名字 Step3: VC目录-包含目录中添加: 安装…

How can i wait for the actual reply of an openai-assistant? (Python OpenAI API)

题意&#xff1a;如何等待 OpenAI 助手的实际回复&#xff1f;&#xff08;Python OpenAI API&#xff09; 问题背景&#xff1a; I am interacting with the openai assistant API (python). so far, it works well. but sometimes the api returns the message i sent to th…

算法的学习笔记—包含 min 函数的栈(牛客JZ30)

&#x1f600;前言 在日常编程中&#xff0c;栈是一种常见的数据结构&#xff0c;具有后进先出的特点。它支持基本的操作如 push&#xff08;入栈&#xff09;、pop&#xff08;出栈&#xff09;和 top&#xff08;获取栈顶元素&#xff09;。然而&#xff0c;当需要在栈中快速…

linux容器基础-namespace-1(mnt)

mnt namespace mount namespace可隔离出一个具有独立挂载点信息的运行环境&#xff0c;内核知道如何去维护每个namespace的挂载点列表。 即每个namespace之间的挂载点列表是独立的&#xff0c;各自挂载互不影响。(用户通常使用mount命令来挂载普通文件系统&#xff0c;但实际…

JAVA单个商户多个门店点餐系统小程序源码

&#x1f525;单个商户&#xff0c;多店管理新纪元&#xff01;高效点餐系统大揭秘&#x1f37d;️ &#x1f680;【一店多管&#xff0c;轻松驾驭】&#x1f680; 你是否还在为多个门店的点餐管理手忙脚乱&#xff1f;&#x1f92f; 想象一下&#xff0c;从繁华都市的中心商…

一站解决多域名安全:通配符SSL证书的全面指南

随着企业在线业务的不断扩展&#xff0c;拥有多个子域名变得越来越常见。为了确保这些子域名的安全&#xff0c;并简化管理流程&#xff0c;通配符SSL证书成为了一个高效且经济的选择。本文旨在提供一份全面的指南&#xff0c;帮助您了解通配符SSL证书的重要性和如何正确地选择…

用AI也能做短剧了?全球首款 AI 短剧平台 SkyReels重磅发布!

短剧的风头在2024年依然强劲。 几分钟到十几分钟的单集时长、强烈的娱乐性和快节奏剧情&#xff0c;频繁踩中用户「爽点」&#xff0c;仅在2023年&#xff0c;短剧市场规模就达到373.9亿元&#xff0c;预计2024年将超过500亿元&#xff0c;2027年则将超过1000亿元。 然而传统编…

ChatGPT完成论文润写的几点说明

学境思源&#xff0c;一键生成论文初稿&#xff1a; AcademicIdeas - 学境思源AI论文写作 论文润写是指对已完成的论文进行修改和优化&#xff0c;以提高其逻辑性、语言流畅度和整体质量。这一过程对提升论文的学术价值至关重要。ChatGPT是一种先进的人工智能语言模型&#xf…

[图解]片段16 ESS状态机图-SysMLEA建模住宅安全系统

1 00:00:00,220 --> 00:00:03,580 然后我们看初始这里 2 00:00:03,590 --> 00:00:09,500 有一个指向它的一个迁移的事件 3 00:00:09,710 --> 00:00:13,730 站点可用&#xff0c;这个实际上是错误的 4 00:00:14,020 --> 00:00:15,050 这不是事件 5 00:00:15,900…

绝密!头部数字人源码厂商在数字人直播软件开发技术有哪些?

随着数字人直播的逐渐兴起&#xff0c;数字人直播软件开发也成为了众多有意向进军数字人行业的创业者们重点关注的对象&#xff0c;以数字人直播软件开发技术有哪些为代表的问题更是屡次冲上相关社群话题榜的前列&#xff0c;并引发多轮热议。 不过&#xff0c;就市场现状来看&…

TIM定时中断之定时器定时中断定时器外部时钟应用案例

文章目录 前言一、定时器定时中断应用案例1.1 应用案例简介1.2 电路接线图1.3 应用案例代码1.4 应用案例分析1.4.1 初始化定时器1.4.2 编写定时器中断函数 二、定时器外部时钟应用案例2.1 应用案例简介2.2 电路接线图2.3 应用案例代码2.4 应用案例分析 前言 提示&#xff1a;本…

详细分析 el-progress的基本知识以及用法(附Demo)

目录 前言1. 基本知识2. Demo3. 实战 前言 由于实战项目中有所引用&#xff0c;对此记录基本的知识点&#xff0c;并且以Demo的形式呈现 1. 基本知识 el-progress 是 Element Plus UI 库中的一个进度条组件&#xff0c;用于显示任务的完成情况 可以帮助用户了解某个操作或任…