for循环的用法

news/2024/7/9 5:00:03

1.always-for用法

        注意点:

                ①always块可以是时序逻辑,也可以是组合逻辑;

                ②always块的for循环的变量定义为integer类型。

        举例:做一些merge的时候比较常用,此时需要在每次循环开始对data赋初值。比如这里merge处置设为0,否则每拍最开始merge会使用上一拍的结果参与到merge。

reg a,b,merge;
integer i;
always @(*) begin
    merge = 1'b0;
    for(i=0; i<XX; i=i+1) begin:FOR1
        a[i] = sss;
        if()begin
            b[i] = kkk;
            merge = merge | b[i];  // 看着像组合逻辑环error,但是因为赋初始值还真允许
        end
        else
            xxx
    end
end

2.(generate)-for-always/assign/module例化-(endgenerate)用法

        注意点:

                ①可以省略generate-endgenerate,但是综合后电路与省略前一样;

                ②always块的for循环的变量要定义为genvar型。

        举例:

reg [3:0] temp;
genvar i;
generate
    for (i = 0; i < 3 ; i = i + 1) begin:FOR
        always @(posedge sysclk) begin
            temp[i] <= 1'b0;
        end
    end
endgenerate

3.总结

        3.1.循环体

                always-for只会产生一个实例块,因为for循环在always的内部;

                generate-for-endgenerate会根据迭代的次数生成对应的多个实例块。

        3.2.必须使用generate-for-endgenerate的情况

                在循环/条件分支的语句中需要调用module

        3.3.物理结构

                两种方式的写法综合结果相同,always-for的仿真速度更快。  


http://lihuaxi.xjx100.cn/news/951811.html

相关文章

【C语言】位段

位段 一.简介 位段和结构体很相似。不同的是&#xff1a; 位段的成员&#xff1a;成员名 : 数字且其成员必须是整型(char、int、unsigned int……) 示例&#xff1a; struct S {char a : 3;char b : 2;char c : 7; };S就是一个位段类型&#xff0c;其成员a为占3个比特位的…

一直在说高并发,多少QPS才算高并发?

高并发的四个角度 只说并发不提高可用就是耍流氓。可以从四个角度讨论这个问题。 首先是无状态前端机器不足以承载请求流量&#xff0c;需要进行水平扩展&#xff0c;一般QPS是千级。 然后是关系型数据库无法承载读取或写入峰值&#xff0c;需要数据库横向扩展或引入nosql&am…

Linux->进程终止和等待

目录 1. 进程终止场景 1.1 进程退出码 1.2 进程常见退出方式 2. 进程等待 2.1 进程等待的必要性 2.2 进程等待的方式 wait()方式 waitpid()方式 options参数 status参数 1. 进程终止场景 代码运行完毕&#xff0c;结果正确 代码运行完毕&#xff0c;结果不正确 代码异…

Python基础用法

Python基础用法(1) 输出Hello World 在Python中&#xff0c;使用print函数可以输出文本到控制台&#xff0c;例如&#xff1a; print("Hello World")这个程序会输出一个简单的"Hello World"到控制台。 变量 Python中的变量可以存储任何类型的值&#…

如何用AST还原某音的JSVMP

1. 什么是JSVMP vmp简单来说就是将一些高级语言的代码通过自己实现的编译器进行编译得到字节码&#xff0c;这样就可以更有效的保护原有代码&#xff0c;而jsvmp自然就是对JS代码的编译保护&#xff0c;具体的可以看看H5应用加固防破解-JS虚拟机保护方案。 如何区分是不是jsv…

趣味三角——第13章——地图师的乐园

第13章节 地图师的乐园(A Mapmaker’s Paradise) What’s the good of Mercator’s North Poles and Equators, Tropics, Zones and Meridian Lines? So the Bellman would cry: and the crew would reply, “They are merely conventional signs!” (Mercator的北极和赤…

DockerHub 仓库中的原生 PostgreSQL 镜像操作说明(一)原文翻译

原生的 PostgreSQL 镜像的制作还是比较合理的&#xff0c;推荐大家深入研究这个镜像的使用操作&#xff0c;能熟悉构建脚本最好不过。 原文链接&#xff1a;https://hub.docker.com/_/postgres 如何使用这个镜像 启动一个 postgres 实例 $ docker run --name some-postgres …

【python 基础篇 十】python的函数-------函数的基本使用

目录1.函数的概念2.函数的基本使用3.函数的参数3.1 单个参数3.2 多个参数3.3 不定长参数3.4 缺省参数3.5 参数注意4.函数的返回值1.函数的概念 概念 ​ 写了一段代码实现了某个小功能&#xff1b;然后把这些代码集中到一块&#xff0c;起一个名字&#xff0c;下一次就可以根据这…