摘 要:随着科技的飞速发展,传统的电子技术逐渐被现代电子技术取代,以FPGA/CPLD为硬件,以verilog语言为软件的EDA技术应用越来越广泛,本文旨在以一个具体的序列检测器的设计为例,将以硬件描述语言来设计芯片的流程呈现给大家。 关键词:verilog;序列检测器;状态;EDA 中图分类号:TP273 文献标识码:A 1 引言(Introduction) 在数字信号的传输和数字系统产品的设计和测试过程中,往往需要用到一组特定的串行数字信号,我们把产生序列信号的模块电路称作序列信号发生器,如要求产 生一串序列“10001110”为例来给大家展示EDA设计有限状态机的过程[1]。本电路由计数器与数据选择器两部分构成,结构框图如图1所示,该锁存 输出的功能是为了消除电路产生的毛刺。 图1 结构框图 Fig.1 Structure diagram 2 序列检测器的基本工作过程(The basic working process serial detector) 有限状态机一般用来检测一组或多组由二进制码组成的脉冲序列信号,广泛应用于在数字系统中。当该特定序列检测器连续接收到一组二进制码,如果这组二进制 码与检测器中预先设置的码能匹配成功,就输出1,否则输出0。因为该检测的关键在必须连续接受正确码,中间只要出错以为,就必须重新进行检测,所以要求该 检测器记住前一次的正确码及正确序列,直到在连续的检测中所有的串行二进制码都能连续匹配成功。检测二进制码中,只要有任何一位没匹配成功都回到初始状态 重新开始匹配[2]。方框图如图2所示。 图2 状态流程图 Fig.2 State flow diagram 3 状态机的基本设计思想(The basic design idea of state machine) 在数字系统中,当状态连续变化,我们可以采用状态机的设计思想来提高设计效率,还可以增加程序的可读性,从而降低错误的概率。而有限状态机的设计思路也 是数字系统中一种常用的设计方法之一。通常情况,有限的标准状态机分为以下两种,摩尔机和米立机。两者不同在于,摩尔机中,它输出只是当前状态值的函数, 而且只在时钟上跳沿时发生作用。而米立机的输出是当前输入值、当前输出值、当前状态值三者共同的函数。本例从一串二进制数码中检测出一个已预置的8位二进 制码“10001110”,每当增加一位二进制码相当于增加一个状态,连同初始态,总共需要用9个状态来实现[3]。状态转换过程如图3所示。 图3 状态转换图 Fig.3 State transition diagram 注意:此图仅作为参考,检测不同的二进制码其过程不同! 4 设计过程(Design process) 4.1 硬件设备连接 (1)将EDA适配板JTAG接口用十芯排线和万用下载区的SOPC JTAG口连接起来,万用下载区的电源开关选择到SOPC下载的一边。 (2)将开发板上按要求设置好相关跳线。 |