进行数字系统设计时,通常需要考虑多方面的条件和要求,如设计的功能和性能要求,元器件的资源分配和设计工具的可实现性,系统的开发费用和成本等。虽然具体设计的条件和要求千差万别,实现的方法也各不相同,但数字系统设计还是具备一些共同的方法和规则。
1.分割准则 自项向下等层次化设计方法,首先需要对系统功能进行分割。分割过程中,若分割过粗,则不易用逻辑语言表达;分割过细,则带来不必要的重复和繁琐。掌握分割程度,可以遵循以下的原则:分割后最底层的逻辑块应适合用逻辑语言进行表达;相似的功能应该设计成共享的基本模块;接口信号尽可能少;同层次的模块之间,在资源和I/O分配上,尽可能平衡,以便结构匀称;模快的划分和设计,尽可能做到通用性好,易于移植 2.系统设计的可测性 在系统设计中,应该同时考虑功能检查和性能的测试,即系统可测性。一些有经验的设计者会自觉地在设计系统的同时设计观测电路,指示系统内部的工作状态。建立观测电路应遵循以下原则:具有系统的关键点信号,如时钟、同步信号和状态等信号;具有代表性的节点和线路上的信号等。 可测性的发展 边界扫描测试(BST)架构提供了在PCB上狭小的空间中高效的测试器件的能力。BST架构使得器件在正常工作的情况下,可以不使用物理探针测试管脚连接情况和捕捉功能性的数据。器件当中的边界扫描单元迫使信号传输到管脚中,或者从管脚和内核逻辑中捕获信号。测试数据串行移位进入边界扫描单元。捕捉得到的数据被串行移出器件,并且在外部和期望结果相比较。目前,在复杂数字系统中采用边界扫描测试技术得到一定的应用。 3.系统设计的重用性 1)设计者应该尽可能采用同步电路进行设计,系统中应该有时钟和复位信号。异步电路会造成较大延时和逻辑竞争,容易引起系统的不稳定,而同步电路则是按照统一的时钟工作,稳定性好。因此在设计时尽可能采用同步电路进行设计,避免使用异步电路和锁存器。在必须使用异步电路时,应采取措施来避免竞争和增加稳定性。随着FPGA/CPLD设计规模的逐渐增加,片上时钟分布的质量变得非常的重要,要充分有效的利用FPGA/CPLD专用的时钟分布资源和使用方法,产生高扇出低畸变的时钟信号。 2)FPGA/CPLD的结构可以提供一定数量的片上存储器块。在FPGA/CPLD设计当中,存储器通常使用FPGA/CPLD芯片厂商支持的模块或者是模块发生器,在高速的SRAM(如350MHz)、零总线等待时间、大容量特点的存储器在SOC设计中推荐采用片外存储器。可以通过如下3种方式实现分布式RAM或者是块状RAM:RTL描述;图形例化;器件指定的存储器编译器。 3)复杂、系统级芯片需要各种标准的I/O接口。当需要设计重用模块时,选择支持所需要I/O电压标准的SOC芯片。任何包含不同I/O标准的重用模块应该充分使用FPGA结构提供的I/O标准的优点,并应该对所需要的电压标准做详细的说明。 4)编码是数字系统设计者应该给予足够重视的一项工作。在进行编码时,应该尽量用二进制编码方式,以提高编码效率和资源的利用率,减少对器件插入线、输出线、乘积项、寄存器等资源的消耗。对内部状态编码,应该尽量采用最短的编码形式。除此之外,对编码的结构也需要进行优化并对无效编码进行相应的处理。对于实际情况中不可能出现、但在编码中存在的无效编码,如果不会造成危害性结果,可以按任意态处理;对于会带来危害的非法编码,应采取措施防止或引导到有效编码状态上来。 |
电工学习网 ( )
GMT+8, 2021-12-6 21:07