FPGA基础知识-编程语言接口

这篇具有很好参考价值的文章主要介绍了FPGA基础知识-编程语言接口。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

学习目标:

学习内容:

1.PLI的使用

2.PLI任务的连接和调用

3.内部数据的获取

4.PLI库子程序

学习时间:

学习产出:


学习目标:

解释在Verilog仿真中如何使用PLI子程序。

描述PLI的用途。

定义用户自定义系统任务和函数以及用户自定义C子程序。

理解用户自定义系统任务的连接和调用。


从概念上解释在 Verilog 仿真器内部如何表示PLI


区别并描述怎样使用两类PLI库子程序:access子程序和 utility子程序。

学习如何创建用户自定义系统任务和函数,并学习如何在仿真中使用它们。


学习内容:

1.PLI的使用

由于PLI允许用户自己定义实用工具来存取(读、写或修改)表示设计的内部数据结构,因此它具有强大的能力,可以对Verilog语言的功能进行扩展。PLI具有很多种用途,如下所示:

PLI可用于定义其他系统任务和函数。典型的例子有监控任务、激励任务、调试任务和复杂操作等,这些任务和操作难以用标准的 Verilog 结构实现。

一些应用软件.比如翻译器和延迟计算工具,可以用PLI编写。

PLI可用于提取设计信息,比如层次.互连、扇出以及特定类型逻辑元件的数目等。 PLI可用于编写专用或自定义的输出显示子程序。波形观察器可用它生成波形、逻辑互连、源代码浏览器和层次信息。

为仿真提供激励的子程序也可以用PLI编写。激励可以自动生成或者从其他形式的激励转换而来。

普通的基于Verilog 的应用软件可以用PLI子程序编写。这种软件可以与任何Verilog 仿真器—起工作,因为PLI接口提供了统一的存取方式。

2.PLI任务的连接和调用

      设计者可以通过使用PLI库子程序来编写自定义的系统任务。然而,Verilog 仿真器必须知道用户自定义系统任务和相应的用户自定义C函数的存在。这是通过把用户自定义系统任务连接到Verilog仿真器来实现的。

      为了理解这个过程,以-个简单的系统任务$hello_verilog 为例进行说明。当$hello_verilog这个任务被调用时,它只是简单地输出一条消息“Helo Verilog World”。首先,实现该任务的C子程序必须用PLI库予程序定义。文件 hello_verilog.c中的子程序hello_verilog 如下所示

module hello—top
 initial $hello_verilog;
endmodule

3.内部数据的获取

在我们理解怎样使用PLI库子程序之前,首先需要理解在仿真器内部设计是如何表述的。每个模块被看做一组对象类型。对象类型是 Verilog 中定义的元素,例如:

模块实例、模块端口、模块的端到端路径以及模块之间的路径·顶层模块

原语实例和原语端口( terminal )

线网类型( net )、寄存器类型( register )、参数类型( parameter和specparam )整型、时间型和实型变量

时序检查

命名事件

4.PLI库子程序

PLI库子程序提供了对表示设计的内部数据结构进行存取的标准接口。为定义用户自己的系统任务而编写的用户自定义C子程序是用PLI库子程序编写的。在13.2 节的例子中,Shello._verilog是用户自定义系统任务,hello_verilog 是用户自定义C子程序,io_printf是PLI库子程序。

PLI库子程序有两大类:存取子程序和实用子程序。注意,vpi_子程序是存取子程序和实用子程序的扩展集合,未在本书中讨论。

FPGA基础知识-编程语言接口


学习时间:

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

20230620


学习产出:

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

      PLI接口提供了一组C语吉接口子程序来读出、写入和提取设计的内部数据结构信息。设计者可以编写自己的系统任务来完成各种实用功能。
      PLI接口可用于监视器、调试器、格式翻译器、延迟计算工具、自动激励生成器、转储文件生成器和其他实用工具。
      用户自定义系统任务由相应的用户自定义C子程序实现。C子程序调用PLI库函数。

     ·通知仿真器把一个新的用户自定义系统任务与相应的用户C子程序联系起来的过程称为连接。仿真器不同,连接的过程也不相同。
      用户自定义系统任务与标准的Verilog系统任务调用方式类似.例如$heilo_verilog()的调用与标准的系统任务调用一致。该用户自定义系统任务启动时,相应的用户自定义C子程序hello_verilog被执行。
       在Verilog仿真器中,用多个对象集合组成的--个庞大数据结构来表示设计。可以通过PLI库子程序来存取内部数据结构。
       存取子程序( acc)和实用子程序( tf)是两类PLI库子程序。
       实用子程序代表了第一代 Verilog PLI。实用子程序用于在用户C子程序和原始Verilog 设计之间来回传输数据。

       实用子程序以前缀tf_开头。实用子程序与对象处理互不影响。·存取子程序代表了第二代Verilog PLI。

       存取子程序可以读写设计的特定对象的信息。存取子程序以前缀acc_开头。存取子程序主要用在用户C子程序和内部数据表示的接口上。存取子程序与对象处理相互影响。
      值变链接(VCL)是---类特殊的存取子程序,它们可以监视设计中的对象。当被监视的对象发生变化时,就执行最终用户子程序.文章来源地址https://www.toymoban.com/news/detail-513606.html

到了这里,关于FPGA基础知识-编程语言接口的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C语言之网络编程(必背知识点)

    网络的来历_百度知道 ARPnetA--Internet--移动互联网--物联网 局域网(LAN) 局域网的缩写是LAN,local area network,顾名思义,是个本地的网络,只能实现小范围短距离的网络通信。我们的家庭网络是典型的局域网。电脑、手机、电视、智能音箱、智能插座都连在路由器上,可以互

    2024年02月06日
    浏览(69)
  • 基础汇编语言编程

    目录 什么是汇编语言? 工程搭建 新建工程 环境设置  测试是否成功  正式学习汇编语言 数据处理指令 填充,加,减,乘  思考:我们可以看到R0寄存器可以存放8位十六进制数,那么0x12345678能不能用mov存入? 与,或,异或,左移,右移 思考:UART通信过程中为什么数据位规

    2024年02月08日
    浏览(27)
  • [从零开始学习FPGA编程-32]:进阶篇 - 基本时序电路-D触发器(Verilog语言)

    作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客 本文网址:  目录 第1章 什么是时序电路 1.1 时序电路 1.2 什么是触发器

    2023年04月08日
    浏览(34)
  • [FPGA] 7系列FPGA的基础知识

    Virtex-7 Family是Xilinx公司推出的一系列FPGA器件,采用了28纳米工艺制造。它是Xilinx公司的第一个采用28纳米工艺的FPGA系列,提供了高性能、低功耗和灵活性的特点。 Virtex-7 Family提供了不同规模的器件,包括Virtex-7 XT、Virtex-7 HT、Virtex-7 H580T、Virtex-7 VXT和Virtex-7 VX系列,每个系列都

    2024年02月09日
    浏览(34)
  • FPGA基础知识

    FPGA是在PAL、PLA和CPLD等可编程器件的基础上进一步发展起来的一种更复杂的可编程逻辑器件。它是ASIC领域中的一种半定制电路,既解决了定制电路的不足,又克服了原有可编程器件门电路有限的缺点。 由于FPGA需要被反复烧写,它实现组合逻辑的基本结构不可能像ASIC那样通过

    2024年02月03日
    浏览(30)
  • 如何高效的学习接口自动化测试?从零开始学习接口自动化测试:选择合适的学习资源和编程语言

    目录 引言: 一、学习前的准备 二、选择合适的学习资源 三、实践中学习 四、总结 在日常的软件开发过程中,接口自动化测试是一个非常重要的环节。接口自动化测试可以帮助我们快速准确地检测出软件中的缺陷,提高软件的质量和稳定性。但是,要学习接口自动化测试并

    2024年02月06日
    浏览(46)
  • C语言网络编程基础(linux)

    在linux操作系统下,有万物皆文件的概念,当一个进程想要打开/创建一个文件时,内核会给进程返回一个文件描述符,文件描述符是一个非负数,常用int类型表示,起到索引的作用,是为了高效管理进程打开/创建的文件的,指向的是被打开的文件。所有I/O的系统操作也都是通

    2024年02月07日
    浏览(29)
  • 第一篇 FPGA基础知识

    FPGA的全称为Field-ProgrammableGateArray,即现场可编程门阵列。 在开始学习FPGA之前,同学们首先应该清楚地了解FPGA的概念,明白FPGA到底是什么东西,可以用来做什么。FPGA是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物,是作为专用集成电路(ASIC)领域中的一种半定制

    2024年02月07日
    浏览(51)
  • 云原生时代崛起的编程语言Go基础实战

    @ 目录 概述 定义 使用场景 Go 安全 使用须知 搜索工具 Go基础命令 标准库 基础语法 Effective Go 概览 命名规范 注释 变量 常量(const) 控制结构 数据类型 迭代(range) 函数 指针 字符串和符文 结构体(struct) 方法 接口(interface) 泛型 错误(errors) 恐慌(pinic) 推迟(defer) 恢复(

    2024年02月01日
    浏览(47)
  • FPGA基础知识点

    基础知识 逻辑值 逻辑0:表示低电平,也就是对应电路GND 逻辑1:表示高电平,也就是对应电路VCC 逻辑X:表示未知,有可能是高电平也有可能是低电平 逻辑Z:表示高阻态,外部没有激励信号,是一个悬空状态 数字进制格式 Verilog数字进制格式包括 二进制(b) , 八进制(

    2024年02月03日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包