由潘文明先生开创的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
分享到:
相关推荐
DIT-FFT至简设计实现法 工程说明 案例补充说明 本案例无论是模块划分、计数器设计、还是乒乓操作的读写处理,都始终基于“至简设计”的原则,用简易的代码结构就能实现复杂的DIT-FFT蝶形运算,代码设计风格极其简洁...
四大FPGA供应商的专业见解为行业提供了宝贵的设计指导,推动了FPGA技术的持续进步与发展。 #### 扩展阅读 - **深入理解FPGA设计:** 《FPGA Design: A Comprehensive Guide》by Stephen Brown and David Jackson -...
这份资料旨在帮助对FPGA设计感兴趣的工程师提升技能,为面试做好充分准备,同时也为已经在职的工程师提供进一步的学习和参考资料。 FPGA(Field-Programmable Gate Array),现场可编程门阵列,是一种可以被用户...
FPGA(Field-Programmable Gate Array)功能设计说明书的目的是为开发团队提供清晰、详细的指导,以便于理解和实现特定FPGA设计的功能。这份文档将阐述设计的目标、功能、算法、架构以及与系统其他部分的交互方式,...
本资源为华为FPGA设计规范文档,旨在规范整个FPGA设计流程,提高开发效率和代码质量。下面是从本文档中提取的重要知识点: FPGA设计流程概述 FPGA设计流程可以分为五个关键步骤:功能仿真、逻辑综合、前仿真、布局...
FPGA设计流程注意事项 FPGA 设计中的时序分析及异步设计注意事项是 FPGA 设计中非常重要的一方面。时序分析是指在 FPGA 设计中,需要对时序进行分析,以满足每一个触发器的建立和保持时间的要求。时序设计的实质...
总的来说,《Altera FPGA/CPLD设计(基础篇)(第2版)》将引导读者全面理解Altera FPGA和CPLD的特性和使用方法,通过学习本书,你可以掌握从概念设计到实际硬件实现的全过程,为在数字电子设计领域打下坚实的基础。
FPGA设计优化及方案改进 FPGA设计优化是指在FPGA设计中,为了提高设计的速度、面积和能耗...通过合理地使用流水线设计、寄存器配平、关键路径法等方法,可以实现速度优化和面积优化,从而提高FPGA设计的性能和效率。
fpga开发FPGA设计高级进阶(清华大学电子工程系) • 掌握FPGA的基本设计原则 • 乒乓结构、流水线设计 • 异步时钟域的处理 • 状态机的设计 • 毛刺的消除 • 掌握FPGA设计的注意事项 • 从文档到设计完成 • 从设计...
这个简单的除法器设计可能不是最优化的,因为它没有考虑流水线或者分级的策略来提高运行速度,但作为一个学习实验,它足以帮助理解基本的除法器工作原理和Verilog的使用方法。实际应用中,为了提高性能,可能会采用...
通过对《FPGA设计及应用》的深入学习,读者不仅可以掌握FPGA的基本设计技能,还能了解到当前FPGA技术的前沿应用,为在实际工作中解决复杂硬件设计问题打下坚实基础。无论你是电子工程学生还是专业工程师,这本书都是...
### FPGA架构设计详解 #### 一、引言 FPGA(Field Programmable Gate Array),即现场可编程门阵列,是一种高性能的可编程逻辑器件,广泛应用于...希望本文能为正在从事FPGA设计的工程师们提供有价值的参考和启示。
### 基于加减交替法的除法器FPGA设计与实现 #### 引言 在电子技术领域,除法器作为基础模块,在数据处理过程中扮演着关键角色。尤其在集成电路设计中,除法器因其复杂性而成为资源消耗大户,直接影响微处理器的...
总结,基于FPGA的移动目标检测(帧差法)项目展示了硬件加速在图像处理领域的优势,结合VIVADO 2018.1工具,可以在Windows 10环境下快速构建和调试高效的FPGA设计方案。对于希望在计算机视觉领域利用FPGA技术的...
3. **分块与模块化**:将设计划分为小的、可重用的功能模块,有利于代码复用和维护。每个模块应具有清晰的输入输出接口,便于系统集成。 4. **时序分析**:在设计过程中,时序分析是必不可少的。它可以帮助确定关键...
ARM7和ARM9是ARM公司推出的两种广泛应用的微处理器系列,它们在嵌入式领域有着广泛的应用,而FPGA(Field-Programmable Gate Array)作为一种可编程逻辑器件,为实现灵活的硬件设计提供了可能。Verilog HDL则是用于...
但是,对于初学者来说,从简单的核心电路设计开始学习FPGA的板级电路设计是更基础且合适的方法。 在FPGA板级电路设计过程中,开发者还需要熟悉如何使用下载线将FPGA配置文件从PC传输到FPGA器件中,这个过程被称为...
本主题将深入探讨“FPGA设计指导性原则”,特别是结合Verilog语言进行的设计方法。以下是一些核心知识点: 1. **FPGA基础知识**:FPGA是由可编程逻辑单元(CLB)、输入/输出块(IOB)、配置存储器(Configuration ...