本公开涉及集成电路芯片领域,尤其涉及一种芯片io现场可编程控制装置及方法。
背景技术:
设计集成电路芯片是一个非常复杂并且耗时的过程,需要花费大量的时间来配置集成电路的架构,使其能使当地运作以用于其预期目的。虽然对于将会大量生产的专用集成电路(asic)而言,这种时间、努力以及花费是可接受的,但是有时设计用于特殊目的的集成电路是不实际的或者是不经济的。例如,用于控制和自动化应用的集成电路是非常复杂的,这是因为它们能够处理大量的功能。这样的集成电路广泛地用于通信、工业自动化以及医疗设备领域。用于这些应用的集成电路通常实现大量的端口来支持多通道的模数转换器(adc)、多通道的数模转换器(dac)、通用输入/输出设备(gpio)、中继器温度、传感器、音频传感器、视频传感器等等。因而集成电路可能变得相当庞大,并且内部布线十分复杂。
而对于集成电路上电测试需要涉及到功能的测试,尤其是硬件接口电路,因为传统方式采用固定电平转换,所以按照传统的做法,需要把所有接口都集成在测试设备上才能达到接口通用性及数量要求,但由于控制电路的资源有限,人们不可能把所有的外设接口都集成上去,所以只能针对不同的测试对象设计不同的接口电路;这样会导致重复设计和较差的兼容性,并且在进行测试时需要大量外部设备对调试信号进行模拟从而辅助调试,因此在没有所需外部辅助调试设备时调试工作难以进行。因此亟需一种以少量的芯片io支持大量不同种类的外部设备,并且在没有真实外部设备的情况下能够测试芯片内部功能模块的装置。
公开内容
(一)要解决的技术问题
本公开提供了一种芯片io现场可编程控制装置及方法,以至少部分解决以上所提出的技术问题。
(二)技术方案
根据本公开的一个方面,提供了一种芯片io现场可编程控制的装置,包括:输出选择模块,其输入端连接到芯片各内部功能模块,输出端连接到芯片io,用于选择内部功能模块到io管脚的输出通路以及io输出使能控制;输入选择模块,其输入端连接到芯片io,输出端连接到各内部功能模块,用于选择芯片io到内部功能模块的输入通路以及io输入使能控制;配置模块,连接到输出选择模块及输入选择模块,用于配置io控制器的输入选择及使能,以及输出选择及使能。
在本公开一些实施例中,所述输出选择模块包括:多个第一选择器,各个第一选择器的数据输入端与各个内部功能模块的输出信号端连接,第一选择器的信号选择端连接至配置模块;所述配置模块,用于按照内部功能模块输出的需求,根据逻辑连接关系选择并使能相应的第一选择器,令需要的内部功能模块输出连接至芯片io。
在本公开一些实施例中,所述输入选择模块包括:多个第二选择器,各个第二选择器的数据输入端与各个的io管脚的连接,第二选择器的信号选择端连接至配置模块;所述配置模块,用于按照芯片io输入的需求,根据逻辑连接关系选择并使能相应的第二选择器,令需要的芯片io输入连接至内部功能模块。
在本公开一些实施例中,所述第一选择器和芯片io数量相同,所述第二选择器数量和内部功能模块输入数量相同。
在本公开一些实施例中,配置模块可配置io为以下两种模式其中之一:高速功能输入输出,该高速功能的输入输出经过一级选择逻辑连接芯片io和内部功能模块;低速功能输入输出,该低速功能的输入输出经过两级选择逻辑连接芯片io和内部功能模块。
在本公开一些实施例中,所述芯片io现场可编程控制的装置还包括:输出上拉下拉控制模块,连接到配置模块,用于控制io管脚的输出上拉及下拉;输入上拉下拉控制模块,连接到配置模块,用于控制io管脚的输入上拉及下拉。
在本公开一些实施例中,所述输出上拉下拉控制模块包括:第一上拉下拉控制逻辑模块,接收来自于配置模块的控制信号控制芯片io的输出上拉及下拉;所述输入上拉下拉控制模块包括:第二上拉下拉控制逻辑模块,接收来自于配置模块的控制信号控制芯片io的输入上拉及下拉。
根据本公开的另一个方面,提供了一种芯片io现场可编程控制的方法,包括以下步骤:
步骤a,在芯片上电后,初始化控制装置,将芯片io配置为调试模式,将调试功能输入数据及使能连接到io并配置io为输入模式,将调试功能输出数据及使能连接到io并配置io为输出模式;
步骤b,初始化完成后,控制装置读取rom配置,根据rom配置判断芯片的工作模式,若是调试模式则转至步骤c,若是正常工作模式则转至步骤d;
步骤c,保持初始化连接方式,并打开调试功能,连接待调试设备到io管脚;
步骤d,根据工作模式的类型,从所有的可选功能中选出需要的功能,将该功能输入数据及使能连接到io并配置io为输入模式,将输出数据及使能连接到io并配置io为输出模式。
在本公开一些实施例中,步骤c中,在芯片里同时集成了主设备和从设备时,通过将主设备的输出和从设备的输入连接到同一管脚的输出和输入,将主设备的输入和从设备的输出也连接到同一管脚的输出和输入,在芯片io上连接成回路,以直接用主设备控制从设备进行自身测试。
在本公开一些实施例中,所述步骤c进一步包括,使用输入上拉下拉控制模块和输出上拉下拉控制模块对芯片执行调试。
在本公开一些实施例中,所述步骤d进一步包括,使用输入上拉下拉控制模块和输出上拉下拉控制模块将未使用的输入根据需要自由做上拉或下拉。
(三)有益效果
从上述技术方案可以看出,本公开芯片io现场可编程控制装置至少具有以下有益效果其中之一:
(1)通过io控制器输入选择模块、输出选择模块,可以将内部功能模块大量的输入/输出转换为少量的芯片io接口,从而精简集成电路系统规模,方便与外设连接;
(2)通过芯片io连接成回路可以在没有真实外部设备的情况下测试芯片内部功能模块,在芯片内部功能模块同时集成了主设备和从设备时,可将主设备的输出和从设备的输入连接到某一管脚的输出和输入,将主设备的输入和从设备的输出也连接到某一管脚的输出和输入,在芯片io上连接成回路,从而可以直接用主设备控制从设备,方便做自身测试;
(3)通过使用多组多路选择器,每个输出功能多路选择器的输入端是所有芯片内部功能模块的输出,输出端连接到一个芯片io的输出,每个输入功能多路选择器的输入端是从所有芯片io的输入连接过来,输出端是一个芯片内部功能模块的输入,从而使所有的输入输出可以自由配置到任意芯片io,简化pcb布线;
(4)由于低速功能的输入输出只经过两级选择逻辑连接芯片io和内部功能模块,高速功能的输入输出只经过一级选择逻辑连接芯片io和内部功能模块,提高了高速功能的输入输出性能。
(5)由于所有输入电路具有可被处理器配置的上拉及下拉控制,因此处理器通过上拉及下拉控制对输入电路做可编程操作,可用于正常工作模式的功能连接和在无外部设备时做低速设备的自身调试。
附图说明
图1为本公开实施例芯片io现场可编程控制装置的结构框图。
图2为本公开实施例芯片io现场可编程控制装置输出选择模块内部结构示意图。
图3为本公开实施例芯片io现场可编程控制装置输入选择模块内部结构示意图。
图4为本公开实施例芯片io输入功能和输出功能的可编程配置方法流程图。
图5为本公开实施例芯片io现场可编程控制装置高速功能输入输出和低速功能输入输出连接关系示意图。
具体实施方式
本公开提供了一种芯片io现场可编程控制装置,通过现场可编程控制使每个io均可以配置完全独立的输入功能和输出功能,以及独立配置输入使能和输出使能。
为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开进一步详细说明。
本公开某些实施例于后方将参照所附附图做更全面性地描述,其中一些但并非全部的实施例将被示出。实际上,本公开的各种实施例可以许多不同形式实现,而不应被解释为限于此数所阐述的实施例;相对地,提供这些实施例使得本公开满足适用的法律要求。
在本公开的第一个示例性实施例中,提供了一种芯片io现场可编程控制装置。图1为本公开第一实施例芯片io现场可编程控制装置的结构框图。如图1所示,本公开芯片io现场可编程控制装置包括:输出选择模块,输入选择模块,输出上拉下拉控制模块,输入上拉下拉控制模块以及配置模块。每个io均可以配置完全独立的输入功能和输出功能,以及独立配置输入使能和输出使能。
以下分别对本实施例芯片io现场可编程控制装置的各个组成部分进行详细描述。
输出选择模块输入端连接到各内部功能模块,输出端连接到芯片io,用于选择内部功能模块到io管脚的输出通路以及io输出使能控制。该输出选择模块包括:多个第一选择器,所述第一选择器和芯片io数量相同,各个第一选择器的数据输入端与各个内部功能模块的输出信号端连接,第一选择器的选择信号来自于配置模块。
输入选择模块输入端连接到芯片io,输出端连接到各内部功能模块,用于选择芯片io到内部功能模块的输入通路以及io输入使能控制。该输入选择模块包括:多个第二选择器,所述第二选择器数量和内部功能模块输入数量相同,各个第二选择器的数据输入端与各个的io管脚的连接,第二选择器的选择信号来自于配置模块。
输出上拉下拉控制模块连接到配置模块,用于控制芯片io的输出上拉及下拉。该输出上拉下拉控制模块包括:第一上拉下拉控制逻辑模块,接收来自于配置模块的控制信号控制芯片io的输出上拉及下拉;
输入上拉下拉控制模块连接到配置模块,用于控制io管脚的输入上拉及下拉。该输入上拉下拉控制模块包括:第二上拉下拉控制逻辑模块,接收来自于配置模块的控制信号控制芯片io的输入上拉及下拉;
配置模块连接到输出选择模块,输入选择模块,io输入上拉下拉控制模块,输出上拉下拉控制模块以及输入上拉下拉控制模块,用于配置io控制器的输入选择,输出选择,上拉选择和下拉选择。
在本公开的技术方案中,通过使用多组多路选择器,每个输出功能多路选择器的输入端是所有芯片内部功能模块的输出,输出端连接到一个芯片io的输出。每个输入功能多路选择器的输入端是从所有芯片io的输入连接过来,输出端是一个芯片内部功能模块的输入,使所有的输入输出可以自由配置到任意芯片io,简化了pcb布线。
以下以集成电路芯片系统的内部功能模块具有256路io,芯片io为48路为例进行说明。图2为输出选择模块内部结构示意图,如图2所述,其中,输出选择模块输入端连接到内部功能模块的256路输出,输出端连接到48路芯片io,用于在256路内部功能模块输出中选择到io管脚的48路输出通路。该输出选择模块包括48个第一选择器,与芯片io数量相同,48个选择器的数据输入端与256路内部功能模块的输出信号端连接,第一选择器的选择信号来自于配置模块。
图3为输入选择模块内部结构示意图,输入选择模块输入端连接到48路芯片io,输出端连接到内部功能模块的256路输入,用于选择48路芯片io到256路内部功能模块的输入通路。该输入选择模块包括256个第二选择器,与内部功能模块输入数量相同,256个第二选择器的数据输入端与48路芯片io的连接,第二选择器的选择信号来自于配置模块。
由于所有输入电路具有可被配置的上拉及下拉控制,通过上拉及下拉控制对输入电路做可编程操作,可用于正常工作模式的功能连接和在无外部设备时做低速设备的自身调试;低速功能的输入输出只经过两级选择逻辑连接芯片io和内部功能模块,高速功能的输入输出只经过一级选择逻辑连接芯片io和内部功能模块,提高了高速功能的输入输出性能。
至此,本公开第一实施例芯片io现场可编程控制装置介绍完毕。
根据本公开另一个方面,本公开的第二个示例性实施例提供了一种芯片io输入功能和输出功能的可编程配置方法,图4为本公开实施例芯片io输入功能和输出功能的可编程配置方法流程图,如图4所示,对芯片io进行输入功能和输出功能的可编程配置的方法包括以下步骤:
步骤a,在芯片上电后,初始化控制装置,将芯片io配置为调试模式,将调试功能输入数据及使能连接到io并配置io为输入模式,将调试功能输出数据及使能连接到io并配置io为输出模式;
步骤b,初始化完成后,控制装置读取rom配置,根据rom配置判断芯片的工作模式,若是调试模式则转至步骤c,若是正常工作模式则转至步骤d;
步骤c,保持初始化连接方式,并打开调试功能,连接待调试设备到io管脚,并使用输入和输出上拉下拉控制模块对芯片执行调试;
优选地,步骤c中,在调试模式下,如果在芯片里同时集成了主设备和从设备,可将主设备的输出和从设备的输入连接到某一管脚的输出和输入,将主设备的输入和从设备的输出也连接到某一管脚的输出和输入,在芯片io上连接成回路,可以直接用主设备控制从设备,方便做自身测试。
步骤d,根据工作模式的类型,从所有的可选功能中选出需要的功能,将该功能输入数据及使能连接到io并配置io为输入模式,将输出数据及使能连接到io并配置io为输出模式。
其中,步骤d中进一步包括,将未使用的输入根据需要自由做上拉或下拉。
优选地,步骤d中,可以配置io为高速功能输入输出或低速功能输入输出,图5为本公开实施例芯片io现场可编程控制装置高速功能输入输出和低速功能输入输出连接关系示意图,如图5所示,高速功能的输出经过一级选择逻辑连接到io,输入经过一级选择逻辑从io连接到内部功能模块;低速功能的输入输出经过两级选择逻辑连接io和内部功能模块。
当然,上述硬件结构还应当包含电源模块(图未示)等功能模块,这些是本领域内的一般技术人员可以理解的,本领域内一般技术人员也可以根据功能的需要,添加相应的功能模块,在此不作赘述。
至此,本公开第二实施例芯片io现场可编程控制方法介绍完毕。
至此,已经结合附图对本公开实施例进行了详细描述。需要说明的是,在附图或说明书正文中,未绘示或描述的实现方式,均为所属技术领域中普通技术人员所知的形式,并未进行详细说明。此外,上述对各元件和方法的定义并不仅限于实施例中提到的各种具体结构、形状或方式,本领域普通技术人员可对其进行简单地更改或替换,例如:
还需要说明的是,实施例中提到的方向用语,例如“上”、“下”、“前”、“后”、“左”、“右”等,仅是参考附图的方向,并非用来限制本公开的保护范围。贯穿附图,相同的元素由相同或相近的附图标记来表示。在可能导致对本公开的理解造成混淆时,将省略常规结构或构造。
并且图中各部件的形状和尺寸不反映真实大小和比例,而仅示意本公开实施例的内容。另外,在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。
再者,单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。
此外,除非特别描述或必须依序发生的步骤,上述步骤的顺序并无限制于以上所列,且可根据所需设计而变化或重新安排。并且上述实施例可基于设计及可靠度的考虑,彼此混合搭配使用或与其他实施例混合搭配使用,即不同实施例中的技术特征可以自由组合形成更多的实施例。
本公开的实施例的所有的模块都可以是硬件结构,硬件结构的物理实现包括但不局限于物理器件,物理器件包括但不局限于晶体管,忆阻器,dna计算机。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。并且,在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。
类似地,应当理解,为了精简本公开并帮助理解各个公开方面中的一个或多个,在上面对本公开的示例性实施例的描述中,本公开的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本公开要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,公开方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本公开的单独实施例。
以上所述的具体实施例,对本公开的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本公开的具体实施例而已,并不用于限制本公开,凡在本公开的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。