由潘文明先生开创的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至简设计法规范 - **波形图规则**:制定了一套波形图的绘制标准,方便设计人员理解和交流。 - **计数器规范**:规定了计数器设计的原则和最佳实践。 - **状态机规范**:定义了状态机设计的标准...
《明德扬至简设计与应用——FPGA实验手册VHDL语言100例详解》是一本专为初学者量身打造的FPGA学习资源,它与B站视频课程相配套,旨在帮助读者通过实践深入理解FPGA设计的基础知识。这本书的核心在于100个VHDL编程...
DIT-FFT至简设计实现法 工程说明 案例补充说明 本案例无论是模块划分、计数器设计、还是乒乓操作的读写处理,都始终基于“至简设计”的原则,用简易的代码结构就能实现复杂的DIT-FFT蝶形运算,代码设计风格极其简洁...
四大FPGA供应商的专业见解为行业提供了宝贵的设计指导,推动了FPGA技术的持续进步与发展。 #### 扩展阅读 - **深入理解FPGA设计:** 《FPGA Design: A Comprehensive Guide》by Stephen Brown and David Jackson -...
本形状库为FPGA时序设计者提供了丰富的图形元素,包括触发器、寄存器、时钟、数据路径、同步和异步信号等,这些元素是构建时序逻辑模型的基础。通过这些预设的形状,设计师可以快速、准确地构建出时序图,提高设计...
华为FPGA设计全套是一套全面深入的FPGA学习资源,主要针对华为在FPGA领域的设计实践和技术应用。FPGA(Field-Programmable Gate Array)是可编程逻辑器件,允许用户根据自己的需求自定义硬件逻辑,广泛应用于通信、...
Visio形状库为FPGA时序设计提供了专用的图形元素,如触发器、寄存器、逻辑门、时钟信号、数据路径、定时路径标记等。设计者可以利用这些图形快速构建时序图,展示信号的传输路径、延迟和相互关系。此外,形状库还...
《无线通信FPGA设计》PDF版本+书中代码,详细讲解了一些无线通信算法,并通过FPGA实现了这些功能,同时上传了书中的代码。
总的来说,《Altera FPGA/CPLD设计(基础篇)(第2版)》将引导读者全面理解Altera FPGA和CPLD的特性和使用方法,通过学习本书,你可以掌握从概念设计到实际硬件实现的全过程,为在数字电子设计领域打下坚实的基础。
fpga开发FPGA设计高级进阶(清华大学电子工程系) • 掌握FPGA的基本设计原则 • 乒乓结构、流水线设计 • 异步时钟域的处理 • 状态机的设计 • 毛刺的消除 • 掌握FPGA设计的注意事项 • 从文档到设计完成 • 从设计...
这个简单的除法器设计可能不是最优化的,因为它没有考虑流水线或者分级的策略来提高运行速度,但作为一个学习实验,它足以帮助理解基本的除法器工作原理和Verilog的使用方法。实际应用中,为了提高性能,可能会采用...
### 标题:FPGA 设计简单的ATM 系统 该标题指出,本文介绍的是如何使用FPGA技术来设计一个简易的自动柜员机(ATM)系统。实际上,这里的“ATM”并非指传统意义上的自动取款机,而是特指一种基于FPGA实现的数字密码锁...
【标题】"基于FPGA简易数字闹钟设计"揭示了本次项目的核心——使用Field Programmable Gate Array(FPGA)技术来实现一个简单的数字时钟功能。FPGA是一种可编程逻辑器件,它允许用户根据需求自定义硬件逻辑,具有...
通过对《FPGA设计及应用》的深入学习,读者不仅可以掌握FPGA的基本设计技能,还能了解到当前FPGA技术的前沿应用,为在实际工作中解决复杂硬件设计问题打下坚实基础。无论你是电子工程学生还是专业工程师,这本书都是...
### FPGA架构设计详解 #### 一、引言 FPGA(Field Programmable Gate Array),即现场可编程门阵列,是一种高性能的可编程逻辑器件,广泛应用于...希望本文能为正在从事FPGA设计的工程师们提供有价值的参考和启示。
### 基于加减交替法的除法器FPGA设计与实现 #### 引言 在电子技术领域,除法器作为基础模块,在数据处理过程中扮演着关键角色。尤其在集成电路设计中,除法器因其复杂性而成为资源消耗大户,直接影响微处理器的...
《高等学校电子信息类专业"十二五"规划:基于FPGA的嵌入式系统设计:Altera SoC FPGA()》全面介绍基于Altem Nios II软核和ARM Cortex—A9硬核的嵌入式系统软硬件设计开发技术,共分为九章,主要内容包括:基于SoC FPGA...
本报告详细介绍了多功能数字时钟的设计思路、实现方法以及可能遇到的挑战和解决方案,为后续的FPGA项目提供了参考。通过这样的实践,我们深化了对FPGA技术的理解,也锻炼了实际操作和问题解决能力。
### 基于加减交替法除法器的FPGA设计与实现 #### 摘要及背景 本文深入探讨了一种创新的基于加减交替法的除法电路设计,该设计利用了现场可编程门阵列(FPGA)技术进行实现。作者潘明和许勇,来自桂林电子科技大学...