您好、欢迎来到现金彩票网!
当前位置:2019欢乐棋牌 > 状态机 >

硬件描述语言Verilog HDL设计进阶之: 典型实例-状态机应用

发布时间:2019-06-15 22:00 来源:未知 编辑:admin

  的思想。状态机,顾名思义,就是一系列状态组成的一个循环机制,这样的结构使得编程人员能够更好地使用HDL语言,同时具有特定风格的状态机也能提高程序的可读性和调试性。

  本实例通过设计一个状态机来控制红色飓风II代Xilinx开发板上面的8个LED灯循环闪烁。在本实例状态机的设计过程中,读者需要着重注意状态机设计的一些特性。

  状态机的状态定义风格(使用parameter参数定义状态)。

  本实例的具体步骤可参见2.6节,在此不再详述,仅给出主要的操作流程以及状态机的设计输入方法。

  对于简单的状态机,使用手动输入的方式进行编写是最直接的。但是如果需要进行复杂的状态机设计,使用状态图设计输入方式则会更加方便。下面介绍使用状态图进行状态机设计的一般步骤。

  使用ISE创建工程后,为工程添加新的设计输入,选择“StateDiagram”选项,如图4.3所示。

  在这个专门的工具中,读者就可以很方便地进行状态机的设计。使用这个工具进行状态机设计的步骤主要分为3个,下面分别介绍。

  在本实例中,我们在向导第1页设置一个8状态的状态机,如图4.5所示。在该页中,还可以设置状态机图形的形状。在对话框的右侧有图形的预览效果,用户可根据自己的喜好设置图形的形状。

  在状态机向导的第2页,我们为状态机使用同步复位模式,建立一个同步状态机,如图4.6所示。

  在状态机向导的第3页,可以设置状态机的转换模式,本实例中使用Next转换模式,如图4.7所示。

  设置完毕后,单击“Finish”按钮即可完成状态机的创建。在StateCAD工具的工作区将出现如图4.8所示的状态机图形。

  创建状态机后,就要为其中的每一个状态添加状态任务。首先,双击如图4.8所示的图形中的STATE0状态,为STATE0添加任务。此时,将出现如图4.9所示的状态任务编辑器。

  在输出向导对话框里面有很多可以选择的逻辑,根据不同的需要选择逻辑资源,并输入参数。单击“OK”按钮即可完成对STATE0的状态任务编辑。

  设置完状态任务后,还需要为状态之间的转换调价条件。可以双击两个状态之间的连线设定状态转移条件,此时将出现条件编辑器,如图4.12所示。

  在该对话框中,可以在“Condition”下面填写转移条件(例如:cnt=10),也可以单击“OutputWizard”按钮打开输出向导进行设置。设置结束后,单击“OK”按钮,完成两个状态之间的转换条件设置。

  按照同样的方法为需要添加转换条件的状态连线加载状态转移条件。完成后,得到如图4.13所示的状态机。

  至此,一个基本的状态机已经建立完毕。这样的一个状态机已经可以在我们的系统中使用。不过在使用之前,我们还需要为StateCAD工具做一些设置,才能使图形形式的状态机转化为HDL语言的形式。

  ②选择状态机的优化方向,用户可以选择速度优先、占用面积优先以及手动设置。在本实例中我们选择速度优先,如图4.16所示。

  ③对状态机的性能改善方式进行选择,如图4.17所示,本实例选择保证覆盖面积模式。

  ⑤为状态机选择输出的HDL语言形式以及综合的EDA工具。在本实例中,选择Verilog语言及XilinxXST综合工具,如图4.19所示。

  经过这5个步骤的设置,就完成了状态机的优化设置,可以开始生成Verilog语言形式的状态机了。

  按钮,开始生成Verilog状态机。如果设计没有错误,将出现如图4.20所示的结果对线状态机生成结果

  英特尔借助全新10纳米英特尔® Agilex™ FPGA家族,推动打造以数据为中心的世界

  英特尔宣布首款 58Gbps FPGA 收发器开始批量生产,支持 400G 以太网部署

  上一篇:硬件描述语言Verilog HDL设计进阶之:自动转换量程频率计控制器

  下一篇:硬件描述语言Verilog HDL设计进阶之:使用函数实现简单的处理器

http://emmaclarkson.com/zhuangtaiji/42.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有