news 2026/6/3 16:35:40

FPGA应用开发和仿真【2.0】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
FPGA应用开发和仿真【2.0】

2.15 生成块

初学者可跳过此节,当觉得在模块中重复写类似的有规律的内容比较烦琐时,再来学习本节。

代码2-42 8位格雷码到二进制码转换

生成块可根据一定的规律,使用条件生成语句、循环生成语句等,重复构造生成块的内容,等效于按照规律重复书写了生成块中的内容。考虑代码2-42。

该代码描述了一个将8位格雷码转换到二进制码的组合逻辑,可以看到书写了8行很有规律的持续赋值。试想,如果需要像这样描述64位格雷码到二进制码的转换呢?如果需要参数化位数呢?生成块可完成类似的需求。

生成常用形式如下:

这与过程中的for语句形式相似,不过,循环条件所用的变量必须使用genvar关键字定义,循环步进和条件必须只由生成变量决定。

if生成语句和case生成语句的形式与过程中的if语句和case语句相似,不过,所有的条件表达式必须是常量表达式。

生成语句中的生成内容与模块中能包含的内容基本一致,生成内容中还可以再嵌套其他生成语句。

如果使用生成块,代码2-42可参数化,改写为代码2-43。

代码2-43 参数化位数的格雷码到二进制码转换

2.16 任务和函数

任务和函数将一些语句实现的一定功能封装在一起,以便重复使用。任务和函数都只能在过程块中调用。

任务定义的一般形式:

其中的static和automatic关键字用于指定任务和函数的生命周期,使用automatic关键字的任务和函数中的变量均为局部变量,在每次任务或函数调用时均会重新初始化,可被多个同时进行的过程调用,或被递归调用,类似于编程语言的可重入。FPGA开发工具一般只支持automatic类型的任务和函数。

任务和函数本身类似于顺序块,因而在顺序块中能使用的语句(过程赋值、流程控制等)都能在任务和函数中使用。

任务中可以有时序控制(延时、事件),而函数中不能有。

代码2-44是任务和函数的例子。

代码2-44 任务和函数示例

第4行的任务gen_reset用于在reset上产生复位信号,第14行的函数用于求输入x的底2对数。

2.17 包

包(package)用来封装一些常用的常量变量定义、数据类型定义、任务和函数定义等,在需要使用时,可使用import关键字导入。

包定义的形式是:

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/29 5:48:42

基于proteus的智能门禁报警系统仿真:核心要点

从零搭建智能门禁系统:Proteus仿真实战全解析你有没有试过在没有一块开发板、一根杜邦线的情况下,完整跑通一个带RFID识别、密码输入、声光报警的智能门禁系统?听起来像天方夜谭?其实,借助Proteus Keil C51的联合仿真…

作者头像 李华
网站建设 2026/5/30 11:26:54

React Native 导航错误解析与解决方案

在使用React Native进行开发时,经常会遇到各种各样的错误,其中一个常见的错误是导航组件中字符串渲染的问题。今天我们将深入探讨一个具体的案例,分析其原因并提供解决方案。 错误描述 错误信息如下: Error: Text strings must be rendered within a <Text> compo…

作者头像 李华
网站建设 2026/5/30 11:25:53

YOLOFuse助力PID控制系统的视觉感知模块设计

YOLOFuse助力PID控制系统的视觉感知模块设计 在工业自动化、无人机巡检和智能机器人快速发展的今天&#xff0c;一个普遍而棘手的问题浮出水面&#xff1a;当环境变暗、起雾或出现遮挡时&#xff0c;依赖摄像头的控制系统为何频频“失明”&#xff1f; 尤其是在基于视觉反馈的…

作者头像 李华
网站建设 2026/6/2 20:47:01

YOLOFuse林区非法砍伐监测:运输车辆轨迹追踪

YOLOFuse林区非法砍伐监测&#xff1a;运输车辆轨迹追踪 在深夜的密林深处&#xff0c;一辆满载原木的卡车悄然穿行于监控盲区——这样的场景曾是森林执法中最棘手的难题。传统可见光摄像头在无光、烟雾或浓雾环境下几乎失效&#xff0c;而人工巡护难以覆盖广袤山林。如今&…

作者头像 李华
网站建设 2026/5/29 20:48:38

YOLOFuse药店冷藏柜温度监测:疫苗存储安全保障

YOLOFuse药店冷藏柜温度监测&#xff1a;疫苗存储安全保障 在现代医疗体系中&#xff0c;疫苗的储存与运输对温度控制极为敏感。一旦冷链中断或管理疏漏&#xff0c;可能导致整批药品失效&#xff0c;甚至威胁公共健康安全。尤其在药店这类高频操作场景中&#xff0c;冷藏柜门频…

作者头像 李华