`
FPGA_学渣
  • 浏览: 8313 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

FPGA至简设计法为什么这么简单

阅读更多
由潘文明先生开创的IC/FPGA至简设计法,具备划时代的意义。这种设计方法不仅将IC/FPGA学习难度降到了最低,同时将设计过程变得简单,并规范了代码避免了混乱,将出错几率降到最低。下面我们来看看是如何实现的吧。

一、 知识点集中化。(实例实证28原则)
二、 填空式的设计过程。

通常,我们通过敲代码实现程序功能类似于记流水账,一行一行一页一页的向下写。在这个过程中,难免遇到设计无思路、代码冗长重复、逻辑关系不明确、代码之间出现冲突等等现象。
明德扬至简设计法,提取大量的实际项目,采用科学的手段统计分析,找出其内在通用性部分,并建立相关的体系,实现了“填空式”设计!首先,把复杂的代码划分成几种类型的模块,然后以统一规范的代码格式,通过相应的脚本语言建立可调用的通用模板。不仅如此,通过模板生成的代码可参数化定制,一旦生成无需修改。下面我们先以非常常用的计数器模板为例演示一下。
我们知道,计数器是FPGA实现时序的基本单元,时钟分频要计数,串并转换要计数,乒乓操作要计数。明德扬即建立了下面这么一个模板:




当工程师需要用到计数器时,只需要打开GVIM,在命令模式下输入 :Mdyjsq回车,便出现了这么一个计数器的标准模板。
接下来设计师所需要做的,仅是在( )里填上内容,计数器设计便完成了。
该模板还设有自动命名功能,第一次输入:Mdyjsq默认名为cnt0,第二次则为cnt1,第三次为cnt2,依此类推。如果原代码中已经有cnt0,则会自动从cnt1开始。从而完全避免了命名重复产生冲突的现象。
如此卓越的设计方法,当然也支持个性化命名服务。比如你想将计数器的名称设置为time_cnt,只需要在命令模式下输入:call MDYJSQ(“time_cnt”) 回车。生成的模板如下:





学过至简设计法的同学都知道,计数器主要是想好“加1条件”和“数多少个”。我们在调用模板时,可以直接赋上条件,这样代码就完成生成了。如输入命令 :call MDYJSQ(“time_cnt”,”flag_add”,10)回车,模板如下:





使用至简设计法,即可省略掉常规设计中的繁复思考过程。比如计数器的设计,只需要填入设置条件“什么情况下加一”和“数多少下”。
在调用模板时,直接赋上条件,这样代码就完成生成了。如输入命令 :call MDYJSQ(“time_cnt”,”flag_add”,10)回车,即形成如下模板:





三、 四段式状态机。
复杂的时序操作均需用到状态机与计数器配合实现。目前通用的做法式采用三段式状态机。(缺陷)而至简设计法使用的是四段式状态机,(四段状态机是哪四段)。采用该状态机,不仅让设计变得更加简单,程序运行也非常稳健,出错几率大大降低。
例如设计一个状态机,其状态转移图如下图所示:





在明德扬至简设计法中直接使用模板,在命令模式下输入命令
:callMDYZTJ(3,”IDLE”,”S1”,”S2”,12,23,31)回车,即得到如下图的结果:




(结果解释。)
  • 大小: 82.8 KB
  • 大小: 82.8 KB
  • 大小: 82.8 KB
  • 大小: 78.2 KB
  • 大小: 10.4 KB
  • 大小: 67.7 KB
分享到:
评论

相关推荐

    FPGA至简设计原理与应用_v3.3_v1(含大纲).pdf

    在FPGA至简设计法规范篇章中,对波形图规则、计数器规范、状态机规范、接口规范和FIFO规范进行了详细的描述和规定,这些都是设计者在进行FPGA设计时必须遵守的规范,用以确保设计的可读性、可维护性和可靠性。...

    设计案例-FFT至简设计实现法.rar_FFT算法_FFT设计_至简设计_至简设计法_蝶形运算

    DIT-FFT至简设计实现法 工程说明 案例补充说明 本案例无论是模块划分、计数器设计、还是乒乓操作的读写处理,都始终基于“至简设计”的原则,用简易的代码结构就能实现复杂的DIT-FFT蝶形运算,代码设计风格极其简洁...

    FPGA设计方案.pdf

    标题中的"FPGA设计方案"指的是基于Field-Programmable Gate Array(现场可编程门阵列)的一种电子设计,这种设计通常用于实现复杂的数字逻辑功能。在这个特定的案例中,设计的主题是一个全天候温度记录仪,它利用...

    FPGA常用设计技巧

    四大FPGA供应商的专业见解为行业提供了宝贵的设计指导,推动了FPGA技术的持续进步与发展。 #### 扩展阅读 - **深入理解FPGA设计:** 《FPGA Design: A Comprehensive Guide》by Stephen Brown and David Jackson -...

    FPGA经典设计100例 含源码

    100个FPGA经典设计案例,包含详细设计逻辑及源代码

    华为FPGA设计全套

    华为FPGA设计全套是一套全面深入的FPGA学习资源,主要针对华为在FPGA领域的设计实践和技术应用。FPGA(Field-Programmable Gate Array)是可编程逻辑器件,允许用户根据自己的需求自定义硬件逻辑,广泛应用于通信、...

    FPGA时序设计的Viso形状库,visio画fpga时序图

    Visio形状库为FPGA时序设计提供了专用的图形元素,如触发器、寄存器、逻辑门、时钟信号、数据路径、定时路径标记等。设计者可以利用这些图形快速构建时序图,展示信号的传输路径、延迟和相互关系。此外,形状库还...

    fpga实现除法器

    这个简单的除法器设计可能不是最优化的,因为它没有考虑流水线或者分级的策略来提高运行速度,但作为一个学习实验,它足以帮助理解基本的除法器工作原理和Verilog的使用方法。实际应用中,为了提高性能,可能会采用...

    FPGA架构设计(经典).docx

    ### FPGA架构设计详解 #### 一、引言 FPGA(Field Programmable Gate Array),即现场可编程门阵列,是一种高性能的可编程逻辑器件,广泛应用于...希望本文能为正在从事FPGA设计的工程师们提供有价值的参考和启示。

    FPGA课程设计

    "第2次作业"可能涉及到特定的FPGA设计任务,例如实现简单的计数器、加法器、移位寄存器等基础电路,或者是更复杂的数字信号处理算法。这要求学生不仅掌握基本的HDL语法,还要理解数字逻辑、时序分析等概念。 ### 5....

    基于加减交替法除法器FPGA设计与实现

    ### 基于加减交替法的除法器FPGA设计与实现 #### 引言 在电子技术领域,除法器作为基础模块,在数据处理过程中扮演着关键角色。尤其在集成电路设计中,除法器因其复杂性而成为资源消耗大户,直接影响微处理器的...

    2019 年全国大学生 FPGA 创新设计竞赛现场测试题终稿.pdf

    【全国大学生 FPGA 创新设计竞赛】是一场针对在校大学生举办的高级电子设计竞赛,旨在提升学生们的 FPGA(Field-Programmable Gate Array)设计能力。2019 年的竞赛现场测试题提供了四个设计任务,分别是:有符号...

    FPGA课程设计报告-多功能数字时钟

    本报告详细介绍了多功能数字时钟的设计思路、实现方法以及可能遇到的挑战和解决方案,为后续的FPGA项目提供了参考。通过这样的实践,我们深化了对FPGA技术的理解,也锻炼了实际操作和问题解决能力。

    基于加减交替法除法器的FPGA设计与实3现.pdf

    ### 基于加减交替法除法器的FPGA设计与实现 #### 摘要及背景 本文深入探讨了一种创新的基于加减交替法的除法电路设计,该设计利用了现场可编程门阵列(FPGA)技术进行实现。作者潘明和许勇,来自桂林电子科技大学...

    FPGA毕业设计精选.rar

    《FPGA毕业设计精选》是针对电子工程领域中FPGA(Field Programmable Gate Array,现场可编程门阵列)技术的一系列毕业设计项目集合。FPGA作为一种高度灵活的数字电路设计平台,被广泛应用于通信、计算机、自动化、...

    例说FPGA之FPGA板级电路设计五要素

    但是,对于初学者来说,从简单的核心电路设计开始学习FPGA的板级电路设计是更基础且合适的方法。 在FPGA板级电路设计过程中,开发者还需要熟悉如何使用下载线将FPGA配置文件从PC传输到FPGA器件中,这个过程被称为...

    FPGA设计文档适合高级设计者

    "FPGA设计文档适合高级设计者"这个标题表明了文档面向的是有一定经验的FPGA开发者,内容可能涵盖了复杂的FPGA设计技巧、优化策略以及高级应用。 描述中的“FPGA原代码”暗示了文档可能包含Verilog或VHDL这样的硬件...

Global site tag (gtag.js) - Google Analytics