0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

FPGA设计案例之VerilogHDL可综合设计

454398 来源:博客园 作者:IC_learner 2020-11-23 13:05 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

一、逻辑设计

(1)组合逻辑设计

下面是一些用Verilog进行组合逻辑设计时的一些注意事项:

①组合逻辑可以得到两种常用的RTL 级描述方式。第一种是always 模块的触发事件为电平敏感信号列表;第二种就是用assign 关键字描述的数据流赋值语句。

②always 模块的敏感表为电平敏感信号的电路可几乎可以完成对所有组合逻辑电路的建模。always模块的敏感列表为所有判断条件信号和输入信号,但一定要注意敏感列表的完整性(注意通配符*的使用)。

由于赋值语句有阻塞赋值和非阻塞赋值两类,建议读者使用阻塞赋值语句“=”,原因将在“阻塞赋值和非阻塞赋值”中(现在还没有写)进行说明。

always 模块中的信号必须定义为reg 型,不过最终的实现结果中并没有寄存器。这是由于在组合逻辑电路描述中,将信号定义为reg 型,只是为了满足语法要求。

③assign 语句的描述,利用条件符“?”可以描述一些相对简单的组合逻辑电路,左边的赋值信号只能被定义为wire 型。当组合逻辑比较复杂时,需要很多条语句assign 语句或者多重嵌套“?”,使得代码可读性极差,因此此时推荐always组合逻辑建模方式。

④设计时要注意不要出现组合逻辑环路:


不要在组合逻辑中引入环路,在组合逻辑中引入环路会导致电路产生振荡、毛刺以及冲突等问题,从而降低设计的稳定性和可靠性,此外,环回逻辑的延时完全依靠组合逻辑门延迟和布线延迟。一旦这些传播时延有所变化,则环路的整体逻辑将彻底失效。其次,环路的时序分析是个死循环过程。目前的EDA 开发工具为了计算环路的时序逻辑都会主动割断时序路径,引入许多不确定的因素。因此要彻底避免环路。

(2)时序逻辑设计

①时序电路的行为决定了其只能通过always 块语句实现,通过关键词“posedge”和“negedge”来捕获时钟信号的上升沿和下降沿。在always 语句块中可以使用任何可综合的标志符。

②在描述时序电路的always 块中的reg 型信号都会被综合成寄存器,这是和组合逻辑电路所不同的。

③时序逻辑中推荐使用非阻塞赋值“

④时序逻辑的敏感信号列表只需要加入所用的时钟触发沿即可,其余所有的输入和条件判断信号都不用加入,这是因为时序逻辑是通过时钟信号的跳变沿来控制的。

二、锁存器

锁存器是个“奇葩”的器件,在FPGA逻辑设计中很避讳;在ASIC设计中,以前很喜欢(因为面积小),现在不是很喜欢了。在这里就记录一下关于锁存器的一些事项吧。

(1)锁存器的概述

①锁存器的详细CMOS电路结果在前面电路基础章节中已经有描述,这里不详细描述它的结构,详情请挫这个链接:http://www.cnblogs.com/IClearner/p/6443539.html。

②锁存器是一种对脉冲电平敏感的存储单元电路,可以在特定输入脉冲电平作用下改变状态,其本身也是一类常用的逻辑单元,有着特定的需求。

③锁存器在数据未锁存时,输出端的信号随输入信号变化,就像信号通过一个缓冲器一样,一旦锁存信号有效,则数据被锁住,输入信号不起作用。因此,锁存器也被称为透明锁存器,指的是不锁存时输出对于输入是透明的。

④锁存器和寄存器都是数字电路的基本存储单元,但锁存器是电平触发的存储器,触发器是边沿触发的存储器。

本质上,锁存器和D 触发器的逻辑功能是基本相同的,都可存储数据,且锁存器所需的门逻辑更少,具备更高的集成度。

⑤锁存器具备下列三个缺点:

• 对毛刺敏感,不能异步复位,因此在上电后处于不确定的状态。

• 锁存器会使静态时序分析变得非常复杂,不具备可重用性。

• 在FPGA/CPLD芯片中,基本的单元是由查找表和触发器组成的,若生成锁存器反而需要更多的资源。

(2)锁存器的产生

①锁存器产生于组合逻辑的设计中,在基于always的组合逻辑描述语句中,可能产生锁存器的情况具体可分为两种:其一是在if 语句中,另一种是在case 语句中。

②在always 块中使用if 语句,但缺乏else 分支而造成锁存器。

③在always 块中使用case 语句,由于缺乏default 分支而造成锁存器。

④如果用到if 语句,最好有else 分支;如果用到case 语句,最好有default 语句。即使需要锁存器,也通过else 分支或default 分支来显式说明。

(3)锁存器的应用

①在总线应用上,锁存器能提高驱动能力、隔离前后级。

②地址锁存器、数据锁存器、复位信号锁存器;门控时钟钟的应用等等。

三、设计思维

这个设计思维本来属于设计技巧里面的,放在这里说明,是为了告诉自己,在进行电路描述的时候, 是基于这些准则的,在设计时能够根据这些基本准则进行优化电路。下面是常见的设计思维,主要是基于FPGA的,关于ASIC其他设计技巧或者设计思维,我记录在了“技巧”篇。

(1)速度面积互换准则

①速度与面积是设计时常考虑的的一个问题,因此在设计的时候要考虑怎么在这二者之间的权衡。当然,现在功耗也与速度、面积成为需要考虑的重大因素之一。

②面积和速度互换的具体操作很多,比如模块复用、乒乓操作、串并转换以及流水线操作等。在设计技巧策略和技巧那一章节中将会进行叙述。

③串并转换乘法器:假设数据速率是乘法器模块处理速度的3 倍,那么由于乘法器模块的数据吞吐量满足不了要求,在这种情况下,就利用面积换速度的思想,复制3 个乘法器模块。首先将输入数据进行串并转换,然后利用这3 个模块并行处理所分配到的数据,最后将处理结果并串转换,达到数据速率的要求。

如下图所示:


(2)FPGA中的设计思维

①信号反相的处理策略

在处理反相信号时,设计时应尽可能地遵从分散反相原则。即应使用多个反相器分别反相,每个反相器驱动一个负载,这个原则无论对时钟信号还是对其它信号都是适用的。

因为在FPGA设计中,反相是被吸收到CLB或IOB中的,使用多个反相器并不占用更多的资源,而使用一个反相器将信号反相后驱动多个负载却往往会多占资源,而且延迟也增加了。

②首先,如果输入信号需要反相,则应尽可能地调用输入带反相功能的符号,而不是用分离的反相器对输入信号进行反相。

因为在使用自带反相功能的器件中,由于函数发生器用查表方式实现逻辑,反相操作是不占资源的,也没有额外延迟;而分开使用不同逻辑使用反相操作实现,从而消耗额外的资源,增加额外的延迟。

③其次,如果一个信号反相后驱动了多个负载,则应将反相功能分散到各个负载中实现,而不能采用传统TTL电路设计,采用集中反相驱动多个负载来减少所用的器件的数量。

因为在FPGA设计中,集中反相驱动多个负载往往会多占一个逻辑块或半个逻辑块,而且延迟也增加了。分散信号的反相往往可以与其它逻辑在同一单元内完成而不消耗额外的逻辑资源。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1655

    文章

    22288

    浏览量

    630340
  • 锁存器
    +关注

    关注

    8

    文章

    952

    浏览量

    43847
  • VerilogHDL
    +关注

    关注

    2

    文章

    39

    浏览量

    19796
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    智能光伏时代:"四"技术如何提升电站综合价值

    ,“可观、测、可控、可调”的“四”技术,西格电力光伏四装置咨询:1.3.7-5.0.0.4-6.2.0.0,凭借对电站全生命周期的智能化赋能,成为提升
    的头像 发表于 11-28 16:35 1747次阅读
    智能光伏时代:&quot;四<b class='flag-5'>可</b>&quot;技术如何提升电站<b class='flag-5'>综合</b>价值

    AMD利用重构FPGA设备Moku实现自定义激光探测解决方案

    摘要本文介绍了AdvancedMicroDevices,AMD公司如何基于重构FPGA设备自定义激光探测解决方案,替代传统的仪器配置,通过灵活且定制的FPGA设备Moku提供更高效
    的头像 发表于 11-20 17:28 851次阅读
    AMD利用<b class='flag-5'>可</b>重构<b class='flag-5'>FPGA</b>设备Moku实现自定义激光探测解决方案

    MarketsandMarkets FPGA行业报告,2026~2030 FPGA市场洞察

    ,Field-Programmable Gate Array)是一种高度灵活、重构的集成电路。与传统 ASIC 不同,FPGA 制造完成后仍可以在终端重新编程,在 高性能并行计算、实时信号处理、通信加速 等领域具有独特优势。   根据 Mark
    的头像 发表于 11-20 13:20 136次阅读
    MarketsandMarkets <b class='flag-5'>FPGA</b>行业报告,2026~2030 <b class='flag-5'>FPGA</b>市场洞察

    开源RISC-V处理器(蜂鸟E203)学习(二)修改FPGA综合环境(移植到自己的Xilinx FPGA板卡)

    移植到自己的板卡上。 2.运行原FPGA工程 进入到FPGA目录下; gvim打开“README.md”文件,下面就是FPGA综合的命令。 这里以最后一个:artydevkit
    发表于 10-31 08:46

    FPGA开发板vivado综合、下载程序问题汇总

    在做vivado综合时和FPGA下载程序时,我们碰到以下问题,并找出了对应的解决方案。 1.could not open include file”e203_defines.v”问题 在做
    发表于 10-24 07:12

    如何利用Verilog HDL在FPGA上实现SRAM的读写测试

    、建立读写操作、配置地址计数器、模拟数据流、综合与仿真以及下载到FPGA进行硬件测试。通过实践,掌握SRAM在FPGA中的使用和基本读写方法,加深对FPGA工作原理的理解。
    的头像 发表于 10-22 17:21 3962次阅读
    如何利用Verilog HDL在<b class='flag-5'>FPGA</b>上实现SRAM的读写测试

    基于FPGA实现FOC算法PWM模块设计

    哈喽,大家好,从今天开始正式带领大家从零到一,在FPGA平台上实现FOC算法,整个算法的框架如下图所示,如果大家对算法的原理不是特别清楚的话,可以先去百度上学习一下,本教程着重介绍实现过程,弱化原理的介绍。那么本文将从PWM模块开始进入FOC算法中去。
    的头像 发表于 07-17 15:21 3130次阅读
    基于<b class='flag-5'>FPGA</b>实现FOC算法<b class='flag-5'>之</b>PWM模块设计

    电缆隧道综合监测的技术应用分析

    的适配性。电缆隧道综合监测系统,是一款实现电缆隧道在线监测的软硬件结合的解决方案,从电缆隧道实际情况出发,选配适用的监测内容,保证监测内容覆盖全面,才能有效实现电缆隧道监测。 电缆隧道综合监测核心监测技术
    的头像 发表于 06-10 10:53 480次阅读
    电缆隧道<b class='flag-5'>综合</b>监测的技术应用分析

    FPGA调试方式VIO/ILA的使用

    在Vivado中,VIO(Virtual Input/Output)是一种用于调试和测试FPGA设计的IP核,它允许设计者通过JTAG接口实时读取和写入FPGA内部的寄存器,从而检查设计的运行状态并修改其行为。VIO IP核提供了一个简单易用的接口,使得用户可以轻松地与
    的头像 发表于 06-09 09:32 3124次阅读
    <b class='flag-5'>FPGA</b>调试方式<b class='flag-5'>之</b>VIO/ILA的使用

    从发明到 AI 加速:庆祝 FPGA 创新 40 周年

    今年是首款商用现场可编程门阵列( FPGA )诞生 40 周年,其带来了重编程硬件的概念。通过打造“与软件一样灵活的硬件”,FPGA 重编程逻辑改变了半导体设计的面貌。这是开发人员
    发表于 06-05 17:32 1186次阅读
    从发明到 AI 加速:庆祝 <b class='flag-5'>FPGA</b> 创新 40 周年

    FPGA芯片的概念和结构

    FPGA(Field Programmable Gate Array,现场可编程门阵列),是一种可在出厂后由用户根据实际需求进行编程配置的集成电路。与专用集成电路(如ASIC)不同,FPGA在硬件层面具备高度的重构性,能够灵活
    的头像 发表于 05-12 09:30 2409次阅读

    郑州丽健获赠首颗重复使用返回式技术试验卫星搭载证书

     日前,记者从郑州丽健体育用品有限公司获悉,郑州丽健获赠首颗重复使用返回式技术试验卫星搭载证书,搭载证书内容显示:实践十九号卫星是由中国航天科技集团有限公司第五研究院抓总研制的首颗
    的头像 发表于 04-14 16:28 481次阅读
    郑州丽<b class='flag-5'>之</b>健获赠首颗<b class='flag-5'>可</b>重复使用返回式技术试验卫星搭载证书

    MRAM存储替代闪存,FPGA升级新技术

    电子发烧友网综合报道,日前,莱迪思宣布在FPGA设计上前瞻性的布局,使其能够结合MRAM技术,推出了包括Certus-NX、CertusPro-NX和Avant等多款创新产品。这些FPGA器件采用
    发表于 03-08 00:10 1630次阅读

    FPGA+GPU+CPU国产化人工智能平台

    平台采用国产化FPGA+GPU+CPU构建嵌入式多核异构智算终端,形成FPGA+GPU、FPGA+CPU、CPU+FPGA等组合模式,形成
    的头像 发表于 01-07 16:42 1754次阅读
    <b class='flag-5'>FPGA</b>+GPU+CPU国产化人工智能平台

    FPGA在AI方面有哪些应用

    随着人工智能技术的飞速发展,对计算性能的需求也日益增长。FPGA(现场可编程门阵列)作为一种高性能、低功耗、灵活编程的硬件平台,正逐渐在 AI 领域崭露头角,展现出独特的优势,为 AI 应用的落地
    的头像 发表于 01-06 17:37 2107次阅读