由潘文明先生开创的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实验手册VHDL语言100例详解》是一本专为初学者量身打造的FPGA学习资源,它与B站视频课程相配套,旨在帮助读者通过实践深入理解FPGA设计的基础知识。这本书的核心在于100个VHDL编程...
在FPGA至简设计法规范篇章中,对波形图规则、计数器规范、状态机规范、接口规范和FIFO规范进行了详细的描述和规定,这些都是设计者在进行FPGA设计时必须遵守的规范,用以确保设计的可读性、可维护性和可靠性。...
DIT-FFT至简设计实现法 工程说明 案例补充说明 本案例无论是模块划分、计数器设计、还是乒乓操作的读写处理,都始终基于“至简设计”的原则,用简易的代码结构就能实现复杂的DIT-FFT蝶形运算,代码设计风格极其简洁...
实验要求使用FPGA实现sin函数的计算,输入的角度范围为0°~360°,精度为0.1°。实验中使用了查找表法来实现sin函数的计算,首先使用Matlab计算出sin函数值,然后生成.mif文件,并在Quartus中配置FPGA的ROM。最后,...
标题中的"FPGA设计方案"指的是基于Field-Programmable Gate Array(现场可编程门阵列)的一种电子设计,这种设计通常用于实现复杂的数字逻辑功能。在这个特定的案例中,设计的主题是一个全天候温度记录仪,它利用...
《FPGA系统设计与验证实战指南》是一本深入探讨FPGA(Field-Programmable Gate Array)技术的书籍,特别适合FPGA初学者。书中详细介绍了如何进行FPGA的设计与验证,结合实战案例,帮助读者从理论到实践,全面掌握...
四大FPGA供应商的专业见解为行业提供了宝贵的设计指导,推动了FPGA技术的持续进步与发展。 #### 扩展阅读 - **深入理解FPGA设计:** 《FPGA Design: A Comprehensive Guide》by Stephen Brown and David Jackson -...
并行中值滤波与图像处理设计,结合激光条纹重心法的FPGA实现及中心位置估计技术,并行中值滤波FPGA设计,激光条纹重心法中心位置估计FPGA设计,图像处理FPGA设计,steger条纹中心估计FPGA设计,光条中心线提取FPGA...
本形状库为FPGA时序设计者提供了丰富的图形元素,包括触发器、寄存器、时钟、数据路径、同步和异步信号等,这些元素是构建时序逻辑模型的基础。通过这些预设的形状,设计师可以快速、准确地构建出时序图,提高设计...
华为FPGA设计全套是一套全面深入的FPGA学习资源,主要针对华为在FPGA领域的设计实践和技术应用。FPGA(Field-Programmable Gate Array)是可编程逻辑器件,允许用户根据自己的需求自定义硬件逻辑,广泛应用于通信、...
Visio形状库为FPGA时序设计提供了专用的图形元素,如触发器、寄存器、逻辑门、时钟信号、数据路径、定时路径标记等。设计者可以利用这些图形快速构建时序图,展示信号的传输路径、延迟和相互关系。此外,形状库还...
FPGA设计流程注意事项 FPGA 设计中的时序分析及异步设计注意事项是 FPGA 设计中非常重要的一方面。时序分析是指在 FPGA 设计中,需要对时序进行分析,以满足每一个触发器的建立和保持时间的要求。时序设计的实质...
总的来说,《Altera FPGA/CPLD设计(基础篇)(第2版)》将引导读者全面理解Altera FPGA和CPLD的特性和使用方法,通过学习本书,你可以掌握从概念设计到实际硬件实现的全过程,为在数字电子设计领域打下坚实的基础。
fpga开发FPGA设计高级进阶(清华大学电子工程系) • 掌握FPGA的基本设计原则 • 乒乓结构、流水线设计 • 异步时钟域的处理 • 状态机的设计 • 毛刺的消除 • 掌握FPGA设计的注意事项 • 从文档到设计完成 • 从设计...
这个简单的除法器设计可能不是最优化的,因为它没有考虑流水线或者分级的策略来提高运行速度,但作为一个学习实验,它足以帮助理解基本的除法器工作原理和Verilog的使用方法。实际应用中,为了提高性能,可能会采用...
### 标题:FPGA 设计简单的ATM 系统 该标题指出,本文介绍的是如何使用FPGA技术来设计一个简易的自动柜员机(ATM)系统。实际上,这里的“ATM”并非指传统意义上的自动取款机,而是特指一种基于FPGA实现的数字密码锁...
### FPGA架构设计详解 #### 一、引言 FPGA(Field Programmable Gate Array),即现场可编程门阵列,是一种高性能的可编程逻辑器件,广泛应用于...希望本文能为正在从事FPGA设计的工程师们提供有价值的参考和启示。
"第2次作业"可能涉及到特定的FPGA设计任务,例如实现简单的计数器、加法器、移位寄存器等基础电路,或者是更复杂的数字信号处理算法。这要求学生不仅掌握基本的HDL语法,还要理解数字逻辑、时序分析等概念。 ### 5....
### 基于加减交替法的除法器FPGA设计与实现 #### 引言 在电子技术领域,除法器作为基础模块,在数据处理过程中扮演着关键角色。尤其在集成电路设计中,除法器因其复杂性而成为资源消耗大户,直接影响微处理器的...