- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
HDL建模技巧 低级建模 仿顺序操作
?
第1章低级建模的思路
首先,我将用一个简单的例子来说明一下,低级建模的最基本思路:
(一)利用C语言驱动八位发光二极管:
我们以流水灯作为例子,因为它是最经典的实验。假设我要实现流水灯效果,那么我只要建立一个简单的流水灯函数函数,Flashing。
如果要实现自左向右或者自右向左发光的流水灯,可以使用C语言创建两个简单的函数,Flashing_To_Right和Flashing_To_Left。
假设我要实现流水灯效果:
1.永远自右向左发亮。
2.永远自左向右发亮。
3.流水灯永远跑来跑去。
那么可以这样写:
对于C语言来说,这些任务都非常的简单。几乎是入门级的实验,但是将这些实验带入到V语言的环境下。确实一个记得思考的问题。
(二)利用V语言驱动八位发光二极管:
我们先看一段非常傻瓜的一段代码:
没错,上面是实现流水灯的代码。如果我说我要求:自左向右循环3次,自右向左循环5次,然后自左向右一次,自右向左一次,然后自左向右循环30次。当你听到这样的要求,你可能会崩溃.如果按照上面的写法,你会写得很长很长。
相比之下,C语言要实现以上的要求,根本就是小儿科的功夫。
给自己5分钟的思考,想想我到底要表达什么?
在C语言上,有顺序操作或者泛型编程的概念。从上述的代码中,for循环利用i变量,控制循环次数,然后调用3次Flashing_To_Right()函数。相反的V语言是并行操作的概念,类似的方法完全行不通。这就是新手们常常遇到的问题。
方法行不通,但是不代表思路不行。低级建模最基本的思路就是仿顺序操作。低级建模不是什么困难的东西,它只是一中的手段而已,只要你了解它的基本构思,它会成为很有用的工具。
第2章低级建模的结构
2.1低级建模的基本结构
从一个管理系统看来,低级建模会是一个从上直下层次的一个概念。
从上面的示意图可以看出,老板是最顶级的,而员工是最低级的。老板从上头发号,然后经经理呀,领导呀,最后苦力集团就开始动工了。当完工的时候,一一向上报告。低级建模的概念类似如此。除了老板以外,所有经理,领导,员工的集合称为低级建模。而老板是独立模块,因为老板不受命令,而且也不用报告。而多个功能模块的集合称为组织模块,如上面示意图中的永远垂死的苦力集团
2.2低级建模的准则
根据上文和上示意图的分析,低级建模基本上有以下几个准则:
1.有组织模块和功能模块之分。
2.低级建模中的功能模块均称为低级功能模块。
3.低级功能模块有如特点:有开始信号,完成信号,一个模块只有一个功能。
4.多个低级功能模块组织起来称为组织模块。
注意点:功能模块又分成低级功能模块和非低级功能模块?这话何解呢?
从上面的示意图中可以分辨出低级功能模块和非低级功能模块。低级功能模块包含开始信号和完成信号而非低级功能模块则没有(就是这样简单而已)。
2.3开始信号和完成信号的作用
先看看以下一段代码:
上面的代码可以分成两个部分,一部分是独立模块和另一部分是低级功能模块。独立模块只有一个则打工模块有三个,而且每一个打工模块仅包含一个功能而已打扫,洗厕所和跑腿.
注意:独立模块不属于低级建模。
假设老板有一系列的命令要发号:打扫==洗厕所==跑腿
当负责打扫的低级功能模块收到老板的第一号命令打扫时,该模块从待命状态变成打扫状态,此时老板可以睡一觉或者干其他的活儿。该模块便开始执行打扫任务,当该模块打扫完毕后,就给老板报告,然后返回待命状态。故老板听到打扫完成报告后,就给下一个低功能模块发下一号命令.
在低级建模的结构上,为了使不同层次的低级功能模块可以协调的工作,开始信号和完成信号扮演着很重要的角色。在现实中,如果打扫==洗厕所==跑腿是一个有次序的三部曲,那么老板不可能要员工颠倒次序来干活儿。老板得按次序,一个一个的命令员工干活。除此之外老板也不可能实时监督员工的工作状况,做老板真的很辛苦,除了发号以外,还要干很多事情,所以员工的完成报告在某种程度上可以减轻老板的活儿(使编程更简单),毕竟老板也是人,他也有疲惫的时候。
接下来的话题便是:每一个低功能模块仅包含一个功能。
虽然在现实中,确实存在全能的人类打扫,洗厕所,跑腿等技能全都集于一身。但是低级建模的准则必须遵守。你尝试想象一下,如果一个低级功能模块,包含了如上的工作打扫==洗厕所==跑腿或者更多,即不是要把代码写得很长很长.
所以呀,低级建模的准则有它一定的重要性(在日后的深入中,你会慢慢了解的)。
2.4组织的概念
组织模块在低级建模中,非常的重要。它不但简化对多个低级功能模块的调用,而且也解决了两义性或者多义性的问题。
你尝试想象一下:如果有多个打工仔,散落在不同的地方。当老板要发号的时候,既不是非常不方便。同样的,在模块化设计中,设计者往往为了使使用更简单,
您可能关注的文档
最近下载
- 信息处理技术员教程(第三版)第10章 计算机网络与互联网.pptx VIP
- [超分子化学与晶体工程基础]-晶体结构分析.pptx VIP
- 《中国心力衰竭诊断和治疗指南2024》解读.pptx VIP
- 中级宏观经济学知到课后答案智慧树章节测试答案2025年春浙江大学.docx VIP
- 2025-2026学年小学科学四年级上册粤教粤科版(2024)教学设计合集.docx
- [超分子化学与晶体工程基础]-超分子化学.pptx VIP
- 2013款上汽通用雪佛兰赛欧_汽车使用手册用户操作图解驾驶指南车主车辆说明书电子版.pdf
- E+H200涡街流量计说明书.pdf VIP
- 20_WD_2021001981_大坝安全监测系统验收规范.pdf VIP
- 信息处理技术员教程(第三版)第9章 数据库应用基础知识.pptx VIP
文档评论(0)