首页 > 其他分享 >FPGA数字逻辑运行特点及常见方法

FPGA数字逻辑运行特点及常见方法

时间:2024-04-02 21:23:59浏览次数:31  
标签:控制 逻辑 数字 FPGA 时序 状态机 模块 流水线

模型功能

  • FPGA的运行是并行的
  • FPGA的串行依赖状态机
  • FPGA的并行依赖流水线
  • FPGA的大规模设计依赖精确设计

模型框图

FPGA是并行的系统,所有的代码同时运行,这是FPGA高效的根本所在

实现步骤

  1. FPGA的并行特性
  • 和一般意义上的高级语言不同,verilog更多地是低级语言特性
  • 这一点可以从其描述而非高级可以得知
  • 如何应用这种并行特性
    • 如果一个模块持续性运行,则对FPGA来说是最高效率的,可以得到最高的性能
    • 如果一个模块是灵活多变的,则对FPGA来说获得了最佳的拓展性,可以解决各种复杂的场景
    • 而掌握两者的平衡,就是对并行特性的最大化利用
  1. 状态机的最大灵活性
  • 使用状态机,可以实现类似高级语言的串行逻辑
  • 信号在状态机的控制下,实现信号的逐个状态控制
  • 这种严格的执行顺序,实际上削弱了FPGA的性能,但是增加了控制的灵活性
  • 适合处理具备复杂控制交互的逻辑
    !不要试图使用流水线替代状态机,那样虽然可以提高性能,但是付出的时间和后续的维护成本不可接收
  1. 流水线的最大性能
  • 流水线是FPGA最关键的结构
  • 使用流水线至少可以节约1倍的资源和时间,是少有的完全适配FPGA的模型
  • 流水线的实现方法多种多样,最关键的就是建立数据总线,将数据从模块提取到总线中
  • 只有在总线中的数据才具备在多个不同模块之间进行流水操作
    • 如果只是在一个模块里面搭建流水线,那可维护性较差,无法适应复杂的流水处理逻辑,而且容易偷懒将信号随意跨流水线导致维护困难
    • 将数据从定义在模块内,修改为将数据定义在总线中,所有的模块挂在总线上,才能实现无限拓展且顺序可调的流水线
    • 这种流水线可以实现类似大状态机的结构,但是又可以匹配状态机的低效率,是大型数据处理(如图像)的必选方法
  1. FPGA的精确设计
  • 一般来说,FPGA的各个参数不需要进行严格的控制
    • FPGA为了拓展性等原因多会使用更大的位宽
  • 但是对于大规模设计,位宽的控制是必要的
  • 多余的位宽会导致一些简单逻辑占据多余的空位宽
    • 虽然FPGA会自动优化一部分
    • 但是对于信号,多余的位宽精度是无法自动优化的
  • 所以,精确的位宽控制是保证最小面积的根本方法
  • 同时是最简时序控制也是一个重要的部分
    • 简化时序的关键在于信号独立控制
    • 将信号进行混合控制除了不利于和电路对应
    • 更大的问题是无法实现控制简化
    • 这种信号交叉容易带来额外的时序控制
    • 而这种时序又会进一步复杂控制
  • 所以,信号在命名的时候应该就带时序信息

最终效果

  • 状态机之前的文章已经实现过了,找一个模块实现即可
  • 流水线则是需要依据实际的需求进行搭建,本文只是在于回顾verilog的重点内容,这里也不展开
  • 精确化的设计在之前的例子也是有体现的,位宽的参数化,信号的时序化,为整个的控制提供了基础

调用接口

verilog模型总结

  • 用了一周的时间,大致回顾FPGA中的verilog中一些比较实用的部分,
  • 按照本人喜欢的编码模板,逐个分析模块每个内容所包含的细节
  • 回顾了之前忽略的部分,修复目前设计模型中的一些问题
  • 如无意外,本合集到此结束,后续应该会继续回顾system verilog模型的一些细节

标签:控制,逻辑,数字,FPGA,时序,状态机,模块,流水线
From: https://www.cnblogs.com/electricdream/p/18111523

相关文章

  • 【蓝桥杯】小明发明了一种给由全大写字母组成的字符串编码的方法。对于每一个大写字母
    【问题描述】小明发明了一种给由全大写字母组成的字符串编码的方法。对于每一个大写字母,小明将它转换成它在26个英文字母中序号,即A→1,B→2,...Z→26。这样一个字符串就能被转化成一个数字序列:比如ABCXYZ→123242526。现在给定一个转换后的数字序列,小明想还原出原本的......
  • COMP 330正则化逻辑回归分类
    COMP330课业#51说明在这项任务中,您将实现一个正则化的逻辑回归来对文本文档进行分类。实现将在Spark之上的Python中进行给你,有必要使用亚马逊AWS。您将被要求执行三个子任务:(1)数据准备,(2)学习(将通过梯度下降)和(3)学习模型的评估。注意:在你真正开始这项任务之前,完成HW5和Lab5是很重......
  • 【机器学习300问】61、逻辑回归与线性回归的异同?
        本文讲述两个经典机器学习逻辑回归(LogisticRegression)和线性回归(LinearRegression)算法的异同,有助于我们在面对实际问题时更好的进行模型选择。也能帮助我们加深对两者的理解,掌握这两类基础模型有助于进一步理解更复杂的模型结构,例如逻辑回归是许多复杂分类算法的......
  • AI小程序的创业方向:深度思考与逻辑引领
    随着人工智能技术的快速发展,AI小程序逐渐成为创业的新热点。在这个充满机遇与挑战的时代,我们有必要深入探讨AI小程序的创业方向,以把握未来的发展趋势。 一、目标市场定位首先,我们要明确目标市场。针对不同的用户需求,AI小程序可应用于各个领域,如电商、医疗、教育、金融等。在......
  • tidb-逻辑备份(6)-lightning导入工具的部署、使用
    一、Tidblightning的部署方法一、1.联网安装[root@tidb01~]#tiupinstalltidb-lightning方法二(tidb-community-toolkit)1.下载包(https://docs.pingcap.com/zh/tidb/v6.1/download-ecosystem-tools),解压获取:wgethttps://download.pingcap.org/tidb-communi......
  • 逻辑或(||)和逻辑与(&&)之间有没有优先级
    好的!按照惯例先说结论:有,应该是先算逻辑与(&&)在算逻辑或(||)有兴趣的同学们可以继续往下看:验证代码:#include<stdio.h>intmain(){ intt=1,k=2,m=3; printf("%d\n",(t==1||k==2&&m<3)); return0;}按照代码格式来说,如果它俩优先级相同,那么就是从左往......
  • 业务逻辑支付漏洞
    支付原理支付漏洞原理支付漏洞绕过思路支付原理在业务安全方面,支付原理主要涉及到支付过程中的身份验证就、风险控制和交易保障等方面。具体来说,支付机构通常会采用多种手段来确保支付过程的安全性身份验证:支付机构会对买家和卖家的身验证,以确保只有合法的用户才能进......
  • 点阵LED数码管显示驱动IC VK16K33 A/B/C/BA/AA 驱动电流大 质量稳定 适用于计量插座,数
    VK16K33是一种带按键扫描接口的数码管或点阵LED驱动控制专用芯片,内部集成有数据锁存器、键盘扫描、LED驱动模块等电路。数据通过I2C通讯接口与MCU通信。SEG脚接LED阳极,GRID脚接LED阴极,可支持16SEGx8GRID的点阵LED显示面板。最大支持13×3的按键。内置上电复位电路,整体闪烁频率可......
  • 高亮数显驱动芯片/点阵LED驱动IC-VK16K33B/BA SOP24/SSOP24,适用于电饭煲,温控仪,数字电
    产品品牌:永嘉微电/VINKA产品型号:VK16K33B/BA封装形式:SOP24/SSOP24概述VK16K33B/BA是一种带按键扫描接口的数码管或点阵LED驱动控制专用芯片,内部集成有数据锁存器、键盘扫描、LED驱动模块等电路。数据通过I2C通讯接口与MCU通信。SEG脚接LED阳极,GRID脚接LED阴极,可支持12SEGx8......
  • 产品推荐 | 中科亿海微推出亿迅®A8000金融FPGA加速卡
    01、产品概述亿迅®A8000金融加速卡,是中科亿海微联合金融证券领域的战略合作伙伴北京睿智融科,将可编程逻辑芯片与金融行业深度结合,通过可编程逻辑芯片对交易行情加速解码,实现低至纳秒级的解码引擎,端到端的处理时延降低到百纳秒级别,为证券、期货、基金、私募等机构用户提供高性......