FPGA开发:条件语句 × 循环语句

2024-09-08 06:44
文章标签 条件 开发 循环 fpga 语句

本文主要是介绍FPGA开发:条件语句 × 循环语句,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

条件语句

if_else语句

if_else语句,用来判断是否满足所给定的条件,根据判断的结果(真或假)决定执行给出的两种操作之一。

if(表达式)语句;

例如:

if(a>b) out1=int1;

if(表达式)

        语句1;

else

        语句2;

例如:

if(a>b)out1=int1;
elseout1=int2;

if(表达式1) 语句1;

else if(表达式2) 语句2;

else if(表达式3) 语句3;

……

else if(表达式n) 语句n;

else   语句m

【注意】条件语句必须在过程块中使用,所谓过程块是指initialalways语句所引导的执行语句集合。除了这两种块语句引导的begin end块中可以编写条件语句外,模块中其他地方都不能编写。

【注意】表达式为0、x、z时均视为假。


case语句

case语句是一种多分支选择语句,有如下3种格式:

  • case(表达式) <case分支项>  endcase
  • casex(表达式) <case分支项>  endcase
  • casez(表达式) <case分支项>  endcase

分支项如下:
 

分支表达式1: 语句1;分支表达式2: 语句2;……默认项(default项): 语句;

【注意】所有表达式位宽必须相同,常犯错误:用'bx,'bz代替n'bx,n'bz,因为x、z的默认宽度是机器的字节宽度(通常32位)。

【注意】对于casez,不考虑高阻值z的比较过程,默认其与任何表达式比较后均为真。对于casex,不考虑z和x,默认其与任何表达式比较后均为真。


循环语句

forever语句

连续执行语句,格式如下:

格式1:
forevr  语句;格式2:
foreverbegin多条语句;end

【注意】其必须写在initial语句中。


repeat语句

连续执行一条语句n次,格式如下:

格式1:
repeat(表达式)  语句;格式2:
repeat(表达式)begin多条语句;end

while语句

执行某一条语句直到某个条件不满足。如果一开始就不满足条件,则语句一次也不会被执行。格式如下:

格式1:
while(表达式)  语句;格式2:
while(表达式)begin多条语句;end

for语句

for(表达式1;表达式2;表达式3)语句;

与C语言中的for循环语句一样,通过以下三个步骤决定语句的循环执行:

  • 1、先给控制循环次数的变量赋初值。
  • 2、判定控制循环的表达式的值,如为假,则跳出循环语句;如为真,则执行指定的语句后,转到第3步。
  • 3、执行一条语句赋值语句来修正控制循环变量次数的变量值,然后返回第二步。

【注意】Verilog HDL中的四种循环,只有for循环能够用于综合电路,其余三种只能用来写TestBench仿真激励文件,综合电路使用更多的还是如下循环结构。

generatefor(表达式1 ; 表达式2 ; 表达式3)begin : 块名循环语句;end
endgenerate

这篇关于FPGA开发:条件语句 × 循环语句的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1147409

相关文章

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

Spring 依赖注入与循环依赖总结

《Spring依赖注入与循环依赖总结》这篇文章给大家介绍Spring依赖注入与循环依赖总结篇,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. Spring 三级缓存解决循环依赖1. 创建UserService原始对象2. 将原始对象包装成工

Python实战之SEO优化自动化工具开发指南

《Python实战之SEO优化自动化工具开发指南》在数字化营销时代,搜索引擎优化(SEO)已成为网站获取流量的重要手段,本文将带您使用Python开发一套完整的SEO自动化工具,需要的可以了解下... 目录前言项目概述技术栈选择核心模块实现1. 关键词研究模块2. 网站技术seo检测模块3. 内容优化分析模

从基础到进阶详解Python条件判断的实用指南

《从基础到进阶详解Python条件判断的实用指南》本文将通过15个实战案例,带你大家掌握条件判断的核心技巧,并从基础语法到高级应用一网打尽,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一... 目录​引言:条件判断为何如此重要一、基础语法:三行代码构建决策系统二、多条件分支:elif的魔法三、

基于Java开发一个极简版敏感词检测工具

《基于Java开发一个极简版敏感词检测工具》这篇文章主要为大家详细介绍了如何基于Java开发一个极简版敏感词检测工具,文中的示例代码简洁易懂,感兴趣的小伙伴可以跟随小编一起学习一下... 目录你是否还在为敏感词检测头疼一、极简版Java敏感词检测工具的3大核心优势1.1 优势1:DFA算法驱动,效率提升10

MySQL中REPLACE函数与语句举例详解

《MySQL中REPLACE函数与语句举例详解》在MySQL中REPLACE函数是一个用于处理字符串的强大工具,它的主要功能是替换字符串中的某些子字符串,:本文主要介绍MySQL中REPLACE函... 目录一、REPLACE()函数语法:参数说明:功能说明:示例:二、REPLACE INTO语句语法:参数

Python开发简易网络服务器的示例详解(新手入门)

《Python开发简易网络服务器的示例详解(新手入门)》网络服务器是互联网基础设施的核心组件,它本质上是一个持续运行的程序,负责监听特定端口,本文将使用Python开发一个简单的网络服务器,感兴趣的小... 目录网络服务器基础概念python内置服务器模块1. HTTP服务器模块2. Socket服务器模块

MySQL ORDER BY 语句常见用法、示例详解

《MySQLORDERBY语句常见用法、示例详解》ORDERBY是结构化查询语言(SQL)中的关键字,隶属于SELECT语句的子句结构,用于对查询结果集按指定列进行排序,本文给大家介绍MySQL... 目录mysql ORDER BY 语句详细说明1.基本语法2.排序方向详解3.多列排序4.常见用法示例5.

Java 与 LibreOffice 集成开发指南(环境搭建及代码示例)

《Java与LibreOffice集成开发指南(环境搭建及代码示例)》本文介绍Java与LibreOffice的集成方法,涵盖环境配置、API调用、文档转换、UNO桥接及REST接口等技术,提供... 目录1. 引言2. 环境搭建2.1 安装 LibreOffice2.2 配置 Java 开发环境2.3 配