FPGA基础知识-用户自定义原语

news2024/12/31 3:23:36

目录

学习目标

学习内容

1.UDP的组成

2.UDP定义规则

3.表示组合逻辑的UDP

4.表示时序逻辑的UDP

5.UDP表中的缩写符号

6.UDP设计指南 

学习时间

学习总结


学习目标:

提示:这里可以添加学习目标

理解编写UDP的规则,明白UDP的各个组成部分。

学会编写表示时序和表示组合逻辑的两种不同的UDP,

理解UDP的调用(实例引用)方法。

为了使UDP的行为表达得更加简洁和易懂,应记住定义UDP的各种缩写符号。


学习内容:

提示:这里可以添加要学的内容

1.UDP的组成

    UDP 的定义以关键字primitive作为开始,然后指定原语名称、输出端口和输人端口。在端口声明部分将端口声明为output或者input。在表示时序的UDP中,输出端口必须被声明为reg类型,而且还需要有一条可选的initial语句,用于初始化时序逻辑UDP的输出端口。UDP状态表是UDP中最重要的部分,它以关键字table 开始,以关键字endtable结束。状态表定义了如何根据输人状态和当前状态得到输出值,该表也是一个查找表,类似于逻辑真值表。原语定义以关键字endprimitive 结束。

2.UDP定义规则

1. UDP只能采用标量(即1位)输入端口,允许有多个输入端口。
2. UDP只能允许一个标量(即1位)输出端口。输出端口必须出现在端口列表的第一个位
置,绝对不允许有多个输出端口。
3.在声明部分,输出端口以关键字output声明。因为表示时序逻辑的 UDP需要保存状态,
所以其输出端口必须声明为reg类型。
4.输入端口以关键字input声明。
5.表示时序逻辑的UDP中的状态可以用initial语句初始化。该语句是可选的,它将一个1
位的值赋给reg类型的输出。
6.状态表的项可以包含值0,1或x。UDP不能处理z值。传送给UDP的z值被当做×值。

3.表示组合逻辑的UDP

表示组合逻辑的UDP根据UDP内部所列出的表示输入和输出关系的状态表.由输人确定输出值。

状态表是UDP定义中最重要的部分。用表示与门的UDP模型来解释状态表最容易使读者理解。下面让我们不使用Verilog语言所提供的与门.自己来定义一个表示与门的原语,并将其命名为udp_and。

1.状态表每一行中<input#>的顺序必须与它们在端口列表中的出现顺序相同。设计UDP时必须牢记这一点,这一点非常重要。设计者经常搞错输入的顺序,因而得到错误的输出值。

2.输入和输出以“:”分隔。
3.状态表的每一行以“;”结束。
4.能够产生确定输出值的所有输入项组合都必须在状态表中列出。否则,如果在状态表各
行中找不到与这组输入对应的项,相应的输出就是x。商业模型中经常使用默认输出值x注意,udp_and 的状态表不处理a或b 的值为x的情况。

4.表示时序逻辑的UDP

表示时序逻辑的UDP与表示组合逻辑的UDP在定义形式和行为功能上有所不同。表示时序逻辑的UDP的不同之处在于以下几点:

1.表示时序逻辑的UDP的输出必须声明为reg类型.

2.表示时序逻辑的UDP的输出可以用initial语句初始化。

3.状态表的格式也稍有不同。

5.UDP表中的缩写符号

6.UDP设计指南 

UDP只能进行功能建模,不能对电路时序和制造工艺(例如CMOS,TIL和 ECL)进行建模。使用UDP的主要目的是以简洁的形式建立模块功能部分的模型,而module总是用于建立完整的模块模型,包括电路时序和制造工艺。

只有惟一输出端口的模块,才能使用UDP建模。如果设计的模块含有一个以上输出端口,只能使用module对其建模。

UDP输人端口数目的上限由用户使用的Verilog仿真器决定。然而,对Verilog仿真器的最低要求是它至少要能够处理具有9个输入端口的表示时序逻辑的UDP和具有10个输入口的表示组合逻辑的UDP。

·UDP一-般是使用内存中的查找表来实现的。随着输入端口数目的增加,查找表的输入组合项数呈指数级增长。结果,处理 UDP 的内存需求也以同样的方式增长。所以,输入端口数目过多的模块不宜使用UDP实现。

UDP并不总是设计功能模块的最佳方式。有时将功能模块设计成module更容易。例如,以UDP的方式设计八选一的多路选择器并不可取,因为UDP表的输入项数太多。而用数据流描述方式或行为描述方式要简单得多。决定是否使用UDP表示功能模块时,复杂度是重要的考虑因素。


 

学习时间:

提示:这里可以添加计划学习的时间

例如:

20230619


学习总结:

提示:这里统计学习计划的总量

用户自定义原语(UDP)通过使用查找表来定义自己的Verilog 原语。UDP提供了一种便利的方式来设计这种特定的功能模块。

UDP只能具有一个输出端口。UDP与module在同---个层次中定义。UDP的调用(实例引用)方法与门级原语的调用方法完全相同。状态表是UDP说明中最重要的部分。

表示组合逻辑的UDP用于描述组合电路。该电路的输出只是输人信号的纯组合逻辑函数。表示时序逻辑的UDP用于定义具有时序控制端口的模块。像锁存器和触发器这样的模块都可以用时序UDP描述。时序UDP以状态机的方式建模,它含有当前状态和下--状态。下一状态也就是UDP的输出。边沿敏感和电平敏感的描述可以混合出现在同一个UDP中。

缩写符使得UDP状态表项更加简洁。应该尽可能地使用缩写符。

描述功能模块时,重要的是决定究竟用UDP还是用module来实现它。必须全面考虑内存的需求和复杂度,做必要的折中。

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

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

相关文章

设计师常用的网页设计素材网站大全

设计师不仅需要源源不断的灵感&#xff0c;还需要与时俱进的网页设计素材。 本文推荐4个非常不错的设计素材网站 即时设计资源社区 ​即时设计资源社区是国内优秀的网页设计素材网站&#xff0c;内置阿里、字节、腾讯、京东、谷歌、华为等设计系统&#xff0c;超过3000UI组件…

DDoS攻击导致Azure和Outlook中断

微软已经证实&#xff0c;最近Azure、Outlook和OneDrive门户网站的中断是由于针对该公司服务的第7层DDoS攻击造成的。 这些攻击是由微软追踪到的一个名为Storm-1359的攻击组织造成的&#xff0c;他们自称是匿名苏丹。 故障发生在6月初&#xff0c;Outlook.com的网络门户在6月…

分布式配置中心Apollo中Namespace的类型整理

Namespace的类型 Namespace类型有三种&#xff1a; 【1】私有类型 【2】公共类型 【3】关联类型&#xff08;继承类型&#xff09; &#xff08;1&#xff09;私有类型 私有类型的Namespace具有private权限。例如上文提到的“application” Namespace就是私有类型。 &…

【计算机网络】运输层端口号、复用与分用

1、复用和分用 2.端口号 3.举例 4.详细学习视频 https://www.bilibili.com/video/BV1c4411d7jb?p58&vd_source621b166d35a3636b23f3c4d270272c53

WSL子系统启动报错 Wsl/Service/CreateInstance/CreateVm/HCS_E_SERVICE_NOT_AVAILABLE

今天琢磨着WindowsLinux子系统研究研究新东西&#xff0c;结果当我启动WSL时却出现了下面的提示&#xff1a; WSL启动报错 由于未安装所需的特性&#xff0c;无法启动操作。 Error code: Wsl/Service/CreateInstance/CreateVm/HCS_E_SERVICE_NOT_AVAILABLE问题排查 于是分析…

Audio API 实现音频播放器

市面上实现音频播放器的库有很多&#xff0c;比如wavesurfer.js、howler.js等等&#xff0c;但是都不支持大音频文件处理&#xff0c;100多M的文件就有可能导致程序崩溃。总之和我目前的需求不太符合&#xff0c;所以打算自己实现一个音频播放器&#xff0c;这样不管什么需求 在…

软件工程是否迎来iPhone时刻?

“软件工程是否迎来iPhone时刻&#xff1f;” 是2023K全球软件研发行业创新峰会上海站主会场的Panel discussion的主题&#xff0c;出场的几位嘉宾给出了不同的答案&#xff0c;其中有两位嘉宾给出了“No”&#xff0c;一位给出了“塞班时刻”&#xff08;后来给我朋友圈投票是…

设计模式—“状态变化”

在组件构建过程中,某些对象的状态经常面临变化,如何对这些变化进行有效的管理?同时又维持高层模块的稳定?"状态变化"模式为这一问题提供了解决方案。 典型模式有:Memento、State 一、State 动机 在软件构建过程中,某些对象的状态如果改变,其行为也会随之而…

18-BOM对象

一、是什么 &#x1f355;&#x1f355;&#x1f355;BOM (Browser Object Model)&#xff0c;浏览器对象模型&#xff0c;提供了独立于内容与浏览器窗口进行交互的对象 其作用就是跟浏览器做一些交互效果,比如如何进行页面的后退&#xff0c;前进&#xff0c;刷新&#xff0…

SSM幼儿园管理系统的设计与实现-计算机毕设 附源码86673

SSM幼儿园管理系统的设计与实现 摘 要 21世纪时信息化的时代&#xff0c;几乎任何一个行业都离不开计算机&#xff0c;将计算机运用于幼儿管理系统也是十分常见的。过去使用手工的管理方式对幼儿园进行管理&#xff0c;造成了管理繁琐、难以维护等问题&#xff0c;如今使用计算…

搜索表单的触发方式

1、按键盘触发 配套监听 _keydownHandler: function (event) { // 获取表单数据 let formValue this.$[frm-mach-break].serializeMyForm(); let params { machineName: formValue.mach_id }; this.requestAjax(ajx-view-mach-break, params); }, onKeypress: function ({ ke…

抖音seo账号矩阵系统源码sign解密.技术

抖音SEO矩阵系统源码是一种用于优化抖音视频内容的工具&#xff0c;可以帮助用户提高抖音视频的搜索排名和流量&#xff0c;从而增加视频曝光和转化率。该系统包括两部分&#xff0c;即数据收集和分析模块以及SEO策略和实施模块。 返回示例 错误&#xff1a; { "ec…

搜索算法(五) DFS BFS 练习题

练习题 1.力扣https://leetcode.cn/problems/surrounded-regions/这题和417类似&#xff0c;都是从边界朝内部搜索&#xff0c;417用的是DFS&#xff0c;这里为了练习&#xff0c;就用BFS。 首先从四条边界得到‘O’的坐标&#xff0c;加入队列。接着一层一层搜索&#xff0c…

11个AI绘画软件大全,赶紧收藏

随着人工智能技术的不断发展&#xff0c;越来越多的AI绘画软件应运而生。AI绘画软件利用人工智能技术&#xff0c;通过计算机自动生成或辅助生成艺术作品。 AI绘画软件通常集深度学习、计算机视觉、自然语言处理等技术于一体&#xff0c;可以模拟人类的创作过程&#xff0c;生…

带你详细了解Redis事务锁机制-加实列演示-加连接池-包括解决遗留问题-下

Redis_事务_锁机制_秒杀 连接池技术 连接池介绍 1、节省每次连接redis 服务带来的消耗&#xff0c;把连接好的实例反复利用。 2、链接池参数 MaxTotal&#xff1a;控制一个pool 可分配多少个jedis 实例&#xff0c;通过pool.getResource()来获取&#xff1b;如果赋值为-1&…

.NetCore gRpc 客户端与服务端的单工通信Demo

文章目录 .NetCore gRpc 客户端与服务端的单工通信Demo服务端方式一方式二 客户端proto协议文件syntax "proto3";import "google/protobuf/empty.proto";serviceproto3与.netCore 的类型对应日期和时间可为 null 的类型字节小数为 Protobuf 创建自定义 de…

<Linux开发>驱动开发 -Linux MISC 驱动

&#xff1c;Linux开发&#xff1e;驱动开发 -Linux MISC 驱动 交叉编译环境搭建&#xff1a; &#xff1c;Linux开发&#xff1e; linux开发工具-之-交叉编译环境搭建 uboot移植可参考以下&#xff1a; &#xff1c;Linux开发&#xff1e; -之-系统移植 uboot移植过程详细记…

软考高级系统架构设计师(二) 基础知识之计算机组成与系统结构2

目录 总线 ​CISC与RISC 流水线技术 总线 练习题&#xff1a; CISC与RISC RISC(精简指令集计算机)和CISC(复杂指令集计算机)是当前CPU的两种架构. RISC与CICS的比较 1.RISC比CICS更能提高计算机运算速度&#xff1b;RISC寄存器多&#xff0c;就可以减少访存次数&#xff0c;…

生产环境Java应用服务内存泄漏分析与解决

有个生产环境CRM业务应用服务&#xff0c;情况有些奇怪&#xff0c;监控数据显示内存异常。内存使用率99.%多。通过生产监控看板发现&#xff0c;CRM内存超配或内存泄漏的现象&#xff0c;下面分析一下这个问题过程记录。 1、服务器硬件配置部署情况 生产服务器采用阿里云ECS…

【命令参数】MSBuild - 环境配置及常用命令参数

目录 环境配置 基本语法 参数指令 对各类程序的命令参数的掌握是软件工程师必修课之一&#xff0c;它是通往自动化、高效化开发测试的必经之路。对于MSBuild&#xff0c;我们可以借助它以一种轻量级的形式去完成对于项目又或解决方案的生成&#xff0c;而避开使用繁大的IDE进…