HDL建模技巧低级建模仿顺序操作.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 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组织的概念 组织模块在低级建模中,非常的重要。它不但简化对多个低级功能模块的调用,而且也解决了两义性或者多义性的问题。 你尝试想象一下:如果有多个打工仔,散落在不同的地方。当老板要发号的时候,既不是非常不方便。同样的,在模块化设计中,设计者往往为了使使用更简单,

文档评论(0)

shujukd + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档