基于FPGA的多功能数据选择器设计与实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于FPGA的多功能数据选择器设计与实现
章军海201022020671
[摘要]传统的数字系统设计采用搭积木式的方法来进行设计,缺乏设计的灵活性。随着可编程逻辑器件(PLD)的出现,传统设计的缺点得以弥补,基于PLD的数字系统设计具有很好的灵活性,便于电路系统的修改与调试。本文采用自顶向下的层次化设计思想,基于FPGA设计了一种多功能数据选择器,实现了逻辑单元可编程、I/O单元可编程和连线可编程功能,并给出了本设计各个层次的原理图和仿真时序图;本文还基于一定的假设,对本设计的速度和资源占用的性能进行了优化。
[关键词]层次化设计;EDA;自顶向下;最大时延
0引言:
在现代数字系统的设计中,EDA(电子设计自动化)技术已经成为一种普遍的工具。基于EDA技术的设计中,通常有两种设计思想,一种是自顶向下的设计思想,一种是自底向上的设计思想[1]。其中,自顶向下的设计采用层次化设计思想,更加符合人们的思维习惯,也容易使设计者对复杂系统进行合理的划分与不断的优化,因此是目前设计思想的主流。基于层次化设计思想,实现逻辑单元、I/O单元和连线可编程可以提高资源的利用效率,并且可以简化数字系统的调试过程,便于复杂数字系统的设计[2][3]。
1系统原理图构架设计
1.1系统整体设计原理
本设计用于实现数据选择器和数据分配器及其复用的I/O端口和连线的可编程却换,提高系统的资源利用效率。系统顶层原理框图如图1所示,系统拥有两个地址选择端口a0、a1,一个功能选择端口ctr,还有五路I/O复用端口。其中,地址选择端口用于决定数据选择器的数据输入端和数据分配器的数据输出端;功能选择端口用于切换数据选择器和数据分配器,以及相应的I/O端口和连线;I/O复用端口数据的输入和输出,其功能表如表一所示。
图1顶层模块原理图
表一顶层系统功能表
根据层次化设计思想,要实现上述功能表中的功能,系统得由数据选择器、数据分配器和端口控制器三部分组成。其中,数据选择器和数据分配器为功能单元,分别完成相应的数据处理功能,端口控制器完成相应数据端口模式和功能的切换功能。根据对各个模块的功能要求,可以得到如图2所示的系统框架原理图。
图2 系统框架原理图
1.2数据选择器设计原理
数据选择器用于控制有效数据的输出,能够通过地址选择线来选定相应的通道作为输出,提高了数据的传输效率。本设计中的数据选择器采用了层次化设计思想,通过将本设计中优化过的一种自定义逻辑运算模块和与非门组合构成。由于自定义逻辑运算模块是一种速度快、片上面积小的与非结构模块,该数据选择器形成了与非-与非结构,有运行速度快、驱动能力强且占用片上面积小等优点。该模块有两个数据端口a1、a0,用于选择相应的通道;还有四个数据端口x0、x1、x2、x3,分别是四个数据输入通道;还有一个输出通道y_select,用于输出选择的数据。其原理框图如图3所示,将自定义逻辑单元的输出,经过一个四输入的与非门,得到最终的输出信号y_select。要实现如表二所示的逻辑功能,得用a0、a1的地址选择信息,来选择四个输入中的一个作为输出,以实现数据选择的功能。
其原理图和功能表分别如下图所示:
图3 数据选择器原理图
1.3数据分配器设计原理
数据分配器用于选择数据的传输途径,在信号传输过程中能够通过地址选择线选择传输信道。本设计的数据分配器的设计与数据选择器的设计思想类似,采用了层次化设计思想,基于自定义的优化后的逻辑运算模块,对逻辑运算模块的信号进行取非运算得到相应的输出。整个模块采用了与非-非门结构,其传输速度快,驱动能力强,占用资源较其它形式少。 该模块有两个地址选择端口a1、a0,用于选通逻辑运算模块相应的输出;有一个输入端口,用于输入要传输的数据;四个输出端口x_0、x_1、x_2、x_3,作为四路输出通道。其结构原理图如图4所示,完成如表三所示功能,通过数据线选择正确的通道,完成有效分配功能。
图4 数据分配器原理图
1.4端口控制器设计原理
端口控制器用于对本系统的功能、I/O 端口和连线进行切换,是本系统实现可编程I/O 单元设计、可编程逻辑单元设计和可编程连线的核心。本设计的端口控制器采用三态门作为选通开关,利用三态门的特性有效的对I/O 端口进行配置,使不用的端口形成高阻态,以实现I/O 端口的多路复用和输入输出的有效切换。其具体结构原理图如图5所示。
图5 端口控制器原理图
该模块由三态门和非门构成,拥有一个选择端口ctr用于对功能、I/O端口和连线进行选择,是本系统控制的核心;拥有四个单向输入端口x_0、x_1、x_2、x_3,用于将数据分配器的处理结果送到系统输出端口;拥有四个单向输出端口x0、x1、x2、x3,将输入的四路数据分别送到数据选择器的五个输入端口;拥有四个输入输出端口,通过切换来实现数据
表四端口控制器功能表
1.5逻辑运算模块设计原理
逻辑运算模块用于完成本系统的主要逻辑运算,因此是本系统的处理速度和占用片上面积等参数的主要体现,本模块通过被相应的功能模块调用来完成各功能的逻辑运算。其具体结构原理图如图6所示,该模块有两个数据选择端口a0、a1,用于选通相应的数据通道;拥有四个数据输入端口x0、x1、x2、x3,分别用于传输四路独立的信号;拥有四路输出端口y0、y1、y2、y3,用于输出四路独立的信号。该模块利用图6所示原理图,完成表五所示的逻辑功能。
表五逻辑运算单元功能表
该模块作为本系统主要的逻辑运算单元,其性能的好坏对系统的整体性能有很大影响,本系统中数据选择器和数据分配器都调用了该模块,因此该模块的设计应该将一些性能参数纳入考虑范围。本系统考虑到逻辑模块的时延和片上面积,前者影响系统的处理速度,后者代表系统资源的利用效率。电路的单元时间延迟取决于时间常量RC,当输出电阻恒定时,其输出延时取决于电容值C,现在以最小单晶管的电容为单位,假设源漏电容为栅电容的两