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

相关文章

Python实例题之pygame开发打飞机游戏实例代码

《Python实例题之pygame开发打飞机游戏实例代码》对于python的学习者,能够写出一个飞机大战的程序代码,是不是感觉到非常的开心,:本文主要介绍Python实例题之pygame开发打飞机... 目录题目pygame-aircraft-game使用 Pygame 开发的打飞机游戏脚本代码解释初始化部

使用Python开发一个现代化屏幕取色器

《使用Python开发一个现代化屏幕取色器》在UI设计、网页开发等场景中,颜色拾取是高频需求,:本文主要介绍如何使用Python开发一个现代化屏幕取色器,有需要的小伙伴可以参考一下... 目录一、项目概述二、核心功能解析2.1 实时颜色追踪2.2 智能颜色显示三、效果展示四、实现步骤详解4.1 环境配置4.

SQL中JOIN操作的条件使用总结与实践

《SQL中JOIN操作的条件使用总结与实践》在SQL查询中,JOIN操作是多表关联的核心工具,本文将从原理,场景和最佳实践三个方面总结JOIN条件的使用规则,希望可以帮助开发者精准控制查询逻辑... 目录一、ON与WHERE的本质区别二、场景化条件使用规则三、最佳实践建议1.优先使用ON条件2.WHERE用

MySQL存储过程之循环遍历查询的结果集详解

《MySQL存储过程之循环遍历查询的结果集详解》:本文主要介绍MySQL存储过程之循环遍历查询的结果集,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言1. 表结构2. 存储过程3. 关于存储过程的SQL补充总结前言近来碰到这样一个问题:在生产上导入的数据发现

Python使用smtplib库开发一个邮件自动发送工具

《Python使用smtplib库开发一个邮件自动发送工具》在现代软件开发中,自动化邮件发送是一个非常实用的功能,无论是系统通知、营销邮件、还是日常工作报告,Python的smtplib库都能帮助我们... 目录代码实现与知识点解析1. 导入必要的库2. 配置邮件服务器参数3. 创建邮件发送类4. 实现邮件

基于Python开发一个有趣的工作时长计算器

《基于Python开发一个有趣的工作时长计算器》随着远程办公和弹性工作制的兴起,个人及团队对于工作时长的准确统计需求日益增长,本文将使用Python和PyQt5打造一个工作时长计算器,感兴趣的小伙伴可... 目录概述功能介绍界面展示php软件使用步骤说明代码详解1.窗口初始化与布局2.工作时长计算核心逻辑3

Mybatis Plus JSqlParser解析sql语句及JSqlParser安装步骤

《MybatisPlusJSqlParser解析sql语句及JSqlParser安装步骤》JSqlParser是一个用于解析SQL语句的Java库,它可以将SQL语句解析为一个Java对象树,允许... 目录【一】jsqlParser 是什么【二】JSqlParser 的安装步骤【三】使用场景【1】sql语

python web 开发之Flask中间件与请求处理钩子的最佳实践

《pythonweb开发之Flask中间件与请求处理钩子的最佳实践》Flask作为轻量级Web框架,提供了灵活的请求处理机制,中间件和请求钩子允许开发者在请求处理的不同阶段插入自定义逻辑,实现诸如... 目录Flask中间件与请求处理钩子完全指南1. 引言2. 请求处理生命周期概述3. 请求钩子详解3.1

如何基于Python开发一个微信自动化工具

《如何基于Python开发一个微信自动化工具》在当今数字化办公场景中,自动化工具已成为提升工作效率的利器,本文将深入剖析一个基于Python的微信自动化工具开发全过程,有需要的小伙伴可以了解下... 目录概述功能全景1. 核心功能模块2. 特色功能效果展示1. 主界面概览2. 定时任务配置3. 操作日志演示

JavaScript实战:智能密码生成器开发指南

本文通过JavaScript实战开发智能密码生成器,详解如何运用crypto.getRandomValues实现加密级随机密码生成,包含多字符组合、安全强度可视化、易混淆字符排除等企业级功能。学习密码强度检测算法与信息熵计算原理,获取可直接嵌入项目的完整代码,提升Web应用的安全开发能力 目录