基于fpga的通用双向计数器的优化实现方法
【技术领域】
[0001] 本发明涉及集成电路技术领域,尤其涉及基于FPGA的通用双向计数器的优化实 现方法。
【背景技术】
[0002] 现场可编程门阵列(Field - Programmable Gate Array,FPGA)是一种具有丰富 硬件资源、强大并行处理能力和灵活可重配置能力的逻辑器件。这些特征使得FPGA在数据 处理、通信、网络等很多领域得到了越来越多的广泛应用。
[0003] 加法是最常用的逻辑结构,FPGA内部之所以有算数逻辑结构主要是为了对加法的 速率和实现进行优化。图1为目标计数器的寄存器传输级(RTL)视图,对如图1所示的RTL 逻辑进行逻辑映射,即可得到如图2所示的一种常用的通用双向计数器的逻辑映射图。逻 辑映射后,查找表(Look-Up-Table,LUT)的用量即为需要关注的逻辑资源使用量。可以看 出,在现有技术方案中,对于每一个进位位,都需要使用一个4输入LUT实现加减法操作,对 于每个输入不为一的加数,都需要额外的LUT来产生加数信号。图2中,对于每一位都是采 用三个LUT来分别实现当前位的第一加数、第二加数和和数的逻辑运算的,进而通过进位 链结构实现计数器累加。在如图1所示的通用双向计数器的逻辑结构中,其逻辑资源使用 量取决于输入数据的位宽,具体为:LUT数量=3X输入数据位宽。输入数据的位宽越大,逻 辑资源的使用量消耗就会成倍的增长,因此如何充分利用FPGA的结构特性优化设计,把资 源的使用减少到最少,并且使速度更快,是亟待解决的问题。
【发明内容】
[0004] 本发明的目的是针对现有技术的缺陷,提供了一种基于FPGA的通用双向计数器 的优化实现方法,对于每一位的逻辑运算都省去了一个查找表资源的占用,同时也有效的 降低了逻辑时延,实现了对芯片效率和面积的优化。
[0005] 在第一方面,本发明实施例提供了一种基于FPGA的通用双向计数器的优化实现 方法,包括:
[0006] 通过第一查找表逻辑输出第一加数;
[0007] 将所述计数器的四个逻辑输入信号全部输入第二查找表,逻辑运算后输出和数;
[0008] 通过绕线结构持续选通第一加数为进位选通器的第一输入信号;其中所述绕线结 构的输入为所述第一加数和所述第二查找表的一个逻辑输入信号;
[0009] 所述进位选通器根据所述和数进行逻辑选通第一输入信号或第二输入信号得到 进位输出信号;其中所述第二输入信号为进位输入信号;
[0010] 将所述进位输入信号与所述和数进行异或逻辑运算,得到所述计数器当前位的输 出结果。
[0011] 优选的,所述通过第一查找表逻辑输出第一加数具体为:
[0012] 对第一查找表进行配置,使所述第一查找表根据输入的选择信号和下载信号逻辑 输出第一加数。
[0013] 进一步优选的,所述方法还包括,在所述第一查找表中配置存储有常变量,通过所 述选择信号选择所述常变量的正值或负值参与所述第一加数的逻辑运算。
[0014] 优选的,所述将所述计数器的四个逻辑输入信号全部输入第二查找表,逻辑运算 后输出和数具体为:
[0015] 对第二查找表进行配置,使所述第二查找表根据输入的选择信号、下载信号、进位 信号和数据输入信号逻辑输出所述和数。
[0016] 进一步优选的,所述方法还包括,在所述第二查找表中配置存储有常变量,通过所 述选择信号选择所述常变量的正值或负值参与所述和数的逻辑运算。
[0017] 优选的,所述FPGA具体为CME M5或CME M7FPGA器件。
[0018] 本发明实施例提供的基于FPGA的通用双向计数器的优化实现方法,基于CME M5/ M7所特有的绕线结构,持续选通第一加数为进位选通器的第一输入信号,并无效了第二查 找表的逻辑输入信号到进位选通器的信号连接,使得可以通过一个4输入的LUT将第一加 数和第二加数的逻辑输入进行合并,仅使用一个4输入的查找表即可完成根据输入的选择 信号、下载信号、进位信号和数据输入信号,逻辑输出计数器当前位的和数,从而对于每一 位的逻辑运算都省去了一个查找表资源的占用,同时也有效的降低了逻辑时延,实现了对 芯片效率和面积的优化。
【附图说明】
[0019] 图1为现有技术提供的目标计数器的寄存器传输级视图;
[0020] 图2为现有技术提供的一种通用双向计数器的逻辑映射图;
[0021] 图3为本发明实施例提供的CME M5/M7FPGA器件的逻辑单元架构示意图;
[0022] 图4为本发明实施例提供的一种基于FPGA的通用双向计数器的优化实现方法;
[0023] 图5为本发明实施例提供的一种优化后的通用双向计数器的逻辑映射图。
【具体实施方式】
[0024] 下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
[0025] 本发明下述实施例中的方法是基于CME M5或CME M7FPGA器件实现的,为更好的 理解本发明实施例提供的技术方案,首先对CME M5/M7FPGA器件的逻辑结构进行简单说明。
[0026] 如图3所示,图3为CME M5/M7FPGA器件中的一个逻辑单元架构的示意图,CME M5/ M7FPGA器件包括多个这样的逻辑单元。在一个逻辑单元中,由三个4输入的LUT (01ut4, 401ut4和411ut4)、2个寄存器、进位、级联和算术逻辑组成。其中,LUT的本质就是一个RAM, 目前FPGA中多使用4输入LUT,所以每一个LUT可以被看做是有4条地址线的RAM。当用 户通过原理图或者HDL语言描述一个逻辑电路后,FPGA开发软件会自动计算逻辑电路的所 有可能结果,并把结果事先写入RAM中。这样每输入一个信号进行逻辑运算就等于输入一 个地址进行查表,找出地址对应的内容并输出即可。LUT可以实现和逻辑电路相同的功能。 但是与逻辑电路不同的是,LUT的实现的功能由输入决定而不是电路复杂度,LUT结果的生 成会有一定的寻址延迟。因此,减少LUT的资源使用量,可以有效的降低芯片的逻辑时延, 能够实现对芯片效率和面积的优化。
[0027] 与其他FPGA芯片不同的是,CME M5/M7FPGA器件的结构中包括有一个选通器a0, 作为绕线结构出现,可以持续选通01ut4的输出信号,同时无效401ut4的一个逻辑输入信 号到选通器cl的信号连接。本发明下述各实施例提供的基于FPGA的通用双向计数器的优 化实现方法,正是利用上述绕线结构来实现的。
[0028] 为便于与现有技术的图2进行比,下述各实施例所提供的附图中仅给出了本发明 在CME M5/M7器件中实现通用双向计数器所用资源部分的示意图,并且图中第一查找表 LUTl与图3中的01ut4、第二查找表LUT2与图3中的401ut4、绕线结构a0与图3中的选通 器a0、进位选通器MUXCY与图3中的选通器cl、异或XORCY与图3中的异或门,分别为一一 对应关系。
[0029] 图4为本发明实施例提供的基于FPGA的通用双向计数器的优化实现方法,图5为 本发明实施例提供的一种优化后的通用双向计数器的逻辑映射图。通用双向计数器是由带 进位链结构的多个1比特加法器组成的,用户可以指定任意宽度的数据输入。下面结合图 4、图5对本发明所采用的优化实现方法进行进一步的详细说明。
[0030] 如图5所示,每一位加法的逻辑运算由一个4输入的第一查找表LUT1、一个4输 入的第二查找表LUT2、一个绕线结构a0、一个进位选通器MUXCY和一个异或XORCY来完成。 LUTl和LUT2均可以最多处理任意逻辑组合的4个变量。其中,在CME M5或CME M7中,LUTl 等于加法的一个操作数,是CME M5或CME M7架构上的一个强制约束。