半导体装置.pdf

上传人:a1 文档编号:4332757 上传时间:2018-09-14 格式:PDF 页数:99 大小:23.84MB
返回 下载 相关 举报
摘要
申请专利号:

CN201180028965.6

申请日:

2011.06.13

公开号:

CN102948077A

公开日:

2013.02.27

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):H03K 19/173申请日:20110613|||公开

IPC分类号:

H03K19/173

主分类号:

H03K19/173

申请人:

太阳诱电株式会社

发明人:

石黑隆; 佐藤正幸; 弘中哲夫; 稻木雅人; 岛崎等

地址:

日本东京都

优先权:

2010.06.24 JP 2010-144237; 2010.06.24 JP 2010-144238; 2010.06.24 JP 2010-144240; 2011.01.24 JP 2011-012427

专利代理机构:

北京三友知识产权代理有限公司 11127

代理人:

李辉;马建军

PDF下载: PDF下载
内容摘要

本发明的课题是试图减少构成所希望的逻辑电路的存储元件块的总量。本发明提供一种半导体装置,包括:N(N为2以上的整数)根地址线、N根数据线和多个存储部,各存储部具有地址译码器和多个存储元件,该地址译码器对从上述N根地址线输入的地址进行译码并向字线输出字选择信号,该多个存储元件连接于上述字线与数据线,分别存储构成真值表的数据,并根据从上述字线输入的上述字选择信号,与上述数据线进行上述数据的输入输出,上述存储部的N根地址线分别连接于上述存储部的其他N个存储部的数据线,并且上述存储部的N根数据线分别连接于上述存储部的其他N个存储部的地址线。

权利要求书

权利要求书一种半导体装置,其特征在于,包括:N(N为2以上的整数)根地址线、N根数据线和多个存储部,各存储部具有地址译码器和多个存储元件,该地址译码器对从所述N根地址线输入的地址进行译码并向字线输出字选择信号,该多个存储元件与所述字线和数据线连接,分别存储构成真值表的数据,并根据从所述字线输入的所述字选择信号,向所述数据线输出所述数据或从所述数据线输入所述数据,所述存储部的N根地址线分别与所述存储部的其他N个存储部的数据线连接,并且所述存储部的N根数据线分别与所述存储部的其他N个存储部的地址线连接。根据权利要求1所述的半导体装置,其中,所述N根地址线和所述N根数据线分别通过1根地址线和1根数据线形成一对。根据权利要求1或2所述的半导体装置,其中,还具有对所述多个存储部进行选择的存储部译码器。根据权利要求1~3的任一项所述的半导体装置,其中,具有顺序电路,所述多个存储部将所述N根数据线中的至少1根数据线与所述顺序电路的信号输入线连接,并将所述N根地址线中的至少1根地址线与所述顺序电路的信号输出线连接。根据权利要求1~4的任一项所述的半导体装置,其中,所述N为6~8的整数。根据权利要求1~5的任一项所述的半导体装置,其中,所述多个存储部将所述N根数据线中的6根数据线分别与相邻的其他6个存储部的1根数据线连接,并将所述N根地址线中的6根地址线分别与所述相邻的其他6个存储部的1根数据线连接。根据权利要求1~6的任一项所述的半导体装置,其中,所述地址译码器分为行译码器和列译码器,所述行译码器对从M(M为5以下的整数,L为N-5的整数)根地址线输入的地址进行译码,并向所述字线输出字选择信号,所述列译码器对从L根地址线输入的地址进行译码,并输出对从所述多个存储元件输出的N根数据线进行选择的数据选择信号。根据权利要求1~7的任一项所述的半导体装置,其中,与所述多个存储部中的至少1个存储部相邻的其他N个存储部中的2个存储部自所述至少1个存储部,沿着第一方向隔开第一距离而配置,所述相邻的其他N个存储部中的2个存储部自所述至少1个存储部,沿着与所述第一方向交差的第二方向隔开第二距离而配置,所述相邻的其他N个存储部中的2个存储部自所述至少1个存储部,沿着与所述第一方向和所述第二方向交差的第三方向隔开第三距离而配置,所述第一~第三距离以第一距离、第二距离、第三距离的顺序变长。根据权利要求1~8的任一项所述的半导体装置,其中,所述第一方向与所述第二方向彼此正交。根据权利要求1~9的任一项所述的半导体装置,其中,所述多个存储部的至少1个存储部将1根地址线与相邻的其他存储部以外的存储部的数据线连接。根据权利要求6~10的任一项所述的半导体装置,其中,所述多个存储部的任一个自所述多个存储部中的至少1个存储部,沿着所述第一~第三方向的任一方向配置,所述多个存储部的至少1个存储部将1根地址线连接到配置于所述第一~第三距离的任一个的5倍的位置上的存储部的数据线。根据权利要求1~11的任一项所述的半导体装置,其中,所述多个存储部被作为可重构的逻辑部件以及/或连接部件来使用。根据权利要求1~12的任一项所述的半导体装置,其中,还具有与存储构成所述真值表的数据的存储装置连接的输入输出部。根据权利要求13所述的半导体装置,其中,还具有存储构成所述真值表的数据的存储装置。根据权利要求1~14的任一项所述的半导体装置,其中,物理布线层数为4层以下。一种半导体装置,其特征在于,包括:分别具有多个存储部的第一以及第二逻辑部,各存储部具有地址译码器和多个存储元件,该地址译码器对从第一地址线输入的存储动作用地址或从第二地址线输入的逻辑动作用地址进行译码,并向字线输出字选择信号,该多个存储元件与所述字线和数据线连接,分别存储构成对逻辑动作或连接关系进行规定的真值表的数据,并根据从所述字线输入的所述字选择信号与输入输出所述数据的数据线连接;和运算处理部,该运算处理部具有:与所述第一逻辑部所具有的存储部的第一地址线及数据线连接的第一输入输出部;与所述第二逻辑部所具有的存储部的第二地址线及数据线连接的第二输入输出部;以及对所述第一输入输出部进行输出存储动作用地址以及数据的控制,并对所述第二输入输出部进行输出逻辑动作用地址且接收数据的控制的控制部。根据权利要求16所述的半导体装置,其中,包含于第一逻辑部或第二逻辑部的所述存储部的逻辑动作用地址线分别与所述存储部的其他存储部的数据线连接,并且所述存储部的数据线分别与所述存储部的其他存储部的逻辑动作用地址线连接。根据权利要求16或17所述的半导体装置,其中,包含于所述第一逻辑部以及所述第二逻辑部的所述多个存储部是可重构的。根据权利要求16~18的任一项所述的半导体装置,其中,所述第一逻辑部以及所述第二逻辑部分别具有对所述多个存储部进行选择的存储部译码器。根据权利要求16~19的任一项所述的半导体装置,其中,还具有与存储构成所述真值表的数据的存储装置连接的输入输出部。根据权利要求16~20的任一项所述的半导体装置,其中,还具有存储构成所述真值表的数据的存储装置。根据权利要求16~21的任一项所述的半导体装置,其中,物理布线层数为4层以下。根据权利要求16~22的任一项所述的半导体装置,其中,所述第一逻辑部所具有的所述存储部的数量与所述第二逻辑部所具有的所述存储部的数量是相同的。根据权利要求16~23的任一项所述的半导体装置,其中,所述地址译码器分为行译码器和列译码器,所述行译码器对从M(M为5以下的整数,L为N-5的整数)根地址线输入的地址进行译码,并向所述字线输出字选择信号,所述列译码器对从L根地址线输入的地址进行译码,并输出对从所述多个存储元件输出的N根数据线进行选择的数据选择信号。一种使用了运算处理部的半导体装置的控制方法,其特征在于,包括:所述运算处理部向第一逻辑部输出对逻辑动作或连接关系进行规定的真值表数据的步骤,其中所述第一逻辑部具有多个存储部,各存储部具有多个存储元件;将所述对逻辑动作或连接关系进行规定的真值表数据存储于所述第一逻辑部的存储部的步骤;所述运算处理部向第二逻辑部输出逻辑动作用地址的步骤,其中所述第一逻辑部具有多个存储部,各存储部具有多个存储元件;所述第二逻辑部的存储部从由所述逻辑动作用地址确定的存储元件输出数据的步骤;所述运算处理装置从所述第二逻辑部接收数据的步骤。根据权利要求25所述的控制方法,其中,所述运算处理装置包含于所述半导体装置。一种半导体装置,其特征在于,包括:对数据进行运算处理的运算处理部;和作为具有多个存储部以及输入输出部的逻辑部的运算处理部,各存储部具有地址译码器和多个存储元件,该地址译码器对从地址线输入的地址进行译码,并向所述字线输出字选择信号,该多个存储元件与数据线和字线连接,分别存储构成对逻辑动作或连接关系进行规定的真值表的数据,并根据从所述字线输入的所述字选择信号与输入输出所述数据的数据线连接;所述输入输出部将所述运算处理部的至少1个输出信号线和所述地址线的至少1个进行连接,并将所述运算处理部的至少1个输入信号线和所述数据线的至少1个进行连接。根据权利要求27所述的半导体装置,其中,所述存储部的地址线分别与所述存储部的其他存储部的数据线连接,并且所述存储部的数据线分别与所述存储部的其他存储部的地址线连接。根据权利要求26或27所述的半导体装置,其中,所述多个存储部是可重构的。根据权利要求26~29的任一项所述的半导体装置,其中,所述逻辑部还具有对所述多个存储部进行选择的存储部译码器。根据权利要求26~30的任一项所述的半导体装置,其中,还具有与存储构成所述真值表的数据的存储装置连接的输入输出部。根据权利要求26~31的任一项所述的半导体装置,其中,还具有存储构成所述真值表的数据的存储装置。根据权利要求26~32的任一项所述的半导体装置,其中,物理布线层数为4层以下。根据权利要求26~33的任一项所述的半导体装置,其中,所述地址译码器分为行译码器和列译码器,所述行译码器对从M(M为5以下的整数,L为N-5的整数)根地址线输入的地址进行译码,并向所述字线输出字选择信号,所述列译码器对从L根地址线输入的地址进行译码,并输出对从所述多个存储元件输出的N根数据线进行选择的数据选择信号。一种使用了运算处理部的半导体装置的控制方法,其特征在于,包括:所述运算处理部向包含于所述运算处理部的逻辑部输出地址的步骤,其中,所述逻辑部具有多个存储元件,各存储元件分别存储构成对逻辑动作或连接关系进行规定的真值表的数据;所述逻辑部从与所述运算处理部的至少1个输出信号线连接的至少1个地址线接收所述地址的步骤;所述逻辑部从由所述地址确定的存储元件输出数据的步骤;所述逻辑部借助于与所述运算处理部的至少1个输入信号线连接的至少1个数据线,向所述运算处理部输出所述数据的步骤。根据权利要求35所述的控制方法,其中,所述逻辑部从与所述逻辑部内的存储部相连的至少1个数据线向所述运算处理部的至少1个输入信号线输出所述读出的数据。根据权利要求35或36所述的控制方法,其中,所述运算处理装置包含于所述半导体装置。一种半导体装置,其特征在于,包括:多个可编程逻辑部,该多个可编程逻辑部分别具有多个存储单元装置,且当向所述存储单元装置写入真值表数据时,该多个可编程逻辑部作为逻辑部件或连接部件工作;高速缓存部,该高速缓存部分别保持作为多个所述真值表数据的多个构成信息;构成控制部,在所述多个可编程逻辑部中的第一可编程逻辑部通过构成分支逻辑的第一构成信息而被重构的情况下,该构成控制部通过构成所述分支逻辑的分支目的地电路的所述第二构成信息对所述多个可编程逻辑部中的第二可编程逻辑部进行重构。根据权利要求38所述的半导体装置,其中,所述高速缓存部将表示运算器的真值表数据亦即运算器数据和表示状态迁移的真值表数据亦即控制数据分开保持,所述构成控制部从所述高速缓存部分别读入所述控制数据和包含通过所述控制数据的状态迁移表示的运算器的所述运算器数据,并对所述可编程逻辑部进行重构。根据权利要求38或39所述的半导体装置,其特征在于,还具有包含所述高速缓存部所保持的控制数据的存储部,所述构成控制部接着所述高速缓存部所保持的控制数据,从所述存储部读出用于重构所述可编程逻辑部的控制数据,并将该控制数据存储至所述高速缓存部。根据权利要求38~40的任一项所述的半导体装置,其特征在于,存储于所述存储部的所述控制数据的真值表数据被压缩,所述高速缓存部保持已压缩的真值表数据,所述构成控制部对所述已压缩的真值表数据进行解压缩,利用该解压缩后的真值表数据来重构所述可编程逻辑部。根据权利要求1~4的任一项所述的半导体装置,其中,在所述多个可编程逻辑部中的第一可编程逻辑部通过构成分支逻辑的第三构成信息被重构,根据利用已预测为所述第三构成信息的分支逻辑的分支目的地电路的第四构成信息所构成的第二可编程逻辑部的运算结果,所述第四构成信息未构成所述第三构成信息的分支逻辑的分支目的地电路的情况下,所述构成控制部利用包含所述分支逻辑的分支目的地的第五构成信息来重构所述第二可编程逻辑部以外的可编程逻辑部。

说明书

说明书半导体装置
技术领域
本发明涉及半导体装置。
背景技术
PLD(Programmable Logic Device,可编程逻辑器件)广为人知。PLD为可对所构成的逻辑电路进行变更的半导体装置,并具有多个逻辑部件以及多个连接部件。
逻辑部件作为组合电路或顺序电路工作。逻辑部件例如为由构成真值表的多个存储元件构成的存储元件块。多个存储元件例如为SRAM(Static Random AccessMemory,静态随机存取存储器)。
连接部件对逻辑部件间的连接进行切换。连接部件例如为晶体管开关元件。因此,PLD例如对SRAM进行改写,并通过开关元件的导通/截止对所构成的逻辑电路进行改写。
使存储元件块作为连接部件工作的半导体装置已被公开。
现有技术文献
专利文献
专利文献1:日本特开2003-224468号公报
专利文献2:日本特开2003-149300号公报
专利文献3:国际公开第07/060763号小册子
专利文献4:国际公开第09/001426号小册子
专利文献5:国际公开第07/060738号小册子
专利文献6:日本特开2009-194676号公报
发明内容
发明要解决的课题
在使存储元件块作为连接部件工作的半导体装置中,通过提高作为逻辑部件工作的存储元件的比率,能够减少构成所希望的逻辑电路的存储元件块的总量。
用于解决课题的手段
一方面,本发明的目的在于减少构成所希望的逻辑电路的存储元件块的总量。
用于解决上述课题的实施方式如下述的第一组的(1)~(15)中所述。
(1)一种半导体装置,其特征在于,包括:N(N为2以上的整数)根地址线、N根数据线和多个存储部,
各存储部具有地址译码器和多个存储元件,
该地址译码器对从上述N根地址线输入的地址进行译码并向字线输出字选择信号,
该多个存储元件与上述字线和数据线连接,分别存储构成真值表的数据,并根据从上述字线输入的上述字选择信号,向上述数据线输出上述数据或从上述数据线输入上述数据,
上述存储部的N根地址线分别与上述存储部的其他N个存储部的数据线连接,并且上述存储部的N根数据线分别与上述存储部的其他N个存储部的地址线连接。
(2)根据(1)中所述的半导体装置,其中,上述N根地址线和上述N根数据线分别通过1根地址线和1根数据线形成一对。
(3)根据(1)或(2)中所述的半导体装置,其中,还具有对上述多个存储部进行选择的存储部译码器。
(4)根据(1)~(3)的任一项所述的半导体装置,其中,具有顺序电路,上述多个存储部将上述N根数据线中的至少1根数据线与上述顺序电路的信号输入线连接,并将上述N根地址线中的至少1根地址线与上述顺序电路的信号输出线连接。
(5)根据(1)~(4)的任一项所述的半导体装置,其中,上述N为6~8的整数。
(6)根据(1)~(5)的任一项所述的半导体装置,其中,
上述多个存储部将上述N根数据线中的6根数据线分别与相邻的其他6个存储部的1根数据线连接,并将上述N根地址线中的6根地址线分别与上述相邻的其他6个存储部的1根数据线连接。
(7)根据权利要求(1)~(6)的任一项所述的半导体装置,其中,
上述地址译码器分为行译码器和列译码器,
上述行译码器对从M(M为5以下的整数,L为N-5的整数)根地址线输入的地址进行译码,并向上述字线输出字选择信号,
上述列译码器对从L根地址线输入的地址进行译码,并输出对从上述多个存储元件输出的N根数据线进行选择的数据选择信号。
(8)根据(1)~(7)的任一项所述的半导体装置,其中,
与上述多个存储部中的至少1个存储部相邻的其他N个存储部中的2个存储部自上述至少1个存储部沿着第一方向隔开第一距离而配置,
上述相邻的其他N个存储部中的2个存储部自上述至少1个存储部,沿着与上述第一方向交差的第二方向隔开第二距离而配置,
上述相邻的其他N个存储部中的2个存储部自上述至少1个存储部,沿着与上述第一方向和上述第二方向交差的第三方向隔开第三距离而配置,
上述第一~第三距离以第一距离、第二距离、第三距离的顺序变长。
(9)根据(1)~(8)的任一项所述的半导体装置,其中,
上述第一方向与上述第二方向彼此正交。
(10)根据(1)~(9)的任一项所述的半导体装置,其中,
上述多个存储部的至少1个存储部将1根地址线与相邻的其他存储部以外的存储部的数据线连接。
(11)根据(6)~(10)的任一项所述的半导体装置,其中,
上述多个存储部的任一个自上述多个存储部中的至少1个存储部,沿着上述第一~第三方向的任一方向配置,
上述多个存储部的至少1个存储部将1根地址线连接到配置于上述第一~第三距离的任一个的5倍的位置上的存储部的数据线。
(12)根据(1)~(11)的任一项所述的半导体装置,其中,
上述多个存储部被作为可重构的逻辑部件以及/或连接部件来使用。
(13)根据(1)~(12)的任一项所述的半导体装置,其中,
还具有与存储构成上述真值表的数据的存储装置连接的输入输出部。
(14)根据(13)所述的半导体装置,其中,
还具有存储构成上述真值表的数据的存储装置。
(15)根据(1)~(14)的任一项所述的半导体装置,其中,
物理布线层数为4层以下。
此外,使存储元件块作为连接部件工作的半导体装置可与其他装置进行数据的输入输出。但是,当与其他装置之间的数据输入输出方式未定时,上述半导体装置不能与其他装置进行数据的输入输出。
在另一侧面,本发明的目的在于进行半导体装置与运算处理装置之间的数据输入输出。
用于解决上述课题的实施方式如下述的第二组的(1)~(11)中所述。
(1)一种半导体装置,其特征在于,包括:
分别具有多个存储部的第一以及第二逻辑部,各存储部具有地址译码器和多个存储元件,该地址译码器对从第一地址线输入的存储动作用地址或从第二地址线输入的逻辑动作用地址进行译码,并向字线输出字选择信号,该多个存储元件与上述字线和数据线连接,分别存储构成对逻辑动作或连接关系进行规定的真值表的数据,并根据从上述字线输入的上述字选择信号与输入输出上述数据的数据线连接;和
运算处理部,该运算处理部具有:与上述第一逻辑部所具有的存储部的第一地址线及数据线连接的第一输入输出部;与上述第二逻辑部所具有的存储部的第二地址线及数据线连接的第二输入输出部;以及对上述第一输入输出部进行输出存储动作用地址以及数据的控制,并对上述第二输入输出部进行输出逻辑动作用地址且接收数据的控制的控制部。
(2)根据(1)所述的半导体装置,其中,
包含于第一逻辑部或第二逻辑部的上述存储部的逻辑动作用地址线分别与上述存储部的其他存储部的数据线连接,并且上述存储部的数据线分别与上述存储部的其他存储部的逻辑动作用地址线连接。
(3)根据(1)或(2)所述的半导体装置,其中,
包含于上述第一逻辑部以及上述第二逻辑部的上述多个存储部是可重构的。
(4)根据(1)~(3)的任一项所述的半导体装置,其中,
上述第一逻辑部以及上述第二逻辑部分别具有对上述多个存储部进行选择的存储部译码器。
(5)根据(1)~(4)的任一项所述的半导体装置,其中,
还具有与存储构成上述真值表的数据的存储装置连接的输入输出部。
(6)根据(1)~(5)的任一项所述的半导体装置,其中,
还具有存储构成上述真值表的数据的存储装置。
(7)根据(1)~(6)的任一项所述的半导体装置,其中,
物理布线层数为4层以下。
(8)根据(1)~(7)的任一项所述的半导体装置,其中,
上述第一逻辑部所具有的上述存储部的数量与上述第二逻辑部所具有的上述存储部的数量是相同的。
(9)根据(1)~(8)的任一项所述的半导体装置,其中,
上述地址译码器分为行译码器和列译码器,
上述行译码器对从M(M为5以下的整数,L为N-5的整数)根地址线输入的地址进行译码,并向上述字线输出字选择信号,
上述列译码器对从L根地址线输入的地址进行译码,并输出对从上述多个存储元件输出的N根数据线进行选择的数据选择信号。
(10)一种使用了运算处理部的半导体装置的控制方法,其特征在于,包括:
上述运算处理部向第一逻辑部输出对逻辑动作或连接关系进行规定的真值表数据的步骤,其中上述第一逻辑部具有多个存储部,各存储部具有多个存储元件;
将上述对逻辑动作或连接关系进行规定的真值表数据存储于上述第一逻辑部的存储部的步骤;
上述运算处理部向第二逻辑部输出逻辑动作用地址的步骤,其中上述第一逻辑部具有多个存储部,各存储部具有多个存储元件;
上述第二逻辑部的存储部从由上述逻辑动作用地址确定的存储元件输出数据的步骤;
上述运算处理装置从上述第二逻辑部接收数据的步骤。
(11)根据(10)所述的控制方法,其中,
上述运算处理装置包含于上述半导体装置。
用于解决上述课题的实施方式如下述的第三组的(1)~(11)中所述。
(1)一种半导体装置,其特征在于,包括:
对数据进行运算处理的运算处理部;和
作为具有多个存储部以及输入输出部的逻辑部的运算处理部,各存储部具有地址译码器和多个存储元件,该地址译码器对从地址线输入的地址进行译码,并向上述字线输出字选择信号,该多个存储元件与数据线和字线连接,分别存储构成对逻辑动作或连接关系进行规定的真值表的数据,并根据从上述字线输入的上述字选择信号与输入输出上述数据的数据线连接;
上述输入输出部将上述运算处理部的至少1个输出信号线和上述地址线的至少1个进行连接,并将上述运算处理部的至少1个输入信号线和上述数据线的至少1个进行连接。
(2)根据(1)所述的半导体装置,其中,
上述存储部的地址线分别与上述存储部的其他存储部的数据线连接,并且上述存储部的数据线分别与上述存储部的其他存储部的地址线连接。
(3)根据(1)或(2)所述的半导体装置,其中,
上述多个存储部是可重构的。
(4)根据(1)~(3)的任一项所述的半导体装置,其中,
上述逻辑部还具有对上述多个存储部进行选择的存储部译码器。
(5)根据(1)~(4)的任一项所述的半导体装置,其中,
还具有与存储构成上述真值表的数据的存储装置连接的输入输出部。
(6)根据(1)~(5)的任一项所述的半导体装置,其中,
还具有存储构成上述真值表的数据的存储装置。
(7)根据(1)~(6)的任一项所述的半导体装置,其中,
物理布线层数为4层以下。
(8)根据(1)~(7)的任一项所述的半导体装置,其中,
上述地址译码器分为行译码器和列译码器,
上述行译码器对从M(M为5以下的整数,L为N-5的整数)根地址线输入的地址进行译码,并向上述字线输出字选择信号,
上述列译码器对从L根地址线输入的地址进行译码,并输出对从上述多个存储元件输出的N根数据线进行选择的数据选择信号。
(9)一种使用了运算处理部的半导体装置的控制方法,其特征在于,包括:
上述运算处理部向包含于上述运算处理部的逻辑部输出地址的步骤,其中,上述逻辑部具有多个存储元件,各存储元件分别存储构成对逻辑动作或连接关系进行规定的真值表的数据;
上述逻辑部从与上述运算处理部的至少1个输出信号线连接的至少1个地址线接收上述地址的步骤;
上述逻辑部从由上述地址确定的存储元件输出数据的步骤;
上述逻辑部借助于与上述运算处理部的至少1个输入信号线连接的至少1个数据线,向上述运算处理部输出上述数据的步骤
(10)根据(9)所述的控制方法,其中,
上述逻辑部从与上述逻辑部内的存储部相连的至少1个数据线向上述运算处理部的至少1个输入信号线输出上述读出的数据。
(11)根据(9)或(10)所述的控制方法,其中,
上述运算处理装置包含于上述半导体装置。
此外,作为PLD之一有MPLD(Memory-based Programmable Logic Device,基于存储器的可编程逻辑器件)。与基于LUT的PLD同样地,MPLD通过存储单元装置实现电路构成。MPLD在写入真值表数据的存储单元装置作为逻辑部件发挥作用这一点上,与上述基于LUT的PLD相同,而在也作为LUT之间的连接部件发挥作用这一点上,与具有专用于存储单元装置间的连接的切换电路的基于LUT的PLD不同。但是,由于MPLD将存储单元装置作为对逻辑部件以及/或逻辑部件之间的连接进行切换的连接部件使用,所以,为了改变数据总线,与基于LUT的PLD同样地,需要对保存于存储单元的真值表数据进行改写。因此,若通过MPLD执行动态的重构,则产生向存储单元装置写入数据的处理,所以处理将延迟。
而且,在另一个侧面,本发明的目的是缩短具有MPLD的半导体装置的重构时间。
用于解决上述课题的实施方式如下述的第四组的(1)~(5)中所述。
(1)一种半导体装置,其特征在于,包括:
多个可编程逻辑部,该多个可编程逻辑部分别具有多个存储单元装置,且当向上述存储单元装置写入真值表数据时,该多个可编程逻辑部作为逻辑部件或连接部件工作;
高速缓存部,该高速缓存部分别保持作为多个上述真值表数据的多个构成信息;
构成控制部,在上述多个可编程逻辑部中的第一可编程逻辑部通过构成分支逻辑的第一构成信息而被重构的情况下,在执行上述分支逻辑前,该构成控制部通过构成上述分支逻辑的分支目的地电路的上述第二构成信息,对上述多个可编程逻辑部中的第二可编程逻辑部进行预测重构。
(2)根据(1)所述的半导体装置,其特征在于,
上述高速缓存部将表示运算器的真值表数据即运算器数据和表示状态迁移的真值表数据即控制数据分开保持,
上述构成控制部从上述高速缓存部分别读入上述控制数据和包含通过上述控制数据的状态迁移表示的运算器的上述运算器数据,并对上述可编程逻辑部进行重构。
(3)根据(1)或(2)所述的半导体装置,其特征在于,
还具有包含上述高速缓存部所保持的控制数据的存储部,
上述构成控制部接着上述高速缓存部所保持的控制数据,从上述存储部读出用于重构上述可编程逻辑部的控制数据,并将该控制数据存储至上述高速缓存部。
(4)根据(1)~(3)的任一项所述的半导体装置,其特征在于,
存储于上述存储部的上述控制数据的真值表数据被压缩,
上述高速缓存部保持已压缩的真值表数据,
上述构成控制部对上述已压缩的真值表数据进行解压缩,利用该解压缩后的真值表数据来重构上述可编程逻辑部。
(5)根据(1)~(4)的任一项所述的半导体装置,其中,
在由上述第二构成信息构成的第二可编程逻辑部的运算结果表示上述第二构成信息不是上述第一构成信息的分支逻辑的分支目的地电路的情况下,上述构成控制部利用包含上述分支逻辑的分支目的地的第三构成信息重构上述第二可编程逻辑部以外的可编程逻辑部。
发明效果
第一方面,本发明能够减少构成所希望的逻辑电路的存储元件块的总量。
第二方面,本发明能够进行半导体装置与运算处理装置之间的数据的输入输出。
第三方面,本发明能够缩短具有MPLD的半导体装置的重构时间。
附图说明
图1为表示MPLD的一例的图。
图2为表示MPLD的存储动作的一例的图。
图3为表示MLUT的逻辑动作的一例的图。
图4为表示MLUT的第一例的图。
图5为表示单端口存储元件的一例的图。
图6为表示作为逻辑部件工作的MLUT的一例的图。
图7为表示作为逻辑电路工作的MLUT的一例的图。
图8为表示图7所示的逻辑电路的真值表的图。
图9为表示作为连接部件工作的MLUT的一例的图。
图10为表示图9所示的连接部件的真值表的图。
图11为表示通过具有4个AD对的MLUT实现的连接部件的一例的图。
图12为表示1个MLUT作为逻辑部件以及连接部件工作的一例的图。
图13为表示图12所示的逻辑部件以及连接部件的真值表的图。
图14为表示通过具有4个AD对的MLUT实现的逻辑动作以及连接部件的一例的图。
图15为表示由MLUT构成的2位加法器的电路构成的一例的图。
图16为表示2位加法器动作的真值表的图。
图17为表示具有7个AD对的MLUT的一例的图。
图18A为表示具有7个AD对的MLUT的一例的图。
图18B为表示具有7个AD对的MLUT的平面构造的一例的图。
图19为表示MLUT的第二例的图。
图20为表示2端口存储元件的一例的图。
图21为表示MLUT的第三例的图。
图22为表示MLUT的配置的第一例的俯视图。
图23为表示MLUT的配置的第二例的俯视图。
图24为表示MLUT间的连线的一例的图。
图25为表示借助于相邻的MLUT来连接间隔配置的MLUT的例子的图。
图26A为表示构成所希望的逻辑电路所需的MLUT数的一例的图。
图26B为表示构成所希望的逻辑电路所需的MLUT数的一例的图。
图26C为表示构成所希望的逻辑电路所需的MLUT数的一例的图。
图26D为表示构成所希望的逻辑电路所需的MLUT数的一例的图。
图27为表示密排配置构造和非密排配置构造的图。
图28为表示密排配置构造中的AD对的数量的一例的图。
图29为表示MLUT的AD对的连线构造的一例的图。
图30为表示MLUT的AD对的连线构造的另一例的图。
图31为表示MLUT的AD对的连线构造的其他例子的图。
图32为表示MLUT的AD对的连线构造的其他例子的图。
图33为表示MLUT的AD对的连线构造的其他例子的图。
图34为表示具有MLUT的MLUT块的一例的图。
图35为表示具有15行×30列的MLUT的MLUT区域中的近距离布线图案的配置的一例的图。
图36为表示具有15行×30列的MLUT的MLUT区域中的第一间隔布线图案的配置的图。
图37为表示具有15行×30列的MLUT的MLUT区域中的第二间隔布线图案的配置的图。
图38为表示具有15行×30列的MLUT的MLUT区域中的第三间隔布线图案的配置的图。
图39为表示具有15行×30列的MLUT的MLUT区域中的第四间隔布线图案的配置的图。
图40为表示具有15行×30列的MLUT的MLUT区域中的第五间隔布线图案的配置的图。
图41为表示搭载了MPLD的半导体装置的布局块的一例的图。
图42为表示执行MPLD的布局/布线的信息处理装置的一例的图。
图43为表示信息处理装置生成用于对MPLD进行布局/布线的位流数据的流程的一例的图。
图44为表示对搭载于图41所示的半导体装置的MPLD进行部分重构的流程的一例的图。
图45表示通过蝶形运算进行8点离散傅立叶变换时的算法的一例。
图46为表示搭载了MPLD的半导体装置的一例的图。
图47为概略地表示进行运算处理部与MPLD之间的数据输入输出的输入输出部的一例的图。
图48为表示进行运算处理部与MPLD之间的数据输入输出的输入输出部的另一例的图。
图49为表示同时进行逻辑动作和存储动作的MPLD以及运算处理部的一例的图。
图50为表示多个MPLD以及运算处理部的一例的图。
图51为表示搭载了MPLD的半导体装置的其他例子中的布局块的一例的图。
图52为表示搭载了MPLD的半导体装置的其他例子中的布局构造的一例的图。
图53为表示动作合成的一例的图。
图54为表示构成逻辑电路x=(a+b)*(b+c)的CDFG的例子的图。
图55为表示通过速度优先调度对图54所示的CDFG进行调度后的结果的图。
图56为表示通过硬件数量优先调度对图54所示的CDFG进行调度后的结果的图。
图57表示执行被区域划分成第一逻辑块和第二逻辑块这两个逻辑块的逻辑电路的一例。
图58为表示进行资源分配时对逻辑电路进行区域划分的一例的图。
图59为表示向MLUT写入逻辑电路信息等信息的顺序的流程图的一例。
图60为表示搭载了MPLD的半导体装置的其他例子中的布局构造的图。
图61为表示搭载了MPLD的半导体装置的其他例子中的布局构造的图。
图62为表示半导体装置的布线层的一例的剖面图。
图63为表示对搭载于半导体装置的MPLD进行部分重构的流程的一例的图。
图64为表示DES的计算算法的流程的一例的图。
图65为表示F函数的算法的流程的图。
图66为表示半导体装置的一例的框图。
图67为表示主存储器的存储器映射的一例的图。
图68为构成控制部的详细框图。
图69为表示由MPLD构成的数据总线块以及状态机的一例的图。
图70为表示关于半导体装置的预测执行的处理流程的一例的图。
图71为关于半导体装置的高速缓存控制的处理流程。
具体实施方式
以下,依次分别说明〔1〕MPLD、〔2〕MLUT、〔3〕MLUT的构造、〔4〕搭载了1个MPLD的半导体装置、〔5〕搭载了1个MPLD和运算处理部的半导体装置、〔6〕搭载了2个MPLD和运算处理部的半导体装置、〔7〕适于动态重构的半导体装置的实施例。以下说明的MPLD〔1〕具有多个MLUT〔2〕,MPLD〔1〕与运算处理部组合构成半导体装置〔4〕或〔5〕或〔6〕或〔7〕。
〔1〕MPLD
图1为表示半导体装置的一例的图。图1所示的20为作为半导体装置的MPLD(Memory-based Programmable Logic Device,基于存储器的可编程逻辑器件)。MPLD20具有多个作为存储元件块的MLUT(Multi Look-Up-Table,多查找表)30,并具有MLUT译码器12。此外,如后面所述,MPLD20作为与运算处理装置连接的逻辑部工作。
MPLD20包含多个存储元件。通过在存储元件中分别存储构成真值表的数据,MPLD20进行作为逻辑部件、或连接部件、或逻辑部件及连接部件而工作的逻辑动作。
MPLD20还进行存储动作。所谓存储动作是指向包含于MLUT30的存储元件写入数据或从中读出数据。由此,MPLD20能够作为主存储装置或高速缓冲存储器而工作。
向MLUT30写入数据也是改写真值表数据,因此,存储动作使得真值表数据发生重构。另外,将重构中的、改写存储于MPLD内的特定的1个或多个MLUT、或构成MLUT的特定的1个或多个存储元件的真值表数据的情况称为“部分重构”。
在存储动作中使用MPLD地址、存储动作用地址MA、写入数据WD以及读出数据RD的任一个信号,图1中示出这些信号和使这些信号通过的连线。此外,在逻辑动作中使用逻辑动作用地址LA以及逻辑动作用数据LD,图1中示出这些信号和使这些信号通过的连线。另外,存储动作用地址MA为提供给包含于MPLD20的各MLUT的存储动作用的地址。MPLD地址为确定包含于MPLD20内的1个MLUT的地址,且为确定要提供其存储动作用地址MA的MLUT的地址信号。
〔1.1〕MPLD的存储动作
图2为表示MPLD的存储动作的一例的图。MPLD20在存储动作中使用由实线表示的存储动作用地址、MLUT地址、写入数据WD以及读出数据RD的任一个信号,而不使用由虚线表示的逻辑动作用地址LA以及逻辑动作用数据LD。另外,存储动作用地址、MLUT地址以及写入数据WD例如由位于MPLD20外部的运算处理装置输出,读出数据WD向运算处理装置输出。
在存储动作中,MPLD20接收作为确定存储元件的地址的存储动作用地址及MLUT地址,并在写入时接收写入数据WD,在读出时输出读出数据LD。
MLUT地址为确定包含于MPLD20内的1个MLUT的地址。MLUT地址经由m根信号线被输出至MPLD20。另外,m为用于确定MLUT的选择地址信号线的数量。通过m根信号线能够确定2的m次方的MLUT。MLUT译码器12借助于m根信号线接收MLUT地址,并对MLUT地址进行译码,选择并确定作为存储动作对象的MLUT30。存储动作用地址经由n根信号线,通过后面使用图10记述的地址译码器而被译码,从而选择作为存储动作对象的存储单元。
另外,MPLD20例如借助于所有n根信号线接收MLUT地址、写入数据WD以及读出数据LD。另外,如后面使用图4所述那样,n为MLUT的存储动作用或逻辑动作用的选择地址信号线的数量。MPLD20借助于n根信号线,向各MLUT提供MLUT地址、写入数据以及读出数据。另外,存储动作用地址MA、写入数据WD以及读出数据RD的详细内容将和MLUT的例子一同,在后面使用图4、图19以及图21加以记述。
〔1.2〕MPLD的逻辑动作
图3为表示MPLD20的逻辑动作的一例的图。图3中,在MPLD20的逻辑动作中,使用由实线表示的逻辑动作用地址LA以及逻辑动作用数据LD。
在MPLD20的逻辑动作中,逻辑动作用地址LA由外部装置输出,并被作为由MLUT30的真值表构成的逻辑电路的输入信号使用。而且,逻辑动作用数据LD为上述逻辑电路的输出信号,并作为逻辑电路的输出信号被输出至外部装置。
多个MLUT中的、配置于MPLD20的外延的MLUT作为从MPLD20的外部的装置接收作为逻辑动作用的数据的逻辑动作用地址LA并输出逻辑动作用数据LD的MLUT工作。例如,例如,图1所示的MLUT30a、30b从半导体装置100的外部接收逻辑动作用地址LA,并向位于周围的其他MLUT30d输出逻辑动作用数据LD。此外,图1所示的MLUT30e、30f从其他MLUT30c、30d接收逻辑动作用地址LA,并向MPLD20的外部输出逻辑动作用数据LD。
MLUT的逻辑动作用地址LA的地址线与相邻的MLUT的逻辑动作用数据LD的数据线连接,例如,MLUT30c将从MLUT30a输出的逻辑动作用数据作为逻辑动作用地址接收。这样,MLUT的逻辑动作用地址或逻辑动作用数据是通过与位于周围的MLUT之间的输入输出获得的,这一点与各个MLUT单独进行连接的MLUT地址不同。
通过MPLD20的逻辑动作实现的逻辑通过存储于MLUT30的真值表数据实现。一些MLUT30作为身为AND电路、加法器等组合电路的逻辑部件工作。其他的MLUT作为将实现组合电路的MLUT30间进行连接的连接部件工作。用于实现逻辑部件以及连接部件的真值表数据的改写由通过上述存储动作进行的重构来完成。
〔2〕MLUT
以下,对MLUT加以说明。
〔2.1〕MLUT的第一例
图4为表示MLUT的第一例的图。图4所示的MLUT30具有地址切换电路10a、地址译码器9、存储元件40、输出数据切换电路10b。在动作切换信号表示逻辑动作的情况下,图10所示的MLUT30以根据逻辑动作用地址LA来输出逻辑动作用数据LD的方式工作。此外,在动作切换信号表示存储动作的情况下,MLUT30以根据存储动作用地址来接收写入数据或输出读出数据的方式工作。
地址切换电路10a将输入存储动作用地址MA的n根存储动作用地址信号线、输入逻辑动作用地址LA的n根逻辑动作用地址输入信号线和输入动作切换信号的动作切换信号线连接起来。地址切换电路10a以基于动作切换信号来向n根选择地址信号线输出存储动作用地址MA或逻辑动作用地址LA的任一个的方式工作。像这样,地址切换电路10a选择地址信号线是因为存储元件40为接受读出动作和写入动作的任一个动作的单端口型存储元件。
图4所示的地址译码器9对由地址切换电路10a提供的从n根地址信号线接收的选择地址信号进行译码,并向2的n次方根的字线输出译码信号。
n×2n个存储元件配置于2的n次方根字线、n根写入数据线和n个输出位线的连接部分。存储元件的详细例将在后面使用图5加以记述。
当从n根输出位线接收到信号时,输出数据切换电路10b以根据所输入的动作切换信号来向n根读出数据信号线输出从存储元件读出的数据,或向逻辑动作用信号线输出读出数据的方式工作。
〔2.2〕MLUT的存储元件
图5为表示单端口型存储元件的一例的图。图5所示的单端口型存储元件为SRAM,其能够作为图4所示的存储元件使用。图5所示的单端口SRAM40具有第一以及第二pMOS(positive channel Metal Oxide Semiconductor,p沟道金属氧化物半导体场效应)晶体管161、162和第一~第四nMOS(negative channel MOS,n沟道MOS)晶体管163~166。
第一pMOS晶体管161的源极和第二pMOS晶体管162的源极与VDD(电源电压端)连接。第一pMOS晶体管161的漏极与第一nMOS晶体管163的源极、第二pMOS晶体管的栅极162、第二nMOS晶体管的栅极504、第三nMOS晶体管505的源极连接。第一pMOS晶体管161的栅极与第一nMOS晶体管163的栅极、第二pMOS晶体管162的漏极、第二nMOS晶体管504的漏极、第四nMOS晶体管506的源极连接。第一nMOS晶体管163的漏极和第二nMOS晶体管504的漏极与VSS(接地电压端)连接。
第三nMOS晶体管165的漏极与第一位线BL连接。第三nMOS晶体管165的栅极与字线WL连接。第四nMOS晶体管166的漏极与第二位线qBL连接。第四nMOS晶体管166的栅极与字线WL连接。
通过上述构成,在写入动作中,单端口存储元件40通过字线WL的信号电平“H”来保持写入位线BL以及写入位线qBL的信号电平。
〔2.3〕MLUT的逻辑动作
A.逻辑部件
图6为表示作为逻辑部件工作的MLUT的一例的图。图6所示的MLUT30a、30b从逻辑动作用地址线A0~A3接收逻辑动作用地址LA,向逻辑动作用数据线D0~D3输出逻辑动作用数据LD。另外,MLUT30a的逻辑动作用地址线A2与相邻的MLUT30b的逻辑动作用数据线D0连接,MLUT30a接收从MLUT30b输出的逻辑动作用数据LD作为逻辑动作用地址LA。此外,MLUT30a的逻辑动作用数据线D2与MLUT30b的逻辑动作用地址线A0连接,MLUT30a所输出的逻辑动作用数据LD作为逻辑动作用地址LA被MLUT30b接收。这样,MPLD之间的连结使用1对的地址线和数据线。以下,将如MLUT30a的逻辑动作用地址线A2和逻辑动作用数据线D2这样的,用于MLUT的连结的地址线和数据线对称为“AD对”。
另外,在图6中,MLUT30a、30b所具有的AD对为4对,但如后面所述,AD对的数量并不限于4。
图7为表示作为逻辑电路工作的MLUT的一例的图。在本例中,将逻辑动作用地址线A0以及A1作为2输入NOR电路701的输入,将逻辑动作用地址线A2以及A3作为2输入NAND电路702的输入。而且,构成向2输入NAND电路703输入2输入NOR电路的输出和2输入NAND电路702的输出,向数据线D0输出2输入NAND电路703的输出的逻辑电路。
图8为表示图7所示的逻辑电路的真值表的图。图7的逻辑电路为4输入,因此,将输入A0~A3的所有输入作为输入使用。另一方面,输出只有1个,因此,仅将输出D0作为输出使用。真值表的输出D1~D3栏中记载有“*”。这表示可以是“0”或“1”的任一值。但是,实际上在为了进行重构而向MLUT写入真值表数据时,这些栏中需要写入“0”或“1”的任一值。
B.连接部件的功能
图9为表示作为连接部件工作的MLUT的一例的图。在图9中,作为连接部件的MLUT以向数据线D1输出地址线A0的信号,向数据线D2输出地址线A1的信号,向数据线D3输出逻辑动作用地址线A2的信号的方式工作。作为连接部件的MLUT还以向数据线D1输出地址线A3的信号的方式工作。
图10为表示图9所示的连接部件的真值表的图。图9所示的连接部件为4输入4输出。因此,使用了输入A0~A3的全部输入和输出D0~D3的全部输出。根据图10所示的真值表,MLUT作为将输入A0的信号向输出D1输出,将输入A1的信号向输出D2输出,将输入A2的信号向输出D3输出,将输入A3的信号向输出D0输出的连接部件工作。
图11为表示通过具有4个AD对的MLUT实现的连接部件的一例的图。在图11中,单点划线表示输入到AD对0的信号被输出至AD对1的信号流。双点划线表示输入到第二AD对ADA的信号被输出至AD对2的信号流。虚线表示输入到AD对2的信号被输出至AD对3的信号流。实线表示输入至AD对3的信号被输出至AD对0的信号流。
另外,在图11中,MLUT30所具有的AD对为4对,但如后面所述,AD对的数量并不限于4。
C.逻辑部件与连接部件的组合功能
图12为表示1个MLUT作为逻辑部件以及连接部件工作的一例的图。在图12所示的例子中,构成将地址线A0以及A1作为2输入NOR电路121的输入,将2输入NOR电路121的输出和逻辑动作用地址线A2作为2输入NAND电路122的输入,向数据线D0输出2输入NAND电路122的输出的逻辑电路。此外,同时构成向数据线D2输出地址线A3的信号的连接部件。
图13中示出图12所示的逻辑部件以及连接部件的真值表。图12的逻辑动作使用输入D0~D3的3个输入,并使用1个输出D0作为输出。另一方面,图(a)的连接部件构成将输入A3的信号向输出D2输出的连接部件。
图14为表示通过具有4个AD对的MLUT实现的逻辑动作以及连接部件的一例的图。如上所述,MLUT30通过1个MLUT30实现3输入1输出的逻辑动作和1输入1输出的连接部件这2个动作。具体地讲,逻辑动作将AD对0的地址线、AD对1的地址线和AD对2的地址线作为输入使用。而且,将AD对0的地址线作为输出使用。此外,如虚线所示,连接部件把输入到AD对3的信号向AD对2输出。
另外,在具有N个AD对的MLUT中,能够构成具有N个输入并具有N个输出的任意的逻辑电路。而且,在具有N个AD对的MLUT中,能够同时构成合计具有1~N的任意数的输入数并具有1~N的任意数的输出数的任意的逻辑动作和连接部件。
〔2.4〕具有7个AD对的MLUT
使用图15~图17,对在具有7个AD对的MLUT上实现真值表的动作的一例加以说明。
图15为表示由MLUT构成的2位加法器的电路构成的一例的图。2位加法器通过将2个1位全加法器连接起来而构成。在图15中,2位加法器具有将输入A0、B0以及Cin作为输入使用,并将输出S0以及进位输出作为输出使用的第一1位全加法器。此外,具有将输入A1、B1以及第一1位全加法器的进位作为输入使用,并将输出S1以及Cout作为输出使用的第二1位全加法器。
第一1位全加法器将输入A0以及B0作为第一2输入XOR电路4.401和第一2输入AND电路152的输入。将第一2输入XOR电路151的输出以及输入Cin作为第二2输入XOR电路153和第二2输入AND电路154的输入。将第一2输入AND电路152的输出以及第二2输入AND电路154的输出作为第一2输入OR电路155的输入。而且,将第二2输入XOR电路153的输出作为输出S0,将第一2输入OR电路155的输出作为进位输出。
第二1位全加法器将输入A1以及B1作为第三2输入XOR电路156和第三2输入AND电路157的输入。将第三2输入XOR电路156的输出以及第一2输入OR电路155的输出作为第四2输入XOR158电路和第四2输入AND电路159的输入。将第三2输入AND电路157的输出以及第四2输入AND电路159的输出作为第二2输入OR电路4.410的输入。而且,将第四2输入XOR电路158的输出作为输出S1,将第二2输入OR电路160的输出作为输出Cout。
图16为表示图15的2位加法器动作的真值表的图。图15的2位加法器动作使用输入A0、A1、B0、B1以及Cin的5个输入。而且,使用输出S0、S1以及Cout的3个输出。
图17为表示具有7个AD对的MLUT的一例的图。为了将图15以及图16中记载的2位加法器作为真值表在图17所示的MLUT30中实现,需要将5个AD对的逻辑控制用地址线作为输入线使用,将3个AD对的逻辑控制用数据线作为输出线使用。而且,2个AD对能够用于连接部件。因此,在具有7个AD对的MLUT30中,能够实现2位加法器的逻辑动作,并且实现2个连接部件。
例如,将AD对0用于输入A0以及输出S0,将AD对1用于输入A1以及输出S1,将AD对2用于输入Cin以及输出Cout,将AD对3的地址线用于输入B0。而且,能够将第五AD对AD4的地址线用于输入B1。
加法器为在构成四则运算等运算电路时使用得非常多的电路。此外,在通常的运算处理中,能够对2位以上的数据进行处理。因此,有利的是:通过用1个MLUT来构成由5输入3输出构成的2位加法器,MPLD的布局/布线效率将提高。即,通过用1个MLUT来构成2位加法器,能够增加可搭载于具有同一数量的MLUT的MPLD上的运算电路的数量。而且,也可以准备多位加法器以及多位乘法器等布线图案固定了的逻辑电路,作为具有2位加法器的模块。
此外,在具有7个AD对的MLUT中,若考虑到MPLD的布局/布线效率,则更加有利的是:能够在实现2位加法器的逻辑动作的基础上,进一步实现2路的连接部件。即,在执行布局/布线算法时,可以在配置了2位加法器的MLUT中进一步附加地具有连接部件。因此,对配置于MLUT的真值表分别进行布线时的自由度提高。另外,所谓布局/布线,由于MLUT作为逻辑部件以及/或连接部件工作,因此向MLUT写入真值表数据即意味着逻辑动作的布局以及/或MLUT间的布线。因此,将真值表数据的生成称为“布局/布线”。
本例中,对在具有7个AD对的MLUT中同时实现2位加法器的逻辑动作和连接部件的实施方式进行了说明。但是,在具有5个AD对的MLUT中,能够实现2位加法器的逻辑动作。此外,在具有6个AD对的MLUT中,能够实现2位加法器的逻辑动作和1个连接部件。而且,在具有8个AD对的MLUT中,能够实现2位加法器的逻辑动作和3个连接部件。
此外,在具有9个AD对的MLUT中,能够实现4位加法器的逻辑动作。在具有10个AD对的MLUT中,能够实现4位加法器的逻辑动作和1个连接部件。这样,如果是具有5~10个左右的AD对的MLUT,能够形成使布局/布线效率提高的构成。
〔2.5〕MLUT的物理配置
图18A为表示具有7个AD对的MLUT的一例的图。图18A所示的MLUT30具有地址行译码器9c、地址列译码器9d和存储元件40c。在图18A所示的MLUT30中,输入分别由7个信号构成的逻辑动作用地址LA和写入数据WD,并输出分别由7个信号构成的读出数据RD和逻辑动作用数据LD。地址切换电路10a、输出数据切换电路10b进行与使用图4说明的电路同样的工作,因此省略其说明。
地址行译码器9c对m根信号输入亦即逻辑动作用地址LA进行译码,并向2的m次方的字线输出字选择信号。存储元件40c为2L个存储元件块(40c-1,…,40c-2L)。各存储元件块具有n×2m个存储元件,并配置于2m根字线、n根写入数据线和n个输出位线的连接部分。m为N-L的整数,L为小于n的整数。“n,m,L”例如为“7,5,2”或“7,4,3”。
地址列译码器9d对L根信号输入亦即逻辑动作用地址LA进行译码,生成2的L次方的块选择信号,并通过块选择信号,选择上述2L个存储元件块的任意一个存储元件块的n个输出位线。例如,在L=2的情况下,存储元件块为22=4个,各存储元件块具有25=32根字线以及输出位线,所以,地址列译码器9d通过块选择信号选择任意一个存储元件块的输出位线32根。此外,在L=3的情况下,存储元件块为23=8个,各存储元件块具有24=16根字线以及输出位线,因此,地址列译码器9d通过块选择信号选择任意一个存储元件块的输出位线16根。
通过设置地址列译码器9d并沿列方向扩展存储元件,能够缩短输出位线的长度。
图18B为表示将2个图18A所示的MLUT30组合而成的MLUT的平面布置图。图18B所示的MLUT30包含图18A所示的MLUT所具有的构成。图18B所示的MLUT30具有存储逻辑控制部10c、地址行译码器9c-1以及9c-2、地址列译码器9d-1以及9d-2、存储元件40c-1以及40c-2、读出驱动部11a-1以及11a-2。
输入从存储逻辑控制部10c输出的7个选择地址信号的7个选择地址线分别连接于地址行译码器9c-1以及9c-2以及地址行译码器9d-1以及9d-2。地址行译码器9c-1以及地址列译码器9d-1向存储元件40c-1分别提供字选择信号以及块选择信号。地址行译码器9c-2以及地址列译码器9d-2向存储元件40c-2分别提供字选择信号以及块选择信号。
虽未作图示,当分别由7个信号构成时,向图18B所示的MLUT30中输入逻辑动作用地址LA和写入数据WD,而输出分别由7个信号构成的读出数据RD和逻辑动作用数据LD。虽未作图示,还向图18B所示的MLUT30中输入存储动作用地址MA和动作切换信号。
在存储逻辑控制部10c中配置有图18A的地址切换电路10a和输出数据切换电路10b。存储动作用地址MA、逻辑动作用地址LA、写入数据WD、读出数据RD和逻辑动作用数据LD分别借助于存储逻辑控制部10c针对MLUT30被进行输入输出。
地址行译码器9c-1以及9c-2配置于存储元件区域40c-1与存储元件40c-2之间。
第一以及第二读出驱动部11a以及11b分别配置于第一以及第二存储元件区域40c以及40d和存储逻辑控制部10c之间。第一以及第二读出驱动部11a以及11b构成为对从配置于第一以及第二存储元件区域40c以及40d的存储元件40读出的7个位信号进行放大,并使读出速度高速化。
在本例中,将输入到地址行地址的选择地址信号的数量设为4个或5个。通过将选择地址信号的数量设为5以下,由此,字选择信号的数量成为24=16根或25=32根,能够缩短输出位线的长度。因此,不需要一般的SRAM电路中必须的构成要素亦即读出放大器和预充电电路的电路构成得以实现。图18A或图18B所示的MLUT30与一般的SRAM不同,不必使存储元件数的数量大规模化。
包含于MLUT的存储元件的数量为至多10×210个左右。与作为一般作为数M位以上的大规模电路构成的存储装置的SRAM存储器相比,为非常小的电路。因此,在搭载于作为一般的SRAM存储器使用的存储装置时,在细微化上不成问题的读出放大器、预充电电路以及这些外围电路的大小在MLUT的电路构成中成为问题。配置于一般的SRAM存储器等的存储装置中的读出放大器以及预充电电路是为了防止布线层中产生的时间常数τ变大及信号的传递延迟时间变长而配置的电路。这是因为地址译码器与存储元件之间的布线长度较长。因此,通过将地址译码器与存储元件之间的布线长度中产生的时间常数τ抑制到不影响MLUT的工作的程度,能够形成不需要读出放大器以及预充电电路的构成。在图18A以及图18B所示的例子中,通过将输入到地址行译码器的选择地址信号的数量设为5个以下,能够将地址行译码器与存储元件之间的布线长度抑制到不影响MLUT的工作的程度。
而且在本例中,地址行译码器9c配置于第一存储元件区域40c与第二存储元件区域40d之间。在一般的SRAM存储器等的存储装置中,地址行译码器与存储元件区域的一边相接而配置。当这样配置了地址行译码器时,与地址行译码器相邻的存储元件和离地址行译码器最远的存储元件的布线距离不同。因此,布线层中产生的时间常数τ不同,所以来自地址行译码器的信号传递延迟时间不同。如上所述,在本例中,形成没有读出放大器以及预充电电路的构成,因此,理想的是成为缩小各存储元件之间的信号传递延迟时间的差的构成。所以,在本例中,将存储元件区域划分为具有相同大小的第一存储元件区域40c和第二存储元件区域40d,在此存储元件区域之间配置地址行译码器9c。由此,能够抑制各存储元件之间的信号传递延迟时间。
在本例中,地址行译码器的选择地址的数量为5个,但地址行译码器的选择地址的数量可以设为6个以下的任意数。但是,在地址行译码器的数量为不适当的数量的情况下,地址列译码器的布线长度有可能增大,有时不能构成适当的电路。对具有7个AD对的MLUT进行了说明,而通过调整向地址行译码器以及地址列译码器进行布线的选择地址数,可以将AD对的数量设为5~10的任意数量。
〔2.6〕MLUT的第二例
在上述图4~图18B中,对作为单端口型存储元件使用的MLUT进行了说明,而对于以下所示的作为2端口型存储元件使用MLUT也可适用。
图19为表示MLUT的第二例的图。图19所示的MLUT30能够同时进行数据的写入和读出。图19所示的MLUT30具有存储动作用的地址译码器9a、逻辑动作用的地址译码器9b和存储元件40。与图4所示的MLUT不同,图19所示的MLUT能够同时进行逻辑动作和存储动作。因此,与图4所示的MLUT不同,图19所示的MLUT30不需要动作切换选择信号,且不具有地址切换电路10a以及输出数据选择电路,而另一方面则具有各个地址用地址译码器9a、9b。此外,与图4所示的MLUT具有相同的构成。另外,包含于图18B的MLUT30的存储元件为能够进行数据的写入和读出的2端口存储元件。
〔2.7〕2端口存储元件
图20为表示2端口存储元件的一例的图。在图19所示的例子中,2端口存储元件40B为SRAM,具有第一以及第二pMOS晶体管501、502和第三~第八nMOS晶体管503~508。
如图20所示,由多个MOS晶体管构成的2端口SRAM40与VDD、VSS、写入字线WWL、读出字线RWL、第一写入位线WBL、第二写入位线qWBL、第一读出位线RBL以及第二读出位线qRBL连接。施加于第一写入位线WBL的信号为施加于第二写入位线qWBL的信号的反相信号。同样地,施加于第一读出位线RBL的信号为施加于第二读出位线qRBL的信号的反相信号。
第一pMOS晶体管501的源极与第二pMOS晶体管502的源极与VDD连接。第一pMOS晶体管501的漏极与第一nMOS晶体管503的源极、第二pMOS晶体管的栅极502、第二nMOS晶体管的栅极194、第三nMOS晶体管195的源极和第四nMOS晶体管506的源极连接。
第一pMOS晶体管501的栅极与第一nMOS晶体管503的栅极、第二pMOS晶体管502的漏极、第二nMOS晶体管194的漏极、第五nMOS晶体管197的源极和第六nMOS晶体管198的源极连接。第一nMOS晶体管503的漏极和第二nMOS晶体管194的漏极与VSS连接。
第三nMOS晶体管195的漏极与第一写入位线WBL连接。第三nMOS晶体管195的栅极与写入字线WWL连接。第四nMOS晶体管506的漏极与第一读出位线RBL连接。第四nMOS晶体管506的栅极与读出字线RWL连接。
第五nMOS晶体管197的漏极与第二写入位线qWBL连接。第五nMOS晶体管197的栅极与写入字线WWL连接。第六nMOS晶体管198的漏极与第二读出位线qRBL连接。第六nMOS晶体管198的栅极与读出字线RWL连接。
通过上述构成,在写入动作中,2端口SRAM40通过写入字线WWL的信号电平“H”来保持第一写入位线WBL以及第二写入位线qWBL的信号电平。
通过上述构成,在读出动作中,2端口SRAM40通过读出字线RWL的信号电平“H”使第一读出位线RBL以及第二读出位线qRBL成为在2端口SRAM40保持的信号电平。
这样,存储动作用地址MA以及逻辑动作用地址LA使存储元件的1个字线活化,由此,能够仅对n×2n个存储元件的一部分进行存储动作或逻辑动作。此外,存储动作用地址MA以及逻辑动作用地址LA与MLUT30内的所有存储元件相连着,因此,能够对n×2n个存储元件的所有存储元件进行存储动作或逻辑动作。另外,具有2端口存储元件的MLUT能够同时进行存储动作和逻辑动作。
〔2.8〕MLUT的第三例
图21为表示MLUT的第三例的图。图21所示的MLUT30具有地址译码器9a、地址译码器9b、第一存储元件40a、第二存储元件40b和NOT电路171。图21所示的MLUT30输入存储动作用地址MA、逻辑动作用地址LA、写入数据WD和选择信号,而输出读出数据RD和逻辑动作用数据LD。
第三例中的MLUT与第二例中的MLUT的不同点是第一存储元件40a和第二存储元件40b能够通过选择信号分别进行不同的动作。即,能够构成为:当第一存储元件40a和第二存储元件40b的一方作为逻辑动作用而被选择时,选择另一方作为存储动作用。
NOT电路171具有输入选择信号的输入端子和输出选择信号反相后的信号的输出端子。
n×2n个第一以及第二存储元件40具有2n个存储动作用字端子(未作图示)、2n个逻辑动作用字端子(未作图示)、n个写入数据端子(未作图示)、n个读出数据端子(未作图示)、n个逻辑动作用数据输出端子(未作图示)和选择端子(未作图示)。连接于存储动作用字端子的存储动作用字端子分别构成为对n个存储元件进行选择。同样地,连接于逻辑动作用字端子的逻辑动作用字端子分别构成为对n个存储元件进行选择。向写入数据端子输入写入数据WD。当使MLUT进行存储动作时或在重构MLUT时,使用写入数据WD。但是,在读出已写入MLUT的真值表数据时不使用写入数据WD。即,构成为:在读出已写入MLUT的真值表数据时,写入数据WD不被施加于存储元件,而是成为高阻抗输入。读出数据端子输出存储于通过存储动作用字端子选择的n个存储元件中的数据。同样地,逻辑动作用数据输出端子输出存储于通过逻辑动作用字端子选择的n个存储元件的数据。
向第一存储元件的选择端子输入选择信号。向第二存储元件的选择信号输入NOT电路的输出信号、即选择信号反相后的信号。由此,构成为:在第一存储元件与第二存储元件的一方作为逻辑动作用被选择时,选择另一方作为存储动作用。通过采用这样的构成,能够实现动态重构。即,能够实现一方的存储元件进行逻辑动作,而另一方的存储元件进行存储动作。
〔3〕MLUT的构造
对MLUT的构造加以说明。首先,对配置于MLUT区域的各MLUT的配置构造加以说明,接着,对MLUT的AD对的连线构造加以说明。然后,最后对MLUT区域的构造的1个实施方式加以说明。
〔3.1〕MLUT的配置构造
在此,对配置于MLUT区域的各MLUT的配置构造加以说明。首先,对MLUT的矩阵配置构造加以说明,接着,对MLUT的交替配置构造加以说明。
〔3.1.1〕MLUT的矩阵配置构造
图22为表示MLUT配置的第一例的俯视图。参照图22,对MLUT区域中的MLUT的配置的第一例加以说明。在图22中,为了说明,将MLUT表示成圆形。但是,如上所述,在本发明的通常的实施方式中,MLUT的平面形状为长方形或正方形。此外,在以下的说明中,有时将MLUT表示成圆形,但应该理解为各MLUT为长方形或正方形。
在图22中,将MLUT30配置成矩阵状。MLUT区域8为半导体装置中配置MLUT30的区域。在MLUT区域8中,MLUT30以相同的距离间隔配置于第一方向,并以与第一方向的间隔相同或不同的间隔配置于与第一方向成直角的第二方向。通过这样配置MLUT30,在对MLUT30进行近距离布线时,能够规则地连线。另外,所谓近距离布线是指连接相邻MLUT间的布线。
〔3.1.2〕MLUT的交替配置构造
图23为表示MLUT的配置的第二例的俯视图。参照图23,对MLUT区域8中的MLUT的配置的第二例加以说明。在图23所示的第二例中,MLUT30以相同的距离间隔配置于第一方向,并以相同的间隔配置于与第一方向成直角的第二方向。此外,配置成具有以相同间隔配置成与第一以及第二方向不同方向的四边形的MLUT30。在本说明书中,将这样的配置构造称为交替配置构造。另外,可以优选地使第一或第二方向的MLUT间的距离与配置成四边形的其他MLUT30之间的距离相同。此外,可以将配置成四边形的MLUT30配置在由配置于第一方向的2个MLUT30和配置于第二方向的2个MLUT30构成的长方形对角线的交点上。该情况下,各MLUT30分别以相同的间隔配置于第一方向以及与第一方向垂直的第二方向。此外,也可以以相同的间隔配置于与第一以及第二方向不同的第三以及第四方向。
〔3.2〕MLUT间的AD对连线构造
〔3.2.1〕AD对连线构造
图24为表示MLUT间的连线的一例的图。在此所示的AD对是在使MLUT作为真值表工作时作为MPLD的输入输出信号线使用的。MLUT也分别具有在将MLUT作为存储器电路使用时所使用的存储动作用地址线、存储动作用数据线以及控制信号线等其他布线。但是,为了简化说明,在图24中省略AD对以外的布线。参照图24,对相邻MLUT间的连线、即近距离布线的连线加以说明。另外,间隔布线是指对并非近距离布线的MLUT间进行连线的AD对的布线。在图24中,具有6个AD对的MLUT30、与MLUT30相邻的第一MLUT30a、第二MLUT30b、第三MLUT30c、第四MLUT30d、第五MLUT30e和第六MLUT30f以交替配置的方式被配置。此外,在图24中,将平行于连结第一MLUT30a与第四MLUT30d的直线的方向假定为MLUT30的纵方向,将平行于连结第二MLUT30b与第六MLUT30f的直线的方向假定为MLUT区域8的横方向。
在本例中,将MLUT30所具有的各AD对分别与不同的MLUT进行相邻布线。即,第一AD对与相邻的第一MLUT30a连线。第二AD对与相邻的第二MLUT30b连线。第三AD对与相邻的第三MLUT30c连线。第四AD对与相邻的第四MLUT30d连线。第五AD对与相邻的第五MLUT30e连线。第六AD对与相邻的第六MLUT30f连线。
图25为表示隔着相邻的MLUT而隔开距离配置的2个MLUT的连接的一例的图。该情况下,MLUT30f作为对MLUT30a与MLUT30进行连接的连接部件而工作。这样,在将MLUT30f作为连接隔开距离配置的MLUT30a与MLUT30的连接部件使用的情况下,MLUTf的真值表的一部分被用于MLUT30与30a之间的连接关系,因此,能够通过MLUT30f中的真值表实现的逻辑电路的规模变小。如图25所示,当将相邻的MLUT用作连接部件来连接隔开距离配置的MLUT30以及30a时,与图24所示的MLUT相比,构成所希望的逻辑电路所需的MLUT的总量将增加。
图26A~图26D为表示构成所希望的逻辑电路所需的MLUT数量的一例的图。图27为表示作为通过AD对与相邻的MLUT连接的MLUT构造的密排配置构造31A和作为通过AD对连接被间隔配置的MLUT之间的MLUT构造的非密排配置构造31B的图。所希望的逻辑电路是通过由自动布局布线工具将CLA加法器、RCA加法器、be加法器以及8字螺线LED电路等的电路布局布线于具有200~1000左右的数量的MLUT的MPLD上来实现的。
结果,在本比较中所使用的所有电路构成中,无论使用任何大小的MPLD,与具有非密排配置构造31B的MPLD相比,具有密排配置构造31A的MPLD的非布局/布线效率均变高。因此,与具有非密排配置构造31B的MPLD相比,具有密排配置构造31A的MPLD能够减少构成所希望的逻辑电路的MLUT的总量。
图28为表示密排配置构造中的AD对的数量的一例的图。在图28中,对手动构成32位乘法电路的情况下的所需存储器容量和关键路径单元的数量进行了计算。如图所示,当MLUT所具备的AD对的数量为6以上时,关键路径MLUT的数量将减少。此外,当MLUT所具备的AD对的数量为6以上时,所需存储器容量将增加。该结果表示:在AD对的数量少的情况下,对MPLD20进行所希望的逻辑电路的布局布线时,在分别作为逻辑电路工作的MLUT间的布线中作为开关用而插入的MLUT的数量将增加。当AD对的数量少时,能够作为连接部件发挥作用的MLUT的数量将受限。因此,如果不大量地通过作为连接部件发挥作用的MLUT,则有可能无法在作为逻辑电路工作的MLUT间进行布线。结果,当AD对的数量少时,实现逻辑电路所需的MLUT数量有可能增加。在图28的例子中,理想的是将MLUT所具有的N个AD对中的5个AD对用于作为逻辑电路而构成真值表。因此,优选MLUT所具备的AD对的数量为5以上。
另一方面,可以预测到的是:若增加MLUT所具备的AD对的数量,则在已经布局/布线时实际使用的每个MLUT的AD对的数量将减少。而且,因此,布局/布线效率有可能降低。在图28所示的通过手动进行32位乘法电路的布局/布线的情况下,当将AD对的数量设为8时,布局/布线所需的区域增至将AD对的数量设为6时的4倍。
〔3.2.2〕矩阵配置构造中的AD对连线构造
图29为表示MLUT的AD对的连线构造的一例的图。MLUT30配置成矩阵状,且分别具有6个AD对。在图29中,将平行于连接MLUT30和MLUT30a的直线的方向假定为MLUT区域8的纵向。而且,将平行于连接MLUT30和MLUT30c的直线的方向假定为MLUT区域8的横向。MLUT30具有:与沿纵向配置的MLUT30a以及30b近距离布线的第一以及第二AD对、与沿横向配置的MLUT30c以及30d近距离布线的第三以及第四AD对、分别与位于纵向的MLUT30的横向相邻的2个MLUT30e以及30f近距离布线的第五以及第六AD对。
这样,在本例中,配置于某列的MLUT(例如,MLUT30)的2个AD对分别与在第一列方向相邻的MLUT的横向相邻的2个MLUT近距离布线。而且,配置于与此列相邻的列的MLUT(例如,MLUT30c以及30d)的2个AD对分别与在作为第一列方向的反方向的第二列方向相邻的MLUT的横向相邻的2个MLUT近距离布线。通过这样进行近距离布线,能够形成对相邻的MLUT进行连线的AD对在同一平面上不交叉的构造。
另外,在该例子中,所有的MLUT的第五以及第六AD对分别与沿纵向配置的MLUT的横向相邻的2个MLUT近距离布线。但是,也可以成为将该AD对与沿横向配置的MLUT的纵向相邻的MLUT近距离布线的构造。例如,MLUT30的第五以及第六AD对可以分别与沿横向配置的MLUT30的纵向相邻的2个MLUT30e以及30g近距离布线。
〔3.2.3〕交替配置构造中的AD对连线构造
图30为表示MLUT的AD对的连线构造的其他例的图。MLUT30分别以交替配置构造被配置,并分别具有6个AD对。在图30中,将平行于连接MLUT30和MLUT30a的直线的方向假定为MLUT区域8的纵向,将平行于连接MLUT30b和MLUT30f的直线的方向假定为MLUT区域8的横向。
MLUT30具有:与沿纵向配置的2个MLUT30a以及3d连线的第一以及第二AD对和与4个MLUT30b、30c、30e以及30f近距离布线的第三、第四、第五以及第六AD对,其中,上述4个MLUT30b、30c、30e以及30f配置在与配置有MLUT30的列相邻的列的两列的相邻位置。
在本例中,能够形成将MLUT连线的AD对在同一平面上不交叉的构造。而且,能够使所有MLUT的AD对的连线构造成为同样的构造。另外,在该例子中,所有MLUT的2个AD对与沿纵向配置的MLUT连线,但也可以成为将该AD对与沿横向配置的MLUT连线的构造。即,可以使MLUT30的第一以及第二AD对不是与沿纵向配置的沿横向配置的MLUT30a以及3d近距离布线,而是与2个MLUT30h以及30k近距离布线。
〔3.2.4〕具有D触发器连线的MLUT的AD对连线构造
图31为表示MLUT的AD对的连线构造的其他例的图。MLUT分别以交替配置构造被配置,并分别具有7个AD对。此外,MLUT分别与D触发器13相邻而配置。在MLUT所具有的7个AD对中,6个AD对与相邻的6个MLUT分别近距离布线。剩下的1个AD对与相邻的D触发器13连线。能够使近距离布线的6个AD对形成具有与图30所示的连线相同的连线构造的近距离布线。剩下的1个AD对中的地址线与D触发器13的D输入连线,数据线与Q输出连线。对D触发器13的所有CK输入进行连线,并能够使所有D触发器13以1个时钟信号进行动作。此外,能够按列对D触发器13的CK输入进行连线,使得D触发器13按列以不同的时钟信号进行动作。此外,能够将D触发器13的CK输入按8个或16个等任意数的组进行连线,使D触发器13在各组以不同的时钟信号进行动作。
在本例中,D触发器与各MLUT的1个AD对连线,因此,能够在MLUT区域形成时序电路。在仅以只具有构成真值表的功能的MLUT构成的MLUT区域中,可以构成组合电路,但很难构成时序电路。因此,在本例中,通过将D触发器与各MLUT的1个AD对连线,能够形成时序电路。
另外,在本例中,将D触发器与AD对连线,但也可以连接置位复位触发器、T触发器或JK触发器等其他触发器。此外,也可以连接具有置位输入、复位输入或QB输出等输入输出的D触发器。而且,可以使与D触发器的Q输出连线的MLUT的数据线与D触发器的QB输出连线。进而,无需所有MLUT分别具有与D触发器连线的AD对,可以成为在构成MLUT区域的MLUT中,仅规定比例的MLUT具有与D触发器连线的AD对的构造。此外,在以下的说明中,有时把使MLUT的1个AD对与D触发器连线这一情况称为D触发器连线。
〔3.2.5〕具有间隔布线的情况下的MLUT的AD对连线构造
图32为表示MLUT的AD对的连线构造的其他例的图。MLUT30分别具有7个AD对,并分别以交替配置构造被配置。在MLUT30所具有的7个AD对中,6个AD对与相邻的6个MLUT30分别近距离布线。剩下的1个AD对与逐列改变了1列的MLUT30间隔布线。
在本例中,MLUT30分别具有1个间隔布线,因此,与将MLUT30作为连接部件使用来将MLUT之间进行连接相比,间隔布线能够减少数据的传播延迟时间。此外,在将逻辑电路在MLUT区域8上按逻辑电路信息进行布局/布线时,间隔布线能够提高布线的灵活性。另外,间隔布线为并非近距离布线的MLUT间的连接布线。由此,通过与并非相邻的MLUT的MLUT连接,将产生上述间隔布线的效果。
另外,在本例中,所有MLUT分别具有被间隔布线的AD对,但也可以成为仅规定比例的MLUT具有进行间隔布线的AD对的构造。例如,可以将某种比例的MLUT的1个AD对作为间隔布线使用,而将其他MLUT的1个AD对与D触发器连线。
〔3.3〕MLUT区域的构造
〔3.3.1〕MLUT区域的整体构造
图33为表示MLUT的AD对的连线构造的其他例的图。参照图33,对本例的MLUT区域的整体构造的一例加以说明。在本例中,MLUT区域8具有以15行×30列的交替配置构造被配置的450个MLUT30。MLUT分别具有7个AD对,并将6个AD对作为近距离布线使用。剩下的1个AD对用于间隔布线或D触发器连线。在图中,未连线有间隔布线的MLUT与D触发器连线。
在本例中,使用以15行×30列的交替配置构造被配置的具有7个AD对的MLUT,对MLUT区域加以说明。但是,使用其他配置的MLUT能够构成MLUT区域的事实是被本领域技术人员明确理解的。此外,在配置于MLUT区域的MLUT中,连线有间隔布线的MLUT和与D触发器连线的MLUT的比例可以根据使用MPLD的用途以及功能来任意选择。此外,在本例中,MLUT的配置构造为交替配置构造,但是即使在矩阵配置构造中,也能够具有与本例相同的连线构造。即,也可以成为,在维持本例的布线构造的同时,将MLUT的配置构造从交替配置构造在拓扑上变换为矩阵配置构造而得到的构造(参照图29以及图30)。
〔3.3.2〕MLUT块的构造
图34为表示具有MLUT的MLUT块的一例的图。在本例中,MLUT块是将3行×6列的MLUT作为1个块而构成的块。各块内的MLUT分别根据基本相同的布线规则,进行间隔布线或与D触发器连线。
以下,记述基本的连线规则。
6个AD对用于近距离布线。该规则对于配置于MLUT区域8的端部的MLUT30也是相同的。因此,本例中的MLUT区域8具有作为近距离布线而配置的AD对并将其作为输入输出线AD对,通过这些AD对能够与配置于半导体装置100的其他构成要素连线。
在包含于1个MLUT块中的18个MLUT30中,6个MLUT将1个AD对与D触发器连线。因此,本例中的MLUT区域成为三分之一数量的MLUT与D触发器连线。具体地讲,在图34中为被赋予符号“30F”的MLUT30。即,在图34中为下行左起第2列以及第3列的MLUT、中间行左起第5列以及第6列的MLUT、和上行左起第3列以及第6列的MLUT。
对包含在1个MLUT块中的剩余的12个MLUT连线有间隔布线。间隔布线当中的4根以在沿纵向配置的MLUT之间连线的第一间隔布线图案进行连线。其他4根以在从左下至右上排列的MLUT之间连线的第二间隔布线图案进行连线。剩余的4根以在从右下至左上排列的MLUT之间连线的第三间隔布线图案进行连线。
以第一间隔布线图案被连线的MLUT为下行左起第1列以及第4列的MLUT、中间行左起第1列的MLUT、和上行左起第4列的MLUT。在图34中,这些MLUT分别被赋予符号“30C”。下行左起第4列的MLUT和中间行左起第1列的MLUT分别与沿纵上方向离开的第5个MLUT连线有间隔布线。下行左起第1列的MLUT和上行左起第4列的MLUT分别与沿纵下方向离开的第5个MLUT连线有间隔布线。
以第二间隔布线图案被连线的MLUT为下行左起第6列的MLUT、中间行左起第2列以及第3行的MLUT和上行左起第5列的MLUT。在图34中,这些MLUT分别被赋予符号“30L”。下行左起第6列的MLUT和中间行左起第3列的MLUT分别与沿右上方向离开的第5个MLUT连线有间隔布线。中间行左起第2列的MLUT和上行左起第5列的MLUT分别与沿左下方向离开的第5个MLUT连线有间隔布线。
以第三间隔布线图案被连线的MLUT为下行左起第5列的MLUT、中间行左起第4行的MLUT和上行左起第1行以及第2列的MLUT。在图34中,这些MLUT分别被赋予符号“3R”。中间行左起第4列的MLUT和上行左起第1列的MLUT分别与沿左上方向离开的第5个MLUT连线有间隔布线。下行左起第5列的MLUT和上行左起第2列的MLUT分别与沿右下方向离开的第5个MLUT连线有间隔布线。
图35为表示具有15行×30列的MLUT的MLUT区域中的近距离布线图案的配置的一例的图。在图35中示出以圆形形状表示的450个MLUT和分别对相邻的6个MLUT之间进行连线的近距离布线。位于MLUT区域8的端部的MLUT30所具有的若干个AD对未连线。如上所述,这些未连线的AD对能够与输入输出电路部15或内部总线电路部等半导体装置内的其他构成部件连线。
图36~图38中示出本例中的MLUT区域的第一~第三间隔布线图案的配置。以下,参照各图,对第一~第三间隔布线图案的配置的一例加以说明。
〔3.3.3〕第一间隔布线图案的配置构造
图36为表示具有15行×30列的MLUT的MLUT区域的第一间隔布线图案的配置的图。在图36中示出以圆形形状表示的450个MLUT30、分别对相邻的6个MLUT之间进行连线的近距离布线和沿纵向每5个MLUT30进行连线的第一间隔布线图案。另外,在配置于应该以第一间隔布线图案连线有间隔布线的位置上的MLUT中,位于MLUT区域8的上端部以及下端部附近的若干个MLUT30未以第一间隔布线图案连线有间隔布线。这些MLUT中应该基于第一间隔布线的规则进行连线的MLUT不存在于MLUT区域8上。因此,以后述的第四以及第五间隔布线图案连线有间隔布线。
〔3.3.4〕第二间隔布线图案的配置构造
图37为表示具有15行×30列的MLUT的MLUT区域的第二间隔布线图案的配置的图。在图37中示出以圆形形状表示的450个MLUT30、分别对相邻的6个MLUT之间进行连线的近距离布线和在从左下至右上排列的MLUT之间每5个MLUT进行连线的第二间隔布线图案。另外,与第一间隔布线图案相同地,在配置于应该以第二间隔布线图案连线有间隔布线的位置的MLUT中,位于MLUT区域8的端部附近的若干个MLUT30以后述的第四以及第五间隔布线图案连线有间隔布线。
〔3.3.5〕第三间隔布线图案的配置构造
图38为表示具有15行×30列的MLUT的MLUT区域的第三间隔布线图案的配置的图。图中示出以圆形形状表示的450个MLUT30、分别对相邻的6个MLUT之间进行连线的近距离布线和在从右下至左上排列的MLUT之间每5个MLUT进行连线的第三间隔布线图案。另外,与第一以及第二间隔布线图案相同地,在配置于应该以第三间隔布线图案连线有间隔布线的位置的MLUT30中,位于MLUT区域8的端部附近的若干个MLUT30以后述的第四以及第五间隔布线图案连线有间隔布线。
〔3.3.6〕第四间隔布线图案的配置构造
图39为表示具有15行×30列的MLUT的MLUT区域的第四间隔布线图案的配置的图。如上所述,第四间隔布线图案的配置并不基于图34所示的MLUT块中所规定的连线规则,而是用来对位于MLUT区域8的端部附近的若干个MLUT30进行连线。但是,第四间隔布线图案被配置成与第一~第三隔离布线图案的配置类似的配置。第四布线图案的规则如以下所示。
首先,与第一~第三间隔布线图案相同地,第四间隔布线图案被配置为与沿纵向、从左下至右上方向或从右下至左上方向的任意一个方向的MLUT所排列的方向平行。
接着,第四间隔布线图案是沿任意一个方向按每4个分离的MLUT进行MLUT的配置。为了遵照该规则,本来应该以第一~第三间隔布线图案进行连线的若干个MLUT以第四间隔布线图案进行连线。例如,在图38中,配置于上端行的左端列的MLUT为应该以第一间隔布线图案连线有间隔布线的MLUT,但是,却以第四间隔布线图案进行连线。
这样的第四隔离布线图案具有与第一~第三隔离布线图案类似的布线图案,因此,能够将对向MLUT区域8上的各MLUT30进行逻辑电路信息的布局/布线时所使用的布局/布线算法的影响抑制到较低。
〔3.3.7〕第五间隔布线图案的配置构造
图40为表示具有15行×30列的MLUT的MLUT区域的第五间隔布线图案的配置的图。通过第五间隔布线图案连接的MLUT为不能以第一~第四间隔布线图案进行连线,且也不能以第四间隔布线图案进行连线的MLUT30。在本例的MLUT区域中,这些MLUT30也能够借助于D触发器进行连线。
〔4〕搭载了1个MPLD的半导体装置
在此,对搭载了1个MPLD的半导体装置的例子加以说明。
〔4.1〕搭载了1个MPLD的半导体装置的配置构造
图41为表示搭载了MPLD的半导体装置的配置块的一例的图。半导体装置100具有MPLD20和输入输出电路部15。输入输出电路部15具有用于从半导体装置100的外部装置输入信号的输入电路、用于从半导体装置100的外部装置输出信号的输出电路、电源用单元以及I/O端口。
输入电路能够分别与对配置于MPLD20内的各MLUT30进行选择的地址线、对构成各MLUT30的存储元件40进行选择的地址线和用于向构成各MLUT30的存储元件40写入存储动作信息等的存储动作用数据线连接。而且,输入电路能够与配置于MPLD20的端部且未与其他MLUT30连线的AD对的至少1个逻辑动作用地址线以及控制信号等连接。输出电路能够分别与存储动作用数据线以及配置在MPLD20的端部且未与其他MLUT30连线的AD对的至少1个逻辑动作用数据线等连接。输入电路以及输出电路和MPLD20的各AD对能够直接连接。此外,输入电路以及输出电路和MPLD20的AD对也能够经由缓冲电路进行连接。通过插入缓冲电路能够使信号传递速度提高。
MPLD能够构成多输入多输出的逻辑电路。例如参照图33,具有30行×15列的MLUT区域8的MPLD20具有118个未连线的AD对。这些AD对可全部作为输入输出信号线使用。这就意味着,具有该MLUT区域8的MPLD20具有118根输入信号线以及118根输出信号线,并能够平行地对64位等多位信号进行逻辑运算。因此,MPLD能够实现高速且多输入多输出的逻辑电路。此外,如上所述,MPLD具有规则配置的MLUT,因此,也能够用于具有规则性的电路或真值表。
〔4.2〕针对MPLD的布局/布线流程
在此,说明对搭载于半导体装置的MPLD进行布局/布线的流程的一例。
图42为表示执行MPLD的布局/布线的信息处理装置的一例的图。信息处理装置210具有运算处理部211、输入部212、输出部213和存储部214。运算处理部211将已输入到输入部212的布局/布线用软件、RTL(Register Transfer Level,寄存器传输级)描述等的电路描述(以下,也称为网络表)等的真值表数据存储于存储部214。此外,运算处理部211使用存储于存储部214的布局/布线用软件,对存储于存储部214的电路描述执行以下所示的布局/布线流程,并向输出部213输出。能够将半导体装置100(未图示)连接至输出部213,并能够经由输出部213将包含运算处理部211所执行的布局/布线信息的位流数据写入半导体装置100。
图43为表示信息处理装置生成用于向MPLD布局/布线的位流数据的流程的一例的图。首先,具有对网络表进行与工艺无关的逻辑最优化(S201)、工艺映射(S202)、布局(S203)、布线(S204)的步骤。已被布局/布线的位流数据相当于分别写入MLUT30的逻辑电路信息,并通过MPLD20的存储动作被写入到各MLUT30所具备的存储元件。以下,依次对各步骤加以说明。
〔4.2.1〕与工艺无关的的逻辑最优化
首先,说明对网络表进行与工艺无关的逻辑最优化的步骤(S201)。在该步骤中,可以分离成加法器、减法器、乘法器以及除法器等运算器部分和其他逻辑电路部分来进行最优化。
在从RTL描述分离成运算器部分和其他逻辑电路部分时,通过提取RTL描述中所记载的运算记号,能够分离出运算器部分。例如,在利用Verilog HDL记载了RLT描述的情况下,通过提取表示加法的“+”、表示减法的“-”、表示乘法的“*”、表示除法的“/”以及表示余数运算“%”等的运算符,能够从RTL描述中分离出运算器部分。在使用与C语言类似的其他语言的情况下,也能够通过相同的方法分离出运算器部分。
可以以全加法器或半加法器作为基本单位来对运算器部分进行最优化。当将运算器部分与其他逻辑电路部分一同进行最优化时,通过对NAND电路、XOR电路等基本门电路进行组合,构成运算器。但是,在该情况下,当进行逻辑合成时,为了逻辑合成为各种门电路,构成各种运算器的电路可能会变得冗长。因此,通过将运算器部分与其他逻辑电路部分分离、并将全加法器或半加法器等作为基本单位来进行模块合成,能够高效地对运算器部分进行最优化。
这里的所谓模块合成是指:将具有规则构造的存储器、运算逻辑装置(ALU)、乘法器以及加法器等数据总线系模块等作为对象,并作为参数赋予模块的功能和位宽等必要信息,来生成模块模式。
例如,在通过具有5个以上的AD对的MLUT来构成MPLD的情况下,可以将2位加法器作为基本单位,对运算器部分进行模块合成。4位加法器可以由2个位加法器构成。8位加法器可以由4个位加法器构成。
对于8位加法器等基本的运算电路,能够将基于2位加法器的布线信息存储于存储部214。由此,关于所存储的运算电路,则不需要后述的布线处理,能够实现处理的高速化。但是,运算电路具有各种位数。此外,在加法器当中,除了全加法器、半加法器,还存在被称为“超前进位(Carry look ahead)”的加法器。因此,使所有模式的运算电路存储于存储部是不现实的。因此,可以将用于通过2位加法器构成运算电路的规定的布线规则存储于存储部214,并基于此布线规则构成运算电路。
对于其他的逻辑电路部分,使用用于通常的LSI设计或FPGA设计的一般方法。例如,执行状态机的状态数的最小化、二级逻辑最优化以及多级逻辑最优化等处理。
〔4.2.2〕工艺映射
接下来,对信息处理装置210进行工艺映射以使进行了与工艺无关的逻辑最优化之后的网络表成为适合于构成MPLD的MLUT的网络表的步骤(S202)加以说明。在一个例子中,工艺映射具有对进行了与工艺无关的逻辑最优化之后的网络表进行分解的第一步骤和对已通过第一步骤分解后的网络表进行覆盖的第二步骤。
第一步骤是使逻辑电路的输入以及输出数量在K以下,以使构成于MLUT的真值表中能够包含1个逻辑电路的步骤。在MLUT的AD对的数量为N的情况下,输入以及输出数K必须在AD对的数量N以下。在第一步骤中,可以使用内核(Kernel)提取以及Roth.karp分解(Roth-Karp decomposition)等。
第二步骤是为了对构成于MLUT的真值表的数量进行最优化,而对通过第一步骤获得的网络表的若干个节点进行覆盖的步骤。该步骤中,在通过第一步骤而被分解的真值表中,将2个以上的真值表结合起来并将能够包含在1个MLUT的真值表汇总成1个真值表。由此,能够对构成于MLUT30的真值表的数量进行最优化。
优选的是,在对组合电路进行最优化时,可以使最优化后的组合电路所具有的输入数以及输出数小于MLUT所具有的AD对的数量。由此,能够将配置有组合电路的MLUT同时作为连接部件使用。另外,在构成MPLD的MLUT具有6个以上的AD对的情况下,可以将输入线以及输出线的数量最优至5个以下。这是为了通过具有5个输入线以及输出线而在1个MLUT构成2位加法器的真值表。
〔4.2.3〕布局
接下来,对信息处理装置210将执行了工艺映射后的网络表配置于MPLD内的各MLUT的步骤(S203)加以说明。在执行了工艺映射后的网络表中记载根据MLUT具有的AD对的数量所构成的逻辑电路部的真值表与各MLUT所具有的AD对之间的连接关系。在本步骤中,将逻辑电路部的真值表分别配置于适当位置的MLUT。作为具体的布局手法,与通常的LSI设计同样包括用于初始布局的构成布局法(随机法、对联结法、成群展开法、以及最小割(min‑cut)法等),以及用于布局改善的重复改善法(斯坦伯格法、对交换法、广义力向量松弛法(force directed relaxation)、以及模拟退火法等)等。
〔4.2.4〕布线
对最后基于执行了工艺映射之后的网络表,在已布局的MLUT之间进行布线的步骤(S204)加以说明。根据执行了工艺映射之后的网络表,使用作为连接部件发挥作用的MLUT在作为逻辑电路工作的MLUT所具有的AD对之间进行布线。作为具体的布局手法,与通常的LSI设计同样包括Lee算法以及线检索算法等。结果,生成构成真值表数据的位流数据,该真值表数据将实现所希望的逻辑电路的网络表布局/布线于MPLD上。
〔4.3〕搭载了1个MPLD的半导体装置中的重构
如到目前为止所说明的,MPLD具有能够构成可重构逻辑电路的多个存储元件。利用MPLD的该特性,在搭载了MPLD的半导体装置中,能够对写入MPLD的逻辑电路信息进行重构。
例如,图41中记载的搭载了MPLD20的半导体装置100中的重构能够使用图42中记载的信息处理装置210来实现。将构成能够写入MPLD20的逻辑电路信息的多个位流数据存储于信息处理装置210的存储部214。而且,通过信息处理装置210向与信息处理装置210的输出部213连接的半导体装置100写入位流数据,能够实现MPLD20的重构。
此外,图41中记载的搭载了MPLD20的半导体装置100中的重构也能够通过使用与半导体装置100搭载于同一基板的微处理器(未作图示)和存储装置(未作图示)来实现。
〔4.4〕搭载了1个MPLD的半导体装置中的部分重构
〔4.4.1〕MPLD的部分重构流程
说明对搭载于半导体装置的MPLD进行部分重构的流程的一例。
图44为表示对搭载于图41所示的半导体装置的MPLD进行部分重构的流程的一例的图。首先,在步骤S211中,信息处理装置210对已写入MPLD的第一位流数据和执行了部分重构后的第二位流数据进行比较。该比较是通过比较记载于各位流数据中的具有相同地址的MLUT之间的内部所记载的真值表来进行的;并且,通过比较与MLUT的各AD对连接的AD对符号等来进行。能够将第一位流数据和执行了部分重构后的第二位流数据存储于存储装置。优选的是,在生成第二位流数据时,能够对第一位流数据与第二位流数据之间具有相同功能的MLUT赋予与第一位流数据相同的符号。接下来,在步骤S212中,确定第一位流数据与第二位流数据之间所记载的真值表数据不同的MLUT的地址,并将其存储于存储装置。对于MLUT的地址,能够在第一位流数据与第二位流数据之间将MPLD中位于相同位置的MLUT设为相同的地址。例如,在具有30行×15列的MLUT区域的MPLD中,可以将位于左上顶点的MLUT的地址设为0号,将位于此MLUT右侧的MLUT的地址设为1号,以下同样地进行重复,将位于右下顶点的MLUT的地址设为449号。另外,可以具有在第一位流数据与第二位流数据的各MLUT地址和物理位置不对应的情况下使两者的相关性明确的装置。例如,可以将表示相关关系的数据存储于存储装置。接下来,在步骤S213中,信息处理装置210向MPLD输出在步骤S212所确定的MLUT的1个地址。具体地讲,向MPLD20的行译码器12a和列译码器12b输入地址。然后,在步骤S214,信息处理装置210将地址被指定了的MLUT的第二位流数据所记载的真值表数据向MLUT写入。因为已经对向MLUT写入数据的方法进行了记述,所以在此省略其详细内容。
当在第一位流数据与第二位流数据之间所记载的真值表数据不同的MLUT的地址还在存储装置中存储有的情况下,返回步骤S213。当没有存储其他的在第一位流数据与第二位流数据之间所记载的逻辑电路信息不同的MLUT30的地址的情况下,结束部分重构。
〔4.4.2〕部分重构的实施例
在此,基于具体的实施例说明部分重构的优点。实施例基于高速傅立叶变换中一般所使用的蝶形运算。
图45中示出通过蝶形运算进行8点离散傅立叶变换时的算法的一例。在此,f(0)~f(7)为时间上的8个点。F(0)~F(7)为离散傅立叶变换后的8个点。W0~W3为旋转因子。在图45中,箭头线的交点表示进行加法的点。此外,在箭头线的交点处还附有“-1”的记载的情况下,表示进行减法的点。并且,在箭头线上附有旋转因子W0~W3的情况下,表示乘以旋转因子W0~W3。因此,例如在阶段S1,对f(0)进行加上将f(4)乘以W0后的值的加法运算,并对f(0)进行减去将f(4)乘以W0后的值的减法运算。这样,蝶形运算中,在各阶段进行常数乘法运算。
一般来讲,在通过逻辑电路实现常数乘法运算的情况下,与构成乘法电路相比,多通过移位电路和加法运算来构成常数乘法专用电路。这是因为:与单纯构成乘法电路的情况相比,通过由移位电路和加法运算来构成常数乘法专用电路,能够实现运算速度的高速化。此外,通过使用移位电路和加法运算,能够减少电路元件的数量,因此具有减少芯片面积的效果。例如,常数“3”乘以变量“a”的电路能够如下式所示地通过移位电路和加法运算来构成。
3*a=a*2+a=(a<<1)+a
在此,“*”表示乘法,“+”表示加法,“<”表示移位电路。因此,算式“(a<<1)+a”意味着将变量a移位至上2位的位,并对其结果加上变量a。
另一方面,离散傅立叶变换的旋转因子W0~W3根据使用电路的用途不同,可取各种值。因此,即使在构成通过蝶形运算来实现同样的8点离散傅立叶变换的电路的情况下,根据用途不同,需要构成各种电路。例如,在旋转因子W3为3的电路中,乘以旋转因子W3的电路如以下所示的算式那样构成。
3*a=a*2+a=(a<<1)+a
对此,在旋转因子W3为4的电路中,乘以旋转因子W3的电路如以下所示的算式那样构成。
4*a=a*2+a*2=(a<<1)+(a<<1)
在FPGA等以往的可重构逻辑电路中,即使在像这样仅一部分电路变更的情况下,也需要再进行布局/布线或需要改写所有逻辑电路信息。但是,MPLD能够确定逻辑电路信息已被变更的MLUT的地址,因此,能够仅改写逻辑电路信息已被变更的MLUT来进行部分重构。在该实施例中,能够通过将构成“+a”的逻辑电路的MLUT改写为构成“+(a<<1)”的逻辑电路的MLUT来进行部分重构。
〔5〕搭载了1个MPLD和运算处理部的半导体装置
在此,对搭载了1个MPLD和运算处理部的半导体装置的例子加以说明。
〔5.1〕搭载了MPLD和运算处理部的半导体装置
图46为表示搭载了MPLD的半导体装置的一例的图。半导体装置100具有MPLD20和运算处理部220。
运算处理部220具有存储部110、指令读出部120、寄存器部130以及指令执行部140。运算处理部220为通过执行存储于MPLD20的程序来进行与MPLD20之间的数据的输入输出,并对从MPLD20接收到的数据进行运算的装置。运算处理部220例如为作为运算处理装置的MPU(Micro Processing Unit,微处理单元)。MPLD20能够高速处理多输入多输出的逻辑运算。因此,将运算处理部220的功能限定为作为逻辑电路的部分控制的分支指令等的例外处理、作为MPLD20的状态控制的MPLD20的重构、或将MPLD20内的SRAM作为存储区域而进行数据访问等,由此,能够形成8位、16位等位宽较窄的运算处理装置。
存储部110为存储指令或数据的存储装置。存储部110存储MPLD20要存储的数据的一部分。存储部110例如为1次高速缓冲存储器。存储部110例如为SRAM(Static Random Access Memory,静态随机访问存储器)。另外,在以下的说明中,将存储部110作为MPLD20的高位高速缓冲存储器来加以说明,而如使用图52在后面所述的那样,在一实施方式中,运算处理部220与存储部26数据连接。此情况下,对于与利用下述MPLD20的存储器功能的运算处理部220之间的数据输入输出,在主存储装置中也相同。
存储部110设于运算处理部220的内部,并位于比MPLD20更接近指令读出部120的位置。在指令读出部120访问存储于存储部110的数据的情况下(以下,称为“高速缓存命中”),指令读出部120能够短时间访问对象数据。另一方面,在指令读出部120访问未存储于高速缓冲存储器的数据的情况下(以下,称为“高速缓存缺失”),因为要从位于存储部110的下层的MPLD20读出数据,所以对对象数据的访问时间变长。因此,为了不产生高速缓存缺失,将来自运算读出部120的访问频度高的数据保存于存储部110。
指令读出部120从存储部110读出指令,并将所读出的指令输出至指令执行部140。
当指令执行部140从指令读出部120接收到从存储部110读出的指令时,对存储于寄存器130的数据执行通过指令确定的处理。所谓与指令相应的规定的指令处理例如为浮动小数点运算、整数运算、生成地址、执行分支指令、将存储于寄存器130的数据向存储部110存储的存储动作、将存储于存储部110的数据加载至寄存器130的加载动作。指令执行部140具有进行浮动小数点运算、整数运算、地址生成、分支指令的执行以及存储或加载动作的执行器,使用这些执行器来执行上述指令处理。指令执行部140借助于输入输出部150,对MPLD20执行数据的存储或加载动作。
寄存器130例如存储操作数、或对MPLD20进行存储或读出动作时的地址、保存有作为指令执行部140的执行对象的指令的MPLD20的地址。
输入输出部150进行与MPLD20之间的数据的输入输出。MPLD20与使用图1~图3加以说明过的例子相同。输入输出部150中,MLUT30的逻辑动作用地址LA的地址线与自运算处理部220的输出端子D0而来的1个输出信号线连接,并且MLUT30的逻辑动作用数据LD的数据线与向运算处理部220的输入端子IO进行输入的输入信号线连接。这样,配置于MPLD20的外延的MLUT的至少一部分接收与运算处理部220之间的逻辑动作用地址LA,或输出逻辑动作用数据LD。
如图46所示,输入输出部150还与MPLD地址、存储动作用地址MA、写入数据WD、读出数据RD的信号线连接,通过这些数据的输入输出,对MPLD20进行存储动作。
如通过上述构成所明确的那样,运算处理部220借助于输入输出部150将存储动作用地址MA、MPLD地址、写入数据WD输出至MPLD20,由此,执行使MPLD存储动作产生的存储动作,并借助于输入输出部150,将存储动作用地址MA、MPLD地址输出至MPLD20,由此来接收读出数据RD。这样,输入输出部150中进行存储动作用地址MA、MPLD地址、写入数据WD、读出数据RD的输入输出的部分作为存储动作用的输入输出部工作。
此外,如通过上述构成所明确的那样,运算处理部220借助于输入输出部150输出逻辑动作用地址LA,并接收逻辑动作用数据LD,由此,接收MPLD的逻辑动作的结果。这样,输入输出部150中进行逻辑动作用地址LA、逻辑动作用数据LD的输入输出的部分作为逻辑动作用的输入输出部工作。
图47为概略地表示进行运算处理部与MPLD之间的数据的输入输出的输入输出部的一例的图。包含于MPLD20的输入输出部21中,MLUT30的地址线与自运算处理部220的输出端子D0而来的1个输出信号线连接,并且MLUT30的数据线与向运算处理部220的输入端子IO进行输入的输入信号线连接。
按照运算处理部220的输入输出位数的数量准备运算处理部220的逻辑动作用的输入输出信号线与MLUT30的地址或数据线的连接。例如,在运算处理部220具有16位的输出位宽的情况下,输出信号线以及输入信号线分别为16根,与这些信号线连接的MLUT的地址线以及数据线也为16根。
按照运算处理部220的输入输出位数的数量准备运算处理部220的输入输出信号线与MLUT30的地址或数据线的连接。例如,在运算处理部220具有16位的输出位宽的情况下,输出信号线以及输入信号线分别为16根,与这些信号线连接的MLUT的地址线以及数据线也为16根。
这样,通过不经由总线连接电路而直接将运算处理部220的输入输出信号线与MLUT30的地址或数据线连接,能够使运算处理部220与MPLD20连接。由于在运算处理部220与MPLD20之间的连接中不借助于总线连接电路,因此无需通过总线仲裁电路来进行主从设定。结果,能够谋求运算处理部220与MPLD20之间的信号的传递速度的提高。此外,能够在各连接之间插入缓冲电路。通过插入缓冲电路,能够谋求信号的传递速度的进一步提高。
图48为表示进行运算处理部与MPLD之间的数据的输入输出的输入输出部的其他例的图。如图48所示,运算处理部220具有进行与MPLD20之间的数据输入输出的输入输出部230。此外,MPLD20也具有进行与运算处理部220之间的数据输入输出的输入输出部21。输入输出部21输入输出部150,例如具有从MLUT30的AD对的地址线输出地址的端口A0~A7以及从MLUT30的AD对的数据线输入数据的端口D0~D7,并能够对MPLD20的逻辑部件进行数据输入输出。
输入输出部21还依据用于与运算处理部220的输入输出部230进行数据输入输出的规定的协议进行传递控制。所谓依据规定的协议的传递控制为例如PCI Express等高速串行总线或并行总线等的总线控制。这样,运算处理部220与MPLD20能够通过规定的总线进行数据连接。
另外,图48中,运算处理装置与1个MPLD20连接,但也能够借助于输入输出部230也与其他MPLD连接。而且,运算处理部220还能够借助于输入输出部230与第一MPLD所具有的MLUT的地址线以及数据线和第二MPLD所具有的MLUT的地址线以及数据线连接,对第一MPLD进行逻辑动作的数据输入输出,并对第二MPLD进行包括重构在内的存储动作。由此,运算处理部220对第一MPLD的输入输出部进行输出地址以及数据的控制,并对第二MPLD的输入输出部进行输出地址及接收数据的控制。
图49为表示同时进行逻辑动作和存储动作的MPLD以及运算处理部的一例的图。如图49所示的MPLD20的MLUT能够如图19所示的MLUT那样同时进行逻辑动作和存储动作。因此,运算处理部220对由作为MPLD内的存储动作对象的多个MLUT构成的第一逻辑部进行存储动作,并对由作为MPLD内的逻辑动作对象的多个MLUT构成的第二逻辑部进行逻辑动作。
图50为表示多个MPLD以及运算处理部的一例的图。图50所示的MPLD20A、20B的MLUT不能如图4所示的MLUT那样同时进行逻辑动作和存储动作。因此,运算处理部220对包含作为存储动作象的多个MLUT的第一MPLD20A进行存储动作,并对由作为逻辑动作对象的多个MLUT构成的第二MPLD20B进行逻辑动作。
〔5.2〕搭载了MPLD与运算处理部的半导体装置的配置构造
图51为表示搭载了MPLD的半导体装置的其他例中的配置块的一例的图。半导体装置100具有MPLD20、运算处理部220和输入输出电路部15。输入输出电路部15与参照图41加以说明的例子相同,因此,在此省略说明。运算处理部220为使用图46加以说明的结构。
在本例中,MPLD地址信号线与存储动作用地址信号线能够与运算处理部220连接。配置于MPLD20的端部并未与其他MLUT30连线的AD对的若干个与运算处理部220连接。此外,其他若干个与输入输出电路部15连接。运算处理部220、MPLD地址信号线和存储动作用地址信号线能够借助于内部总线电路相连接、或能够直接连接。对于运算处理部220与MLUT30的AD对之间的连接,能够借助于内部总线电路连接。此外,对于运算处理部220与MLUT30的AD对之间的连接,也能够直接连接。与借助于内部总线电路连接的情况相比较,对AD对进行直接连接的情况能够高速工作。这是因为无需总线仲裁电路动作。而且,运算处理部220与MPLD20的各AD对也能够借助于缓冲电路连接。通过插入缓冲电路,能够进一步提高信号传递速度。
图52中为表示搭载了MPLD的半导体装置的其他例中的配置构造的一例的图。参照图52,本例中的半导体装置100具有多路复用器22、A/D转换器24、运算处理部220、1个MPLD20、存储部26、MOSFET(Metal‑Oxide‑Semiconductor Field‑EffectTransistor,金属氧化物半导体场效应晶体管)驱动器28。此外,从本例的半导体装置100的控制对象物的检测器输出向多路复用器22输入信号,MOSFET驱动器28的输出被输入至控制对象物的控制输入。
多路复用器22从控制对象物的检测器输入32个或64个等适当数量的模拟信号。多路复用器22对所输入的信号进行时间分割并向A/D转换器24输出。A/D转换器24将已被进行时间分割的模拟信号变换成数字信号,并向运算处理部220和MPLD20输出。已输入来自A/D转换器24的信号的运算处理部220基于存储于外部存储装置的软件的控制,指示MPLD20对所输入的信号进行处理。此时,MPLD20进行多输入多输出的运算处理、定型处理以及背景处理等。
此外,运算处理部220向MPLD20发出信号处理方法的指令,并进行从MPLD20输入错误信号、报警信号等时的处理等非定型处理。通过对MPLD20的逻辑电路信息进行重构,运算处理部220能够使MPLD20执行各种处理。在规定的处理结束后,运算处理部220基于存储于外部存储装置的软件的控制,借助于MOSFET驱动器28向对象物控制对象物输出数据。由此,能够形成从控制对象物的检测器借助于本例的半导体装置100至控制对象物的控制器的反馈回路。因此,能够以少量零件构成多系统的控制。
对本例的半导体装置100的应用例加以说明。作为应用例,半导体装置100进行除去附着于汽车的车门后视镜的雨滴的控制。该情况下,控制对象物的检测器包括设置在设于汽车的驾驶员侧的车门上的车门后视镜、副驾驶侧的车门后视镜以及前窗玻璃等处的、分别配置数个的雨滴检测器、设置于前窗玻璃或前盖等的雨量检测器等。此外,对于其他的输入,还包括设置于车门后视镜、前窗玻璃等的括水器的工作频度、工作速度的信号等。被输入这些信号的半导体装置100根据存储于其他存储装置的软件来决定工作时间、工作周期、工作强度等。然后,根据决定,向与MOSFET驱动器28的输出连接的括水器驱动用发动机输出信号,以适当的时间、周期、强度驱动车门后视镜的括水器。此外,在发生了某些故障的情况下,向与MOSFET驱动器28的输出连接的LED驱动器输入信号,为了向驾驶员发出警告而驱动LED。此时,向括水器驱动用电机输出的信号的控制为定型处理,且为多位并列处理,因此,通过MPLD20来进行运算处理。此时,能够根据必要对MPLD20的逻辑电路信息进行重构。另一方面,向MOSFET驱动器28输出的警告信号的控制为非定型处理,因此,由运算处理部220来进行处理。
〔5.3〕写入MPLD的逻辑电路信息的动作合成流程
在此,说明把对搭载于半导体装置的MPLD写入的逻辑电路信息进行动作合成的流程。
〔5.3.1〕关于动作合成
一般来讲,所谓的动作合成是指根据希望在设计对象的电路中进行处理的算法、即动作描述,来生成此电路的RTL码。
图53为表示动作合成的一例的图。图42所示的信息处理装置210能够执行动作合成。参照图53,在动作合成中,信息处理装置210在步骤S221根据动作描述生成CDFG(Control Data Flow Graph,数据控制流图),在步骤S222对CDFG进行调度,在步骤S223,为已调度的CDFG进行资源分配,在步骤S224,根据已进行了资源分配的CDFG生成MPU指令码,在步骤S225生成RTL-CDFG。另外,“MPU指令码”为运算处理部220的指令码。
对于动作描述,可以使用作为数字电路设计用硬件描述语言(HDL)的一种的VHDL(VHSIC(Very High Speed Integrated Circuits,甚高速集成电路)HardwareDescription Language,VHSIC硬件描述语言)。此外,动作描述也可以是通用性高的、即所谓高级语言(也称为高水平语言)。在此,高级语言是编程语言中具有更接近自然语言并易于人理解的句法或概念的语言的总称。作为具有代表性的高级语言的种类,包括BASIC、FORTRAN、COBOL、C语言、C++、Java(注册商标)、Pascal、Lisp、Prolog、Smalltalk等。
MPU指令码为汇编语言或机器语言等的低级语言(也称为低水平语言),能够成为运算处理部直接读入的语言。MPU指令码以软件等形态存储于存储装置等,并规定运算处理部执行的处理的内容。MPU指令码中包含记载于动作描述中的控制电路部分的一部分等。
RTL‑CDFG可以是向C语言的描述中追加寄存器描述的语言或verilog HDL等硬件描述语言(HDL)等。RTL‑CDFG相当于图43所示的电路描述。图42所示的信息处理装置210能够通过使用图42以及图43说明的布局/布线流程根据RTL-CDFG生成位流数据。
以下,依次对图53所示的各步骤加以说明。
〔5.3.2〕生成CDFG的步骤
图53所示的生成CDFG的步骤S221具有对动作描述执行的控制流程和数据的流动进行解析,并变换为与程序的流程图类似的CDFG的步骤。CDFG(Control DataFlow Graph,数据控制流图)表示动作描述中出现的数据流程(数据流)和各运算的执行顺序的控制流程(控制流),并具有节点、输入枝、输出枝以及表示四则运算等的各种运算的种类的号码。在将动作描述变换为CDFG时,进行与在常数传播、共同运算去除等编译程序的最优化中所进行的处理相同的处理。此外,也可以以提取动作描述中所内在的并列性的方式一并实施变更流程图的构造的处理等。
图54为表示构成逻辑电路x=(a+b)*(b+c)的CDFG的例子的图。此算式为求取“a”与“b”的逻辑和、和“b”与“c”的逻辑和之间的逻辑积“x”的算式。参照图54,br1~br7表示数据信号或控制信号。节点br11~br13表示运算。节点br11以及br12分别表示“a”与“b”的逻辑和及“b”与“c”的逻辑和。节点br13表示节点br11的输出枝与节点br12的输出枝的逻辑积。
〔5.3.3〕调度步骤
图53所示的进行调度的步骤S222为对整体的硬件量和总控制步骤数等时间限制加以考虑来具体确定执行动作描述中的各运算的控制步骤的步骤。即,调度是指确定何时执行与CDFG的节点对应的运算。换言之,即确定以哪个时钟步骤来执行与CDFG的节点对应的运算。该情况下,对各运算的延迟时间加以考虑,并以所有节点收于时钟周期内的方式进行调度。调度分为速度优先调度和硬件量优先调度。速度优先调度是指给出整体的控制步骤数作为限制,并在此条件下以硬件量变小的方式来进行调度。另一方面,在硬件量优先调度中,给出可使用的硬件量的限制,并在此条件下以控制步骤数变为最小的方式来进行调度。
图55为表示以速度优先调度对图54所示的CDFG进行调度后的结果的图。参照图55,在步骤1中,执行由图54所示的CDFG的节点c11表示的“a”与“b”的逻辑和、由节点c12表示的“b”与“c”的逻辑和、由节点c13表示的节点c11的输出枝与节点c12的输出枝的逻辑积的所有运算。这样,在图55所示的速度优先调度中,能够通过1个步骤来执行给定的逻辑电路。但是,由节点c11表示的“a”与“b”的逻辑和及由节点c12表示的“b”与“c”的逻辑和是通过同一步骤来执行的,因此,需要2个逻辑和电路。
图56为表示以硬件量优先调度对图54所示的CDFG进行调度后的结果的图。参照图56,在步骤1中,执行图54所示的CDFG中由节点c11表示的“a”与“b”的逻辑和。然后,在步骤2中,执行由节点c12表示的“b”与“c”的逻辑和及由节点c13表示的节点c11的输出枝与节点c12的输出枝的逻辑积。这样,与图55所示的速度优先调度中通过1个步骤来执行给定的逻辑电路相对地,在硬件量优先调度中,通过2个步骤来执行给定的逻辑电路。因此,与速度优先调度相比,在硬件量优先调度中,处理时间将增加。但是,由节点c11表示的“a”与“b”的逻辑和及由节点c12表示的“b”与“c”的逻辑和是由不同的步骤执行的,因此,图55所示的速度优先调度需要2个逻辑和电路,与此相对,在硬件量优先调度中,能够仅通过1个逻辑和电路来执行2个逻辑和运算。
〔5.3.4〕资源分配步骤
所谓资源分配是指,基于调度结果,为CDFG的运算节点分配运算器,生成用于数据选择的多路复用器和用于数据存储的寄存器,并生成用于控制这些运算器、寄存器以及多路复用器的控制器,通过使各部分彼此连接来合成电路。即,在资源分配步骤(S223)中,对表示CDFG的运算的各节点,基于数据的依存关系和所赋予的限制来进行控制步骤的分配。此时,能够一并进行在所生成的逻辑电路中使用的MLUT数的估算。
资源分配可以分成运算器部分和控制部分来执行。以下,依次对运算器部分和控制部分加以说明。
包含于运算器部分的电路中有三类。第一类能够由全加法器构成。其中包含加法减法、乘法、计数、比较运算等。第二类能够由多路复用器构成。其中包含多位多路复用器以及滚桶式移位器等。第三种能够由存储器电路构成。其中包含查找表以及寄存器文件等。无论在任何种类的运算器中,在进行资源分配时,都是按步骤,即按状态机的状态插入寄存器电路。在此,状态机为根据已确定的条件,以已确定的顺序对预先确定的多个状态进行迁移的数字装置。状态机的状态为如图56所示的“步骤1”或“步骤2”等那样的通过调度来规定的1个控制步骤。
运算器部分的资源分配是基于运算器的种类和位数来执行的。对于位数,能够通过C语言等高级语言的类型来确定位数。由此,能够构成与C语言等高级语言具有互换性的CDFG。此外,在int、short、long等类型中,在认为位宽较大的情况下,也可以通过扩展指令为C语言的变量说明的部分规定位数。能够基于这样规定的位数确定各运算器所需的MLUT的数量。
在能够通过多路复用器构成的第一类的运算器中,能够选择硬件量优先的资源分配和速度优先的资源分配中的任一个来进行资源分配。例如,对于多位加法器,在硬件量优先的资源分配中,通过对全加法器进行多级组合,能够构成多位加法器。此外,在速度优先的资源分配中,能够构成具有组合成多级的全加法器和超前进位逻辑电路的多位加法器。
对于通过具有5个以上的AD对的MLUT构成的MPLD,在对构成第一类运算器的MLUT数进行估算的情况下,能够根据通过1个MLUT来构成2位加法器这一情况来对MLUT数进行估算。例如,能够估算出4位加法器是由2个位加法器构成的。此外,能够估算出8位加法器是由4个位加法器构成的。该情况下,各种加法器中所使用的MLUT数的估算将变得容易。
能够通过多路复用器构成的第二类的运算器能够基于位数进行资源分配。例如,在多位多路复用器中,通过在存储部214中具有记载了与位数相应的MLUT数而成的数据,能够谋求所使用MLUT数的估算的简易化。
能够通过存储器电路构成的第三类的运算器能够将各MLUT考虑成N位×N字的存储器电路来进行资源分配。在作为逻辑电路工作的MPLD中,在能够使一部分的MLUT作为存储器电路工作的情况下,可以仅使MPLD中作为第三类的运算器工作的MLUT作为存储器电路工作。由此,能够在MPLD内部混装逻辑电路和存储器电路。
控制电路例如为C语言中的if语句、case语句以及函数调用语句等。控制电路的资源分配能够通过由2输入NAND电路和NOT电路构成的电路来进行。
这样,通过使运算电路和控制电路分开并将运算电路分为第一~第三类来进行资源分配,能够执行适合各电路构成的资源分配。
控制电路的估算能够通过暂时对由2输入NAND电路和NOT电路构成的电路进行逻辑合成,并对此电路进行工艺映射来进行。例如,if语句能够通过具有2输入NAND电路和NOT电路的比较电路来构成。
〔5.3.5〕区域划分
对逻辑电路进行资源分配并进行运算电路部分以及控制电路部分的MLUT数的估算之后,结果,有时会判断为所估算的逻辑电路不能搭载于1个MPLD。该情况下,需要将逻辑电路划分成能够搭载于1个MPLD的多个逻辑块。
如上所述,MPLD为可重构的逻辑电路。因此,在不能将逻辑电路搭载于1个MPLD的情况下,能够将逻辑电路划分成可搭载于1个MPLD的多个逻辑块,并按划分后的运算器块依次执行处理。在本说明书中,将把运算器部分以及控制部分等的逻辑电路划分成能够搭载于1个MPLD的大小称为“区域划分”。另外,关于区域划分的说明中所使用的用语“逻辑电路”为由已进行了资源分配的CDFG数据表示的逻辑电路,“逻辑块”为将由已进行了资源分配的CDFG数据构成的逻辑电路划分成适当大小后的CDFG数据。
图57表示执行被划分成第一逻辑块和第二逻辑块的2个逻辑块的逻辑电路的1个例子。在本例中,能够通过搭载MPLD20和运算处理部220的半导体装置100及存储装置来执行逻辑电路。此外,也能够通过在搭载MPLD20和运算处理部220的半导体装置100进一步搭载存储部26来执行。存储装置或存储部与MPLD20的输出连接,存储第一逻辑块、第二逻辑块和第一逻辑块的执行结果。
在步骤S231中,运算处理部执行已写入MPLD的第一逻辑块。第一逻辑块能够通过1个或多个状态来构成。在步骤S232中,运算处理部将通过步骤S231执行的第一逻辑块的执行结果存储于存储装置。通过将第一逻辑块的执行结果存储于存储装置,能够在将MPLD从第一逻辑块至第二逻辑块进行重构的期间,将第一逻辑块的执行结果进行保存,并作为第二逻辑块的输入使用。在步骤S233中,运算处理部将已被写入MPLD的第一逻辑块重构成第二逻辑块。重构时,可以改写MPLD的所有MLUT,也可以选择性地仅改写在第一以及第二逻辑块中所使用的MLUT。此外,也可以进行对一部分MLUT进行改写的部分重构。在步骤S234中,运算处理部读出在步骤S232中存储至存储装置的第一逻辑块的执行结果,作为第二逻辑块的输入信号。在步骤S235中,运算处理部将在步骤S234所读出的第一逻辑块的执行结果作为第二逻辑块的输入信号而向MPLD的输入端子输入,并执行第二逻辑块。
在本例中,将逻辑电路进行区域划分而成为2个逻辑块,但是,能够基于MPLD的大小与所估算的逻辑电路的大小的比较,将逻辑电路进行区域划分而成为适当数量的逻辑块。区域划分能够由图42所示的信息处理装置210来执行。
图58为表示在资源分配时对逻辑电路进行区域划分的一例的图。参照图58,对图42所示的信息处理装置210将资源分配时所估算的逻辑电路划分成多个逻辑块的流程加以记述。
在步骤S241,信息处理装置210确定可使用的MLUT数。信息处理装置210能够将表示搭载于MPLD的MLUT与可使用的MLUT数的关系的数据等存储于存储部。能够基于MPLD的布局/布线效率来生成该数据。能够基于该数据来确定可使用的MLUT数。在步骤S242,信息处理装置210生成搭载状态的区域。在此,所谓区域是指把通过CDFG的资源分配被划分成各步骤的状态的逻辑电路的1个或多个状态进行搭载的逻辑块。在步骤S243中,信息处理装置210将状态搭载于区域。例如,在第一区域的最初的步骤中,将经过资源分配后的第一状态搭载于区域,在搭载了第一状态之后的步骤中,搭载第二状态。在步骤S244,信息处理装置210对搭载于区域的所有状态所使用的MLUT数进行估算。能够通过对经过资源分配后的各状态的MLUT数进行合计来估算。
在步骤S245,信息处理装置210判断是否还能将状态搭载于区域。信息处理装置210基于搭载于区域的所有状态所使用的MLUT数的估算和可搭载于MPLD20的MLUT数,判断是否还能够将状态搭载于区域。在信息处理装置210判断为还能将状态搭载于区域时,处理将返回至步骤S243,并将下一个状态搭载于区域。在信息处理装置210判断为不能再将状态搭载于区域时,处理进入步骤S246。此时,关于控制电路部的状态,信息处理装置210需要判断是将其搭载于区域还是不搭载于区域而是生成为MPU指令码。在将控制电路部的状态生成为MPU指令码的情况下,信息处理装置210判断为不能再将状态搭载于区域,此状态并不搭载于区域,而是移至生成新的区域的处理。此外,为了生成为MPU指令码,信息处理装置210将控制电路部的状态存储于存储部。
在步骤S246,信息处理装置210判断是否有未处理的状态。在存在未处理的状态的情况下,处理返回到步骤S243,并新生成搭载状态的区域。在不存在未处理的状态的情况下,信息处理装置210结束处理。
〔5.3.6〕生成MPU指令码的步骤
生成图53所示的MPU指令码的步骤S224为在进行图58所示的区域划分时在步骤S241中根据被判断为要作为MPU指令码生成的控制电路部的状态来生成MPU指令码的步骤。如上所述在控制电路中,例如是C语言则包含if语句、case语句以及函数调用语句等。在步骤S224,信息处理装置210将这些函数变换为运算处理部可读出的低级语言。
在步骤S224中所生成的MPU指令码能够存储于1个MPLD20和与运算处理部220一同搭载于半导体装置100的存储部26中。此外,也能够存储于与半导体装置100一同使用的存储装置(未图示)。
〔5.3.7〕生成RTL-CDFG的步骤
生成图53所示的RTL-CDFG的步骤S225为根据在对CDFG进行资源分配的步骤S223中被进行了资源分配的CDFG来生成RTL级的CDFG的步骤。在对CDFG进行资源分配的步骤S223中,在进行了区域划分的情况下,按区域划分后的逻辑块来生成RTL级的CDFG。
在步骤S225中所生成的RTL-CDFG能够通过使用图42及图43说明的布局/布线流程而变换为适当的位流数据。在进行了区域划分的情况下,按区域划分后的逻辑块来生成位流数据。
布局/布线后的1个或多个位流能够存储于MPLD和与运算处理部一同搭载于半导体装置的存储部。此外,也能够存储于与半导体装置一同使用的存储装置(未图示)。在进行了区域划分的情况下,运算处理部能够使用该位流数据,将多个逻辑块重构于MPLD上。
〔5.4〕搭载了1个MPLD和运算处理部的半导体装置中的重构
即使在图51中记载的搭载了1个MPLD20和运算处理部220的半导体装置100中,也能够与图41中记载的搭载了1个MPLD20的半导体装置100相同地对逻辑电路信息进行重构。
图59为表示向MLUT写入逻辑电路信息等信息的顺序的流程图的一例。在步骤S247,运算处理部220利用存储动作用地址MA来选择写入逻辑电路信息等信息的存储元件4。接着,在步骤248,运算处理部220输出要写入存储元件4的数据。在步骤249,判断是否还存在要写入的信息,在存在要写入的信息的情况下,再次返回到步骤S247,并继续写入信息。在不存在要写入的信息的情况下,结束写入程序。信息的写入能够针对n×2n个存储元件的所有存储元件进行,另外也能够仅针对n×2n个存储元件的一部分进行。
如上述那样,能够对MPLD20的逻辑电路信息进行重构。但是,图51中记载的半导体装置100在内部具有运算处理部220,因此,运算处理部220能够执行与重构有关的指令。该情况下,能够不使用图42中记载的信息处理装置210或搭载有半导体装置100的基板上的微处理器,而是由搭载于半导体装置100的运算处理部220来执行重构。因此,无需将半导体装置100与用于重构的信息处理装置210或基板上的微处理器的输入部连接。而且,因为搭载于半导体装置100的运算处理部220将逻辑电路信息写入MPLD20,所以能够高速动作。因此,图51中记载的半导体装置100,能够进行高速且简便的重构。
〔5.5〕搭载了1个MPLD和运算处理部的半导体装置中的部分重构
即使在图51中记载的搭载了1个MPLD20和运算处理部的半导体装置100中,也能够与图41中记载的搭载了1个MPLD20的半导体装置100相同地对MPLD20的逻辑电路信息进行部分重构。即,利用与使用图44说明过的流程相同的流程,能够对MPLD20的逻辑电路信息进行部分重构。但是,图51中记载的半导体装置100在内部具有运算处理部220,因此,与上述重构的情况相同地,能够不使用信息处理装置210或搭载半导体装置100的基板上的微处理器,而是通过搭载于半导体装置100的运算处理部220来执行部分重构。
〔6〕搭载了2个MPLD和运算处理部的半导体装置
在此,对搭载了2个MPLD和运算处理部的半导体装置的例子加以说明。
〔6.1〕搭载了2个MPLD和运算处理部的半导体装置
图60为表示搭载了MPLD的半导体装置的第一例中的配置构造的图。半导体装置100具有第一MPLD20a、第二MPLD20b、运算处理部220、输入输出电路部15。输入输出电路部15以及运算处理部220与参照图41说明的例子相同,因此,在此省略说明。第一MPLD20a和第二MPLD20b能够分别单独地工作。
因为使用图51及图52等说明了第一MPLD20a及第二MPLD20b与运算处理部220之间的布线以及与输入输出电路部15之间的布线,所以在此省略说明。
第一MPLD20a与第二MPLD20b之间能够通过构成各MPLD的MLUT所具有的AD对来直接连线。通过不借助于总线电路等而直接连接第一MPLD20a和第二MPLD20b,能够使2个MPLD之间的信号处理高速化。
图61为表示搭载了MPLD的半导体装置的第二例中的配置构造的图。参照图61,本例中的半导体装置100具有第一MPLD20a、第二MPLD20b、运算处理部220、输入输出电路部15和存储部26。
存储部26存储在第一MPLD20a以及第二MPLD20b中分别执行的逻辑电路的执行结果,并保存包含运算处理部220所执行的MPU指令码的程序。通过在半导体装置100中搭载存储部26,以下说明的动态重构的处理将变得容易。存储部26与第一MPLD20a、第二MPLD20b以及运算处理部220连线,以存储MPLD中的逻辑电路的执行结果。
图62为表示半导体装置的布线层的一例的剖面图。半导体装置100在形成有MOS晶体管等的电路元件(未图示)的半导体基板160的上方具有布线层170。布线层170通过适当连接配置于各布线层的多个布线来连接形成于电路基板上的电路元件的各端子(未图示)。通过适当连接半导体装置100所具有的电路元件的各端子,半导体装置100能够实现所希望的动作。
布线层170具有第一布线层172、第二布线层174、第三布线层176以及第四布线层178的4层布线层。半导体基板160及第一~第四布线层172、174、176以及178借助于第一~第四过孔连接部171、173、175以及177相连接。第一~第四布线层172、174、176及178以及第一~第四过孔连接部171、173、175及177的层之间填充有由斜线表示的绝缘层180。
如图所示,第一布线层172形成为剖面为直线状。一部分的第一布线层172以将形成于电路基板上的电路元件的2个端子之间连接的方式,借助于第一过孔连接部171被连接。其他的第一布线层172借助于第一过孔连接部171与形成于电路基板上的电路元件的端子连接,并借助于第二过孔连接部173与第二布线层174连接。而且,其他的第一布线层172以将2个不同的第二布线层174之间连接的方式,借助于第二过孔连接部173被连接。
在从上方观察形成有电路元件的半导体基板的表面的情况下,以在垂直于第一布线层172的方向上形成大致直线状的方式形成多个第二布线层174。一部分的第二布线层174以将2个不同的第一布线层172之间连接的方式,借助于第二过孔连接部173被连接。其他的第二布线层174借助于第二过孔连接部173与第一布线层172连接,并借助于第三过孔连接部175与第三布线层176连接。而且,其他的第二布线层174以将2个不同的第三布线层176之间连接的方式,借助于第三过孔连接部175被连接。
在从上方观察形成有电路元件的半导体基板的表面的情况下,以在平行于第一布线层172的方向上形成大致直线状的方式形成多个第三布线层176。一部分的第三布线层176以将2个不同的第二布线层174之间连接的方式,借助于第三过孔连接部175被连接。其他的第三布线层176借助于第三过孔连接部175与第二布线层174连接,并借助于第四过孔连接部177与第四布线层178连接。而且,其他的第三布线层176以将2个不同的第四布线层之间连接的方式,借助于第四过孔连接部177被连接。一般地,在与第一布线层172以及第二布线层174相比较的情况下,第三布线层176形成为具有大的截面积。
在从上方观察形成有电路元件的半导体基板的表面的情况下,以在平行于第二布线层174的方向上形成略直线状的方式形成多个第四布线层178。第四布线层178以将2个不同的第三布线层176之间连接的方式,借助于第四过孔连接部177被连接。一般地,以具有比第三布线层176具有更大的截面积的方式形成第四布线层178。
第一~第四布线层172、174、176以及178由铝以及作为阻挡金属使用的铜等导电性材料形成。第一~第四过孔连接部171、173、175以及177也由铝等的导电性材料形成。绝缘层160由二氧化硅等的绝缘体材料形成。
这样,在半导体装置中,布线层的形成是为了分别将形成于半导体基板上的各电路元件的端子之间连接。在被称为片上系统(以下,称为SOC)的半导体装置中,于半导体基板上搭载运算处理部、存储部、模拟—数字变换部、运算放大器等的模拟电路部、逻辑电路部等的数字电路部以及输入输出电路部等。在不要求运算处理部进行高性能的处理的情况下,例如在是进行8位、16位等的运算处理的运算处理部等的情况下,运算处理部一般能够通过4层左右的布线层来形成。此外,搭载于存储部等的SOC的其他构成要素一般也通过4层以下的布线层来形成。
如上所述,MPLD具有:具有CMOS晶体管的SRAM和能够通过CMOS晶体管构成的逻辑电路。因此,能够通过使用SRAM等的存储器电路技术和CMOS电路技术来制造MPLD。即使考虑到一般半导体装置的集成度,这些技术也能够通过3层或4层左右的布线层来形成。此外,因为MPLD能够作为开关功能使用,所以无需像FPGA那样在MPLD设置连接通道区域。因此,可以期待MPLD具有与通过一般的CMOS电路技术制造的其他构成要素相同程度的集成度。因此,MPLD也能够通过3层或4层左右的布线层形成。
这样,MPLD的布线层能够与搭载于SOC的其他构成要素同样地,通过4层以下的布线层来形成。这就意味着若考虑到半导体装置的制造方面,则MPLD具有与SOC的亲和性。即,意味着MPLD易于搭载于SOC半导体装置。若考虑集成度,则FPGA等其他可重构逻辑电路一般形成具有8层至10层左右的多层布线层的构造。因此,即使在不需要对SOC电路部进行多层布线的情况下,也需要对FPGA等可重构逻辑电路进行多层布线,所以,半导体装置形成多层布线构造。对此,如上所述,能够使MPLD形成3层或4层左右的布线层构造。因此,能够基于SOC电路部的布线层构造来确定半导体装置的布线层构造。例如,半导体装置100的物理布线层数为4层以下。
〔6.2〕搭载了2个MPLD和运算处理部的半导体装置中的动态重构
〔6.2.1〕MPLD的动态重构流程
在此,对动态重构搭载于半导体装置的MPLD的流程的一例加以说明。
图63为表示对搭载于图61所示的半导体装置的MPLD进行部分重构的流程的一例的图。在步骤S251,运算处理部220向第一MPLD20a或第二MPLD20b的任一方或双方的MPLD写入逻辑电路信息。在此写入的逻辑电路信息一般为使用图42以及图39说明过的位流数据。位流数据可以存储在搭载于半导体装置的存储部,也可以存储在与半导体装置连接的存储装置。在向第一以及第二MPLD的双方写入逻辑电路信息的情况下,在最初的循环中,省略步骤S253。
在步骤S252,运算处理部使在步骤S251中写入了逻辑电路信息的一方的MPLD的逻辑电路信息工作。运算处理部将已写入一方的MPLD的逻辑电路信息的动作结果存储在搭载于半导体装置的存储部等的存储装置。由此,能够将已存储的动作结果用作另一方的MPLD的输入。此外,在2个MPLD的AD对被连接的情况下,即使在动作结束后,一方的MPLD也能够保存动作结果,并通过来自运算处理部的指令,将此动作结果作为输入信号给予另一方的MPLD。在逻辑动作结束时,运算处理部从该MPLD接收表示逻辑动作结束的标志。
在步骤S253,运算处理部向未进行逻辑动作的另一方的MPLD写入逻辑电路信息。在写入结束时,运算处理部从该MPLD接收表示写入结束的标志。如上所述,在最初的循环中,能够在使MPLD进行逻辑动作之前,向双方的MPLD同时写入逻辑电路信息。在该情况下,运算处理部也会在写入结束时接收表示写入结束的标志。
在步骤S254,当运算处理部接收表示一方的MPLD的逻辑动作结束的标志和表示另一方的MPLD的写入结束的标志时,使写入结束的另一方的MPLD的逻辑动作开始。在步骤S254中另一方的MPLD的逻辑动作开始之后,在步骤S255,运算处理部判断是否存在其他要写入的逻辑电路信息。在存在其他要写入的逻辑电路信息的情况下,处理返回到步骤S253。然后,开始向未进行逻辑动作的MPLD写入逻辑电路信息。在不存在其他要写入的逻辑电路信息的情况下,运算处理部在从MPLD接收到表示逻辑动作结束的标志之后,结束处理。
在此说明的动态重构能够使用通过图53说明的MPU指令码和根据经过区域划分之后的RTL-CDFG所生成的多个位流来实现。运算处理部根据运算处理部指令码来执行MPLD的重构、逻辑动作开始指令或未搭载于MPLD的控制电路。此外,能够将作为MPLD的逻辑电路信息的位流数据设为根据经过区域划分之后的RTL-CDFG所生成的位流。由此,在动作描述中所记载的数据处理动作通过作为硬件的搭载于半导体装置的运算处理部和MPLD来实现。因此,与通过作为软件的动作描述使运算处理部工作的情况相比,能够更高速地工作。
〔6.2.2〕动态重构的实施例
在此,基于具体的实施例,对动态重构的优点加以说明。实施例关于作为共用密钥加密方式之一的DES(Data Encryption Standard,数据加密标准)的加密。在此,在概略地对DES的加密计算加以记述之后,对通过本例中的半导体装置进行的DES计算的执行方法加以说明。
〔6.2.2.1〕DES的算法
图64为表示DES的计算算法的流程的一例的图。DES将固定位(例如,64位)长的明码电文作为输入。DES为使用56位长的加密密钥来按每64位的明码电文块进行加密的块密码。加密密钥为64位,但其中的8位用于奇偶校验,因此算法上的实际的密钥的长度为56位。DES的加密密钥为共用密钥加密方式,对加密和解密使用同一密钥。此外,在DES中,为使用F(Feistel)函数之类进行置换和转置的轮函数,并使用F函数重复地进行加密或译码的加密方式。在步骤S261,进行初始转置。初始转置是指执行位间的规定转置。例如,初始转置后的第1位的数据为输入数据的第58位的数据,初始转置后的第2位的数据为输入数据的第50位的数据。这样,通过初始转置,进行64位的各数据的分类排序。
在步骤S262,利用F函数处理初始转置后的低位32位。通过图65所示的流程对F函数的处理加以说明。
图65为表示F函数的算法的流程的图。向F函数输入进行了初始转置处理的数据的低位32位。在步骤S271,对所输入的32位的数据进行扩展置换(expansionpermutation),生成48位的数据。接下来,在步骤S272,在扩展置换之后的48位的数据与48位的循环密钥之间进行异或处理。
在此,对循环密钥加以说明。循环密钥为通过一定的算法对共用密钥进行变换而成的,按1次DES加密中进行16次的每个F函数处理而形成不同的密钥。向循环密钥的变换算法中包含转置处理和循环移位处理。
所谓S盒(substitution box)为将m位的输入变换成n位输出的函数,并为2m的查找表。在步骤S273,对于在步骤S272中进行了与循环密钥之间的异或处理的48位数据,通过由8个S盒进行的变换,进行将6位数据变换为4位数据的处理。结果,在通过S盒进行处理之前,原本48位的数据经S盒的处理变换为32位的数据。
S盒是利用S1~S8的分别具有规定值的真值表构成的。S1为对低位6位的数据进行变换的S盒,S2为对从低位第7位至第12位的数据进行变换的S盒。以下同样地,S7为对从第36位到第42位的数据进行变换的S盒,S8为对从第43位至第48位的数据进行变换的S盒。各S盒对2行×4列的行列分别分配4位的数据。S盒的2位的行由6位输入数据的MSB(最高位,即第6位)的数据和LSB(最低位,即第1位)的数据构成。S盒的4位的列由除了6位输入的MSB和LSB以外的中间的4位(第2位至第5位)数据构成。将6位的输入数据输入具有这样构成的S盒,并输出相应的真值表的4位的值,由此,能够将6位的输入数据变换成4位的输出数据。在表1中示出作为S盒的例子的S1的S盒。
[表1]
表1:S盒(S1)
表1:Sボツクス(S1)
 0000000100100011010001010110011110001001101010111100110111101111091110010011010001001011111011100000111010011010110101100100000111010000111101110100111000101101000110100010110011001001010100111000100100000111101000110101100010101111111100100101110011101001010000111111110010000010010010010001011101011011001111101010000001101101
在S1中,例如,在被赋予了6位输入(100110)的情况下,行由MSB和LSB而成为(10),列根据除了MSB和LSB以外的4位而成为(0011)。因此,4位的输出数据成为(1000)。
在步骤S274,对通过S盒进行的变换是否进行了8次进行判断。在S盒的处理未全部结束的情况下,进行接下来的S盒的处理。此外,在S盒的处理全部结束的情况下,处理进入步骤S275。在步骤S275,将由S1~S8的8个S盒处理过的4位的数据全部排列起来,生成32位的数据。
图64所示的步骤S263中,将通过S盒的处理而生成的32位的数据与高位32位的数据之间进行异或处理。在步骤S264,将64位的输入数据的低位32位的数据作为高位32位的数据。然后,将通过步骤S263生成的32位的数据作为低位32位的数据。
在步骤S265,对包含F函数处理的一系列处理是否已经进行了16次进行判断。在处理未进行16次的情况下,进一步进行从F函数处理开始的一系列处理。此时,循环密钥为按每个处理而不同的密钥。在处理已经进行了16次的情况下,在步骤S266中,64位的数据被逆转置并结束加密处理。
〔6.2.2.2〕本例中的半导体装置的DES计算例
在此,参照图64等,对搭载了2个MPLD和运算处理部的半导体装置的DES算法的计算例加以说明。设构成MPLD的MLUT具有7个AD对。
图64所示的步骤S261的初始转置与步骤S266的逆转置能够使1个MLUT作为存储器电路工作,并存储转置目的地的位。在能够仅使MPLD内部的一部分MLUT作为存储器电路工作的情况下,能够实现该处理。在不能仅使MPLD内部的一部分MLUT作为存储器电路工作的情况下,能够将转置目的地的位存储在外部的存储装置或搭载于半导体装置的存储部。
图64所示的步骤S263以及图64所示的步骤S272中的32位以及48位的异或计算是由MPLD来进行的。因为MPLD适合于多输入他输出的运算。
进行8次步骤S273的S盒处理的处理能够通过对2个MPLD进行动态重构来实现。例如,将1个MLUT作为真值表使用。S盒处理是对6位输入进行4位输出的处理,因此,在使用具有7个AD对的MLUT的情况下,将6个AD对的逻辑控制用地址线作为6位的输入,将4个AD对的逻辑控制用数据线作为4位的输出线,由此,能够实现S盒的真值表。而且,在通过一方的MPLD进行S1的S盒运算处理期间,向另一方的MPLD写入S2的S盒运算信息。此外,在通过另一方的MPLD进行S2的S盒运算处理期间,向一方的MPLD写入S3的S盒运算信息等,并能够一边进行动态重构一边进行S盒的运算处理。由此,与不使用动态重构的情况相比,能够大幅度地减少用于实现同一运算处理的电路规模。
在生成步骤S272中所使用的循环密钥时,也能够对MPLD进行动态重构来使用。如上所述,循环密钥是通过对共用密钥施加转置处理和移位处理来生成的,并使用按每个F函数的动作而不同的循环密钥。因此,通过对2个MPLD进行动态重构的同时进行使用,能够在通过一方的MPLD进行使用循环密钥的运算处理期间,通过另一方的MPLD生成下一个循环中所使用的循环密钥,并进行写入处理
在此,说明了在搭载了2个MPLD和运算处理部的半导体装置中实现的动态重构,而即使是搭载了1个MPLD和运算处理部的半导体装置也能够实现动态重构。
其一,在使用通过图19说明的MLUT构成MPLD的情况下,能够进行动态重构。该类型的MLUT具有通过选择信号所选择的2个存储元件群。在通过一方的存储元件群进行运算处理期间,对另一方的存储元件群的逻辑电路信息进行重构,由此,能够实现动态重构。
此外,通过将物理构成上为1个的MPLD,在逻辑动作上作为2个MPLD来处理,由此,能够进行动态重构。例如,将1个MPLD的一半的区域作为第一MPLD部处理,将剩下的一半的区域作为第二MPLD部处理,由此,能够将物理构成上为1个的MPLD在逻辑动作上作为2个MPLD来处理。
〔7〕适合于动态重构的半导体装置
可编程逻辑器件(PLD)的动态重构是众所周知的。动态重构为在PLD的工作中切换PLD的电路构成的技术。动态重构根据程序在短时间内频繁地对多个小规模电路进行重新连线,由此,能够以小规模电路来实现大规模电路的功能。
PLD为通过ALU(Arithmetic Logical Unit,算术逻辑单元)或LUT(Look up Table,查询表)来实现以硬件的物理连线来执行指令的布线逻辑的电路。能够将通过作为CISC处理器的运算对象的微代码来进行的处理的多个步骤展开为1个组合逻辑电路来实现布线逻辑。在CISC处理器中,需要多个块来执行1个处理,而在布线逻辑中,能够通过1个块来实现并不阻断数据流地进行高速处理,因此,各块的处理能力比CISC处理器高。因此,布线逻辑的电路构成实现多个电路功能,还实现一系列的数据流程,因此称为“数据总线”。
动态可重构PLD,并不是对按功能被固定的专用电路进行切换,而是进行小规模电路的再布局来构成专用电路,多个小规模电路协调进行流水线处理。另外,这里所说的“流水线”意味着连续动作处理。
一般来说,可动态重构的PLD是基于ALU或基于LUT的。ALU为包含加法器、移位器、乘法器等的运算器组,能够通过1个ALU来实现多个功能。通过选择ALU的功能来对基于ALU的可动态重构PLD进行动态重构。LUT为由多个存储单元构成的存储单元装置,因此,对于基于LUT的可动态重构PLD,在进行重构时,需要进行存储单元装置的改写。此外,对于基于LUT的可动态重构PLD,存储单元装置之间的连接中具有专用的切换电路,因此,为了动态重构,还需要对切换电路进行再设定。
包含以下所示的作为可编程逻辑部的MPLD的半导体装置具备:高速缓存部,具有至少2个MPLD,并保持MPLD的构成信息;构成控制部,将保持于高速缓存部的构成信息输出至MPLD。在1个MPLD通过构成分支逻辑的构成信息而被重构的情况下,构成控制部在执行上述分支逻辑之前,利用构成上述分支逻辑的分支目的地电路的上述第二构成信息,对上述多个可编程逻辑部中的第二可编程逻辑部进行预测重构。这样,因为通过对MPLD进行预测重构,则不需要在分支确定后对MPLD进行重构,因此,能够缩短重构时间。
以下,依次对〔7.1〕半导体装置、〔7.2〕MPLD的构成例、〔7.3〕半导体装置的动作流程的详细例加以说明。另外,MPLD以及MLUT可适用在〔1〕以及〔2〕中已分别说明的内容。
〔7.1〕半导体装置
图66为表示半导体装置的一例的框图。
图66所示的半导体装置100具有作为可构成逻辑部的MPLD20A及20B、变量保持部25、构成控制部300、高速缓存部400A及400B。半导体装置100与作为运算处理部的MPU(Micro Processing Unit,微处理单元)220连接,并借助于存储控制器550,与作为存储部的主存储器500连接。半导体装置100也可以是与MPU220及/或存储控制器550以及主存储器500一体化的IC(Integrated Circuit,集成电路)芯片。
〔7.1.1〕MPLD
作为可编程逻辑部的MPLD20A及20B分别具有作为多个存储单元装置的MLUT(Multi Look-Up-Table,多查询表)。MLUT的存储单元装置也可由SRAM(Static Random Access Memory,静态随机存取存储器)构成。MLUT作为逻辑部件或将多个逻辑部件之间连接的连接部件发挥作用。
MPLD20A及20B通过写入构成信息而被重构。构成信息是为了对MPLD20A或20B进行部分重构,而按以多个MLUT为构成单位的每个重构单位生成的。以下,将通过构成信息按每个重构单位被重构的多个MLUT称为“簇(bank)”,将重构单位称为“簇单位”。当MPLD20A及20B从外部接收到数据信号时,通过由构成信息重构的电路来进行运算,并将作为运算结果的数据信号输出至外部。另外,构成信息由以各种运算器的真值表构成的运算器数据、以及多个状态、作为状态变化的契机的事件、表示由此产生的状态的迁移的控制数据构成。
运算器数据为分别与反相器、AND运算、OR运算等的运算名称相对应的多个真值表数据。
控制数据为随着状态的状态迁移而规定了运算器的种类、被分配运算器的多个MLUT间的数据总线的真值表数据。控制数据中包含:状态识别信息、运算器、运算器的布局布线信息、构成状态机(使用图67随后记述)的真值表数据、写入运算器的真值表数据的MLUT的识别信息、运算器资源的布局布线信息。
〔7.1.2〕构成控制部
构成控制部300从高速缓存部400A读出构成信息(运算器数据和控制数据),并写入MPLD20A或20B。此外,在高速缓存部400A中不存在作为写入对象的构成信息(在此为控制数据)的情况下,向存储控制器提供存储器访问指令,读出存储于主存储器500的构成信息(控制数据)。
在通过MPLD20A及20B的任一方被重构的电路进行运算动作时,未进行运算动作的MPLD通过构成控制部300被重构。另外,对于将哪个运算器数据以及控制数据写入MPLD,则是通过后述的调度信息来进行调度的。因此,构成控制部300通过参照调度信息来将调度后的簇单位的构成信息写入MPLD。
如上所述,构成控制部300通过构成信息来重构MPLD20A或20B,并根据调度信息来适当地切换执行运算动作的MPLD和要重构的MPLD,使连续的运算动作成为可能。
〔7.1.3〕高速缓存部
如图66所示,高速缓存部400A以及400B分别由不同的高速缓冲存储器构成。高速缓存部400A以及400B为分别能够独立地进行数据的读出或写入的高速缓冲存储器,例如,为SRAM。因此,虽未在图66中示出,但高速缓存部400A以及400B分别具备:保持数据的存储单元阵列、用于从存储单元阵列读出数据或写入数据的行地址译码器、列地址译码器以及放大器等的周边电路。
高速缓存部400A保持构成信息中的运算器数据,高速缓存部400B保持构成信息中的控制数据。在半导体装置100的初始动作时,运算器数据从主存储器500被读出并被写入高速缓存部400A。在MPLD30A或30B的重构时,运算器数据不是从主存储器500被读出,而是从高速缓存部400A被读出。主存储器500由DRAM(DynamicRandom Access Memory,动态随机存取存储器)构成,因此,数据的读出速度慢。此外,控制数据确定与数据的迁移相关的MLUT的输出存储单元,与此相对,运算器数据构成写入MLUT的真值表数据的大部分,因此比控制数据的数据量大。因此,在MPLD20A或20B的重构时,能够不访问主存储器地从高速缓存部400A读出比控制数据910数据量大的运算器数据,因此,通过将运算器数据保持于高速缓存部400A,能够缩短MPLD20A或20B的重构时间。
此外,与MPLD20A或20B的重构配合地,将运算器数据和控制数据作为不同的数据而不是相同数据分别保存于高速缓存部400A以及400B,因此,不需要将控制数据向高速缓存部写入的数据写入及从主存储器500写入运算器数据的动作,能够缩短MPLD30A或30B的重构时间。
而且,在半导体装置100的初始动作时,高速缓存部400A被写入运算器数据905,其后进行读出动作。因此,无需同时执行写入和读出,能够将构成保持运算器数据905的高速缓存部400A的存储器设为单端口而不是双端口的SRAM。
〔7.1.4〕构成信息的详细内容
如上所述,高速缓存部400A以及400B分别为由运算器数据和控制数据构成的不同的高速缓冲存储器。以下,对运算器数据和控制数据的详细例子加以说明。
运算器数据具有以下的数据构造。
A.运算器数据的数据构造
标题部
运算器ID
运算器LUT数
数据部
运算器MLUT信息(压缩数据)
如上所述,运算器数据的标题部是由识别运算器的“运算器ID”和作为安装运算器所需的MLUT的数量的“运算器MLUT数”来定义的。此外,数据部中,运算器所需的运算器MLUT信息是以压缩数据方式来定义的。
控制数据具有以下的数据构造。
B.控制数据的数据构造
簇号:
运算器配置信息
运算器ID
行数信息
第1行的row、col
第2行的row、col

控制电路信息
标题部
控制电路LUT数
控制电路开始的row、col
数据部
控制电路MLUT信息(压缩数据)
如上所述,控制数据具有识别作为要重构的MLUT的“簇”的“簇号”、配置于此簇的运算器ID、用于将运算器配置于“簇”的各运算器ID的行数信息。而且,控制数据将构成控制电路的MLUT数和“簇”中使控制电路开始的矩阵规定为“控制电路开始的row、col”。此外,控制电路所需的MLUT信息通过压缩数据来定义。
构成控制部300参照包含于控制数据内的运算器ID,读出对应的运算器数据,向控制数据的“行数信息”的行数写入对应的运算器数据的运算器MLUT信息。此外,构成控制部300参照包含于控制数据内的控制电路信息,向“控制电路开始的row、col”写入控制电路MLUT信息。这样,构成控制部300按每个簇写入“运算器MLUT信息”以及“控制电路MLUT信息”,并对MPLD20A或20B进行重构。
〔7.1.5〕主存储器
主存储器500中保存作为构成信息的运算器数据905、以及控制数据910-1~910-N(N为自然数)、档案信息970、静态调度信息975、程序980以及编译程序990。主存储器500为DRAM。存储控制器550进行主存储器500的数据的读出、写出及DRAM的更新等。
图67为表示主存储器的存储器映射的一例的图。
程序980为用于使MPLD20A及20B或MPU220执行规定的处理的程序,为编码成C语言等程序语言的程序。MPU220执行编译程序990,由此,程序980划分出MPLD20A及20B的大小的电路数据,由所划分的多个电路数据分别生成运算器数据905以及控制数据910-1~910-N。
〔1.6〕档案信息
档案信息970-1~970-N(N为自然数)为对运算器间的依存、依存数据更新、数据流、数据的寿命等的档案(或履历)进行了分析的数据,通过编译处理,按每个“簇”判断并生成“预测执行的优先”顺序。
档案信息对从主存储器500到高速缓存部400A以及400B的构成信息的加载和高速缓存部400A及400B与MPLD20A及20B之间的加载进行调度,并以并列执行这些加载的方式进行调度。
例如,档案信息以通过控制数据910-1重构MPLD20A,接着通过控制数据910-2重构MPLD20B的方式规定控制数据间的重构顺序。此外,在控制数据910规定了分支电路的情况下,档案信息通过分支电路的实施来对应该实施哪个控制数据进行调度。
档案信息970-1~970-N是由构成控制部300(更详细而言,是指后述的调度)使用的。档案信息的数据构造如下。
C.档案信息的数据构造
标题部
类型:静态或动态
个数:动态分支数、类型为静态的情况下设为0
数据部
值:调度程序进行校验(经编码后的值)
优先:预测执行的优先
簇号:执行簇号
在标题部的“类型”为“静态”的情况下,档案信息也被称为静态调度信息975。静态调度信息975为通过系统复位时的档案信息和动作合成生成的信息。系统重启时,当构成控制部(调度程序)300读入作为静态调度信息的档案信息时,通过构成控制部300来保持该信息,并进行MPLD的预测重构。
标题部的“动态分支数”表示进行了动态分支时的分支对象的“簇”的个数。数据部的“值”为条件分支的值。数据部的“优先”意味着优先进行预测执行。簇号为与档案信息对应的簇的号码。构成控制部(调度程序)300的构成为利用图69加以后述的MPLD的一部分的状态机判断由构成控制部(调度程序)300预测的条件分支的“值”与通过MPLD实际执行的条件分支的“值”是否一致。状态机将判断结果输出至构成控制部(调度程序)300,由此,构成控制部(调度程序)300能够对预测执行的分支失败加以校验。
当构成控制部(调度程序)300预测加载下一个区域时,如果读入的档案信息的“类型”为“静态”,则校验数据部的值,并加载该簇。如果读入的档案信息的“类型”为动态,则加载数据部的“优先”级高的“簇”。在预测加载的“簇”为重构中的簇的情况下,利用数据部的“优先”值来校验此簇是否为生成动态分支的簇,并判断该簇是否妥当或者是否需要加载别的簇,并从主存储器500或高速缓存部400A及400B加载妥当的簇并执行。这样,构成控制部(调度程序)300利用档案信息的“优先”,以对MPLD进行预测性重构的方式工作。
变量保持部25为保持跨于MPLD20A以及20B之间的寿命长的变量的存储部。变量保持部25保持寿命长的变量(例如,全程变量等),由此,MPLD20A以及20B无需对保持变量的MLUT进行重构,因此,能够有效地活用MLUT。
图68为构成控制部的详细框图。构成控制部300具有由高速缓存控制310、系统复位320、压缩数据的解压缩330、调度程序340表示的功能。这些功能是通过构成控制部300内部的电路或构成控制部300执行程序来实现的。以下,对各功能加以说明。
高速缓存控制310的功能是通过构成控制部300进行与高速缓存部400A以及400B、主存储器500、MPLD20A以及20B之间的数据的输入输出。
系统复位320的功能是当构成控制部300从外部接收到系统复位(SR)信号时,向高速缓存控制310发出执行初始动作的指示。初始动作是指读出来自主存储器500的运算器数据905以及控制数据910、向MPLD20A以及20B的写入、根据静态调度信息975进行的运算器数据905以及控制数据910的读出。
运算器数据905以及控制数据910的MLUT信息被压缩于高速缓存部400A以及400B,因此,压缩数据的解压缩330的功能是对已压缩的运算器数据905以及控制数据910的MLUT信息进行解压缩,并输出至MPLD20A或20B。
运算器数据905以及控制数据910的MLUT信息能够以通过编译程序990压缩的形式存储于主存储器500。这是为了削减主存储器500与高速缓存部400A以及400B之间的数据量,以及在高速缓存部400A以及400B中保持运算器数据905以及控制数据910的存储区域。
与ALM矩阵型的PLD相比,MPLD20A以及20B中要重构的数据量多。在通过DRAM构成了主存储器500的情况下,主存储器500与高速缓存部400A以及400B之间的数据传送速度可能成为重构时间的制约。因此,通过将作为构成信息的运算器数据905以及控制数据910的MLUT信息压缩并存储于主存储器,并发送至高速缓存部400A以及400B,能够缩短MPLD重构时间。此外,MPLD20A以及20B的构成信息的大部分为运算器数据905。通过将运算器数据905保持于高速缓存部400A能够缩短MPLD的重构时间的情况已经记述过了,而通过将运算器数据905压缩并保持于高速缓存部400A,能够利用与主存储器500相比存储容量小的高速缓存部400A保持运算器数据905。
此外,以往,在处理器的技术领域中,数据压缩并未被用于指令的压缩。MLUT信息可以全部通过真值表数据来构成,因此,当将程序上的指令变换为运算器数据时,能够进行数据压缩。
各种技术均可适用于压缩以及解压缩。作为可适用的压缩以及解压缩技术,例如为LZSS。
调度程序340依次读出档案信息,判断对MPLD进行重构的簇的优先顺序,并判断写入MPLD的构成信息的顺序。调度程序340根据由档案信息所规定的优先顺序,从主存储器500读出构成信息(控制数据),或者,从高速缓存部400A以及400B读出构成信息(运算器数据以及控制数据),对MPLD进行重构。在根据档案信息对MPLD进行重构后的结果是从状态机接收到预测执行的失败输出的情况下,调度程序340从高速缓存部400A以及400B或主存储器500读出作为正确的分支目的地的控制数据。另外,即使像这样预测执行失败了的情况下,读出的控制数据的真值表数据也已被压缩,或运算器数据被保持于高速缓存部400A,因此,能够缩短读出分支目的地的控制数据的时间,所以能够缩短由预测执行失败时的重构时间所产生的延迟。
另外,状态机是在MPLD上通过构成信息实现的。状态机具有至少2个功能。一个是作为MPU220的总线等的总线控制或未在图68中示出的从通信部发送的通信包处理等的控制电路工作的状态机。另一个是使控制运算顺序的数据流的序号的控制电路工作的状态机。另外,状态机是通过静态调度信息975在系统重启时构成于MPLD的。
〔7.2〕MPLD的构成例
图69为表示由MPLD构成的数据总线块以及状态机的一例的图。数据总线块902表示运算器数据905所示的运算器通过分配给MPLD20A或20B内的MLUT而实现的电路块和其数据总线。状态对可构成于各MPLD的簇单位的电路构成进行识别。状态是在MPU220执行了编译程序990时,与MPLD20A以及20B的粒度相对应地生成的。各状态通过静态调度信息975被赋予顺序。例如,状态1~4分别确定MPLD20A的簇单位的存储区域。此外,也可以以状态1构成MPLD20A、状态2构成MPLD20B、状态3构成MPLD20A、状态4构成MPLD20B的方式,按时间序列确定多个MPLD。通过这样从状态1到状态4地反复进行MPLD的重构,能够以小规模的MPLD处理级数多的流水线。
状态机915对状态的启动开始和状态的状况进行管理。状态机915通过将数据总线驱动信号输出至数据总线块来启动状态,并通过接收状况信号来对状态进行管理。
S0状态通过来自外部的执行触发器的监视和在本处理最后返回到本状态来设定下一个要执行的控制数据。由此,调度程序940能够校验预测执行的分支失败。
〔7.3〕半导体装置的动作处理流程
接下来,对半导体装置的动作处理流程加以说明。
图70为表示关于半导体装置的预测执行的处理流程的一例的图。首先,构成控制部300判断是否已接收到系统复位信号(S1001)。在已接收到系统复位信号的情况下(S1001为“是”),从主存储器500读出运算器数据905以及控制数据910,并分别写入高速缓存部400A以及400B(S1002)。构成控制部300读出保持于高速缓存部400A以及400B的运算器数据905以及控制数据910,并对运算器数据905以及控制数据910进行解压缩(S1003)。构成控制部300通过已解压缩的运算器数据905以及控制数据910对MPLD20A以及20B分别进行重构(S1004)。MPLD20A或20B根据状态机的数据总线驱动信号开始运算(S1005)。构成控制部300根据静态调度信息975重复S1003~S1005的处理,并判断预测执行是否已经失败(S1006)。由状态机来通知预测执行的失败。在预测执行已失败的情况下(S1007为“错误”),通过包含分支目的地电路的运算器数据905以及控制数据910对已通知预测执行失败的状态机工作的MPLD进行重构(S1008)。
在预测执行已成功的情况下(S1007为“否”),使通过预测执行重构的MPLD的运算开始(S1009)。
图71为关于半导体装置的高速缓存控制的处理流程。构成控制部300根据静态调度信息975来判断高速缓存部400B中是否存在控制数据910(S1101)。如果由静态调度信息975确定的控制数据910保持于高速缓存部400B(S1101为“是”),则进行S1002~S1008的处理(S1102)。在由静态调度信息975确定的控制数据910未保持于高速缓存部400B的情况下(S1101为“否”),构成控制部300从主存储器500读出控制数据910(S1103),并利用所读出的控制数据910对MPLD进行重构(S1104)。
符号说明
9    地址译码器
12   MLUT译码器
13   D触发器
15   输入输出电路部
20   MPLD
22    多路复用器
24    A/D转换器
25    变量保持部
26    存储部
28    MOSFET驱动器
30    MLUT
40    存储元件
100   半导体装置
150   输入输出部
210   信息处理装置
211、220   运算处理部
300   构成控制部
310   高速缓存控制
320   系统复位
330   压缩数据的解压缩
340   调度程序
400A  高速缓存部
400B  高速缓存部
500   主存储器
550   存储控制器
902   数据总线块
905   运算器数据
910   控制数据
915   状态机
940   调度程序
970   档案信息
975   静态调度信息
980   程序
990   编译程序

半导体装置.pdf_第1页
第1页 / 共99页
半导体装置.pdf_第2页
第2页 / 共99页
半导体装置.pdf_第3页
第3页 / 共99页
点击查看更多>>
资源描述

《半导体装置.pdf》由会员分享,可在线阅读,更多相关《半导体装置.pdf(99页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 102948077 A (43)申请公布日 2013.02.27 C N 1 0 2 9 4 8 0 7 7 A *CN102948077A* (21)申请号 201180028965.6 (22)申请日 2011.06.13 2010-144237 2010.06.24 JP 2010-144238 2010.06.24 JP 2010-144240 2010.06.24 JP 2011-012427 2011.01.24 JP H03K 19/173(2006.01) (71)申请人太阳诱电株式会社 地址日本东京都 (72)发明人石黑隆 佐藤正幸 弘中哲夫 稻木雅。

2、人 岛崎等 (74)专利代理机构北京三友知识产权代理有限 公司 11127 代理人李辉 马建军 (54) 发明名称 半导体装置 (57) 摘要 本发明的课题是试图减少构成所希望的逻辑 电路的存储元件块的总量。本发明提供一种半导 体装置,包括:N(N为2以上的整数)根地址线、N 根数据线和多个存储部,各存储部具有地址译码 器和多个存储元件,该地址译码器对从上述N根 地址线输入的地址进行译码并向字线输出字选择 信号,该多个存储元件连接于上述字线与数据线, 分别存储构成真值表的数据,并根据从上述字线 输入的上述字选择信号,与上述数据线进行上述 数据的输入输出,上述存储部的N根地址线分别 连接于上述存。

3、储部的其他N个存储部的数据线, 并且上述存储部的N根数据线分别连接于上述存 储部的其他N个存储部的地址线。 (30)优先权数据 (85)PCT申请进入国家阶段日 2012.12.12 (86)PCT申请的申请数据 PCT/JP2011/063461 2011.06.13 (87)PCT申请的公布数据 WO2011/162116 JA 2011.12.29 (51)Int.Cl. 权利要求书5页 说明书48页 附图45页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书 5 页 说明书 48 页 附图 45 页 1/5页 2 1.一种半导体装置,其特征在于,包括: N(N为。

4、2以上的整数)根地址线、N根数据线和多个存储部, 各存储部具有地址译码器和多个存储元件, 该地址译码器对从所述N根地址线输入的地址进行译码并向字线输出字选择信号, 该多个存储元件与所述字线和数据线连接,分别存储构成真值表的数据,并根据从所 述字线输入的所述字选择信号,向所述数据线输出所述数据或从所述数据线输入所述数 据, 所述存储部的N根地址线分别与所述存储部的其他N个存储部的数据线连接,并且所 述存储部的N根数据线分别与所述存储部的其他N个存储部的地址线连接。 2.根据权利要求1所述的半导体装置,其中, 所述N根地址线和所述N根数据线分别通过1根地址线和1根数据线形成一对。 3.根据权利要求。

5、1或2所述的半导体装置,其中, 还具有对所述多个存储部进行选择的存储部译码器。 4.根据权利要求13的任一项所述的半导体装置,其中, 具有顺序电路, 所述多个存储部将所述N根数据线中的至少1根数据线与所述顺序电路的信号输入线 连接,并将所述N根地址线中的至少1根地址线与所述顺序电路的信号输出线连接。 5.根据权利要求14的任一项所述的半导体装置,其中, 所述N为68的整数。 6.根据权利要求15的任一项所述的半导体装置,其中, 所述多个存储部将所述N根数据线中的6根数据线分别与相邻的其他6个存储部的1 根数据线连接,并将所述N根地址线中的6根地址线分别与所述相邻的其他6个存储部的 1根数据线连。

6、接。 7.根据权利要求16的任一项所述的半导体装置,其中, 所述地址译码器分为行译码器和列译码器, 所述行译码器对从M(M为5以下的整数,L为N5的整数)根地址线输入的地址进 行译码,并向所述字线输出字选择信号, 所述列译码器对从L根地址线输入的地址进行译码,并输出对从所述多个存储元件输 出的N根数据线进行选择的数据选择信号。 8.根据权利要求17的任一项所述的半导体装置,其中, 与所述多个存储部中的至少1个存储部相邻的其他N个存储部中的2个存储部自所述 至少1个存储部,沿着第一方向隔开第一距离而配置, 所述相邻的其他N个存储部中的2个存储部自所述至少1个存储部,沿着与所述第一 方向交差的第二。

7、方向隔开第二距离而配置, 所述相邻的其他N个存储部中的2个存储部自所述至少1个存储部,沿着与所述第一 方向和所述第二方向交差的第三方向隔开第三距离而配置, 所述第一第三距离以第一距离、第二距离、第三距离的顺序变长。 9.根据权利要求18的任一项所述的半导体装置,其中, 所述第一方向与所述第二方向彼此正交。 权 利 要 求 书CN 102948077 A 2/5页 3 10.根据权利要求19的任一项所述的半导体装置,其中, 所述多个存储部的至少1个存储部将1根地址线与相邻的其他存储部以外的存储部的 数据线连接。 11.根据权利要求610的任一项所述的半导体装置,其中, 所述多个存储部的任一个自所。

8、述多个存储部中的至少1个存储部,沿着所述第一第 三方向的任一方向配置, 所述多个存储部的至少1个存储部将1根地址线连接到配置于所述第一第三距离的 任一个的5倍的位置上的存储部的数据线。 12.根据权利要求111的任一项所述的半导体装置,其中, 所述多个存储部被作为可重构的逻辑部件以及或连接部件来使用。 13.根据权利要求112的任一项所述的半导体装置,其中, 还具有与存储构成所述真值表的数据的存储装置连接的输入输出部。 14.根据权利要求13所述的半导体装置,其中, 还具有存储构成所述真值表的数据的存储装置。 15.根据权利要求114的任一项所述的半导体装置,其中, 物理布线层数为4层以下。 。

9、16.一种半导体装置,其特征在于,包括: 分别具有多个存储部的第一以及第二逻辑部,各存储部具有地址译码器和多个存储元 件,该地址译码器对从第一地址线输入的存储动作用地址或从第二地址线输入的逻辑动作 用地址进行译码,并向字线输出字选择信号,该多个存储元件与所述字线和数据线连接, 分别存储构成对逻辑动作或连接关系进行规定的真值表的数据,并根据从所述字线输入的 所述字选择信号与输入输出所述数据的数据线连接;和 运算处理部,该运算处理部具有:与所述第一逻辑部所具有的存储部的第一地址线及 数据线连接的第一输入输出部;与所述第二逻辑部所具有的存储部的第二地址线及数据线 连接的第二输入输出部;以及对所述第一。

10、输入输出部进行输出存储动作用地址以及数据的 控制,并对所述第二输入输出部进行输出逻辑动作用地址且接收数据的控制的控制部。 17.根据权利要求16所述的半导体装置,其中, 包含于第一逻辑部或第二逻辑部的所述存储部的逻辑动作用地址线分别与所述存储 部的其他存储部的数据线连接,并且所述存储部的数据线分别与所述存储部的其他存储部 的逻辑动作用地址线连接。 18.根据权利要求16或17所述的半导体装置,其中, 包含于所述第一逻辑部以及所述第二逻辑部的所述多个存储部是可重构的。 19.根据权利要求1618的任一项所述的半导体装置,其中, 所述第一逻辑部以及所述第二逻辑部分别具有对所述多个存储部进行选择的存。

11、储部 译码器。 20.根据权利要求1619的任一项所述的半导体装置,其中, 还具有与存储构成所述真值表的数据的存储装置连接的输入输出部。 21.根据权利要求1620的任一项所述的半导体装置,其中, 还具有存储构成所述真值表的数据的存储装置。 权 利 要 求 书CN 102948077 A 3/5页 4 22.根据权利要求1621的任一项所述的半导体装置,其中, 物理布线层数为4层以下。 23.根据权利要求1622的任一项所述的半导体装置,其中, 所述第一逻辑部所具有的所述存储部的数量与所述第二逻辑部所具有的所述存储部 的数量是相同的。 24.根据权利要求1623的任一项所述的半导体装置,其中,。

12、 所述地址译码器分为行译码器和列译码器, 所述行译码器对从M(M为5以下的整数,L为N5的整数)根地址线输入的地址进 行译码,并向所述字线输出字选择信号, 所述列译码器对从L根地址线输入的地址进行译码,并输出对从所述多个存储元件输 出的N根数据线进行选择的数据选择信号。 25.一种使用了运算处理部的半导体装置的控制方法,其特征在于,包括: 所述运算处理部向第一逻辑部输出对逻辑动作或连接关系进行规定的真值表数据的 步骤,其中所述第一逻辑部具有多个存储部,各存储部具有多个存储元件; 将所述对逻辑动作或连接关系进行规定的真值表数据存储于所述第一逻辑部的存储 部的步骤; 所述运算处理部向第二逻辑部输出。

13、逻辑动作用地址的步骤,其中所述第一逻辑部具有 多个存储部,各存储部具有多个存储元件; 所述第二逻辑部的存储部从由所述逻辑动作用地址确定的存储元件输出数据的步骤; 所述运算处理装置从所述第二逻辑部接收数据的步骤。 26.根据权利要求25所述的控制方法,其中, 所述运算处理装置包含于所述半导体装置。 27.一种半导体装置,其特征在于,包括: 对数据进行运算处理的运算处理部;和 作为具有多个存储部以及输入输出部的逻辑部的运算处理部,各存储部具有地址译码 器和多个存储元件,该地址译码器对从地址线输入的地址进行译码,并向所述字线输出字 选择信号,该多个存储元件与数据线和字线连接,分别存储构成对逻辑动作或。

14、连接关系进 行规定的真值表的数据,并根据从所述字线输入的所述字选择信号与输入输出所述数据的 数据线连接; 所述输入输出部将所述运算处理部的至少1个输出信号线和所述地址线的至少1个进 行连接,并将所述运算处理部的至少1个输入信号线和所述数据线的至少1个进行连接。 28.根据权利要求27所述的半导体装置,其中, 所述存储部的地址线分别与所述存储部的其他存储部的数据线连接,并且所述存储部 的数据线分别与所述存储部的其他存储部的地址线连接。 29.根据权利要求26或27所述的半导体装置,其中, 所述多个存储部是可重构的。 30.根据权利要求2629的任一项所述的半导体装置,其中, 所述逻辑部还具有对所。

15、述多个存储部进行选择的存储部译码器。 31.根据权利要求2630的任一项所述的半导体装置,其中, 权 利 要 求 书CN 102948077 A 4/5页 5 还具有与存储构成所述真值表的数据的存储装置连接的输入输出部。 32.根据权利要求2631的任一项所述的半导体装置,其中, 还具有存储构成所述真值表的数据的存储装置。 33.根据权利要求2632的任一项所述的半导体装置,其中, 物理布线层数为4层以下。 34.根据权利要求2633的任一项所述的半导体装置,其中, 所述地址译码器分为行译码器和列译码器, 所述行译码器对从M(M为5以下的整数,L为N5的整数)根地址线输入的地址进 行译码,并向。

16、所述字线输出字选择信号, 所述列译码器对从L根地址线输入的地址进行译码,并输出对从所述多个存储元件输 出的N根数据线进行选择的数据选择信号。 35.一种使用了运算处理部的半导体装置的控制方法,其特征在于,包括: 所述运算处理部向包含于所述运算处理部的逻辑部输出地址的步骤,其中,所述逻辑 部具有多个存储元件,各存储元件分别存储构成对逻辑动作或连接关系进行规定的真值表 的数据; 所述逻辑部从与所述运算处理部的至少1个输出信号线连接的至少1个地址线接收所 述地址的步骤; 所述逻辑部从由所述地址确定的存储元件输出数据的步骤; 所述逻辑部借助于与所述运算处理部的至少1个输入信号线连接的至少1个数据线, 。

17、向所述运算处理部输出所述数据的步骤。 36.根据权利要求35所述的控制方法,其中, 所述逻辑部从与所述逻辑部内的存储部相连的至少1个数据线向所述运算处理部的 至少1个输入信号线输出所述读出的数据。 37.根据权利要求35或36所述的控制方法,其中, 所述运算处理装置包含于所述半导体装置。 38.一种半导体装置,其特征在于,包括: 多个可编程逻辑部,该多个可编程逻辑部分别具有多个存储单元装置,且当向所述存 储单元装置写入真值表数据时,该多个可编程逻辑部作为逻辑部件或连接部件工作; 高速缓存部,该高速缓存部分别保持作为多个所述真值表数据的多个构成信息; 构成控制部,在所述多个可编程逻辑部中的第一可。

18、编程逻辑部通过构成分支逻辑的第 一构成信息而被重构的情况下,该构成控制部通过构成所述分支逻辑的分支目的地电路的 所述第二构成信息对所述多个可编程逻辑部中的第二可编程逻辑部进行重构。 39.根据权利要求38所述的半导体装置,其中, 所述高速缓存部将表示运算器的真值表数据亦即运算器数据和表示状态迁移的真值 表数据亦即控制数据分开保持, 所述构成控制部从所述高速缓存部分别读入所述控制数据和包含通过所述控制数据 的状态迁移表示的运算器的所述运算器数据,并对所述可编程逻辑部进行重构。 40.根据权利要求38或39所述的半导体装置,其特征在于, 还具有包含所述高速缓存部所保持的控制数据的存储部, 权 利 。

19、要 求 书CN 102948077 A 5/5页 6 所述构成控制部接着所述高速缓存部所保持的控制数据,从所述存储部读出用于重构 所述可编程逻辑部的控制数据,并将该控制数据存储至所述高速缓存部。 41.根据权利要求3840的任一项所述的半导体装置,其特征在于, 存储于所述存储部的所述控制数据的真值表数据被压缩, 所述高速缓存部保持已压缩的真值表数据, 所述构成控制部对所述已压缩的真值表数据进行解压缩,利用该解压缩后的真值表数 据来重构所述可编程逻辑部。 42.根据权利要求14的任一项所述的半导体装置,其中, 在所述多个可编程逻辑部中的第一可编程逻辑部通过构成分支逻辑的第三构成信息 被重构,根据。

20、利用已预测为所述第三构成信息的分支逻辑的分支目的地电路的第四构成信 息所构成的第二可编程逻辑部的运算结果,所述第四构成信息未构成所述第三构成信息的 分支逻辑的分支目的地电路的情况下,所述构成控制部利用包含所述分支逻辑的分支目的 地的第五构成信息来重构所述第二可编程逻辑部以外的可编程逻辑部。 权 利 要 求 书CN 102948077 A 1/48页 7 半导体装置 技术领域 0001 本发明涉及半导体装置。 背景技术 0002 PLD(Programmable Logic Device,可编程逻辑器件)广为人知。PLD为可对所构 成的逻辑电路进行变更的半导体装置,并具有多个逻辑部件以及多个连接。

21、部件。 0003 逻辑部件作为组合电路或顺序电路工作。逻辑部件例如为由构成真值表的多个存 储元件构成的存储元件块。多个存储元件例如为SRAM(Static Random AccessMemory,静 态随机存取存储器)。 0004 连接部件对逻辑部件间的连接进行切换。连接部件例如为晶体管开关元件。因此, PLD例如对SRAM进行改写,并通过开关元件的导通截止对所构成的逻辑电路进行改写。 0005 使存储元件块作为连接部件工作的半导体装置已被公开。 0006 现有技术文献 0007 专利文献 0008 专利文献1:日本特开2003224468号公报 0009 专利文献2:日本特开20031493。

22、00号公报 0010 专利文献3:国际公开第07060763号小册子 0011 专利文献4:国际公开第09001426号小册子 0012 专利文献5:国际公开第07060738号小册子 0013 专利文献6:日本特开2009194676号公报 发明内容 0014 发明要解决的课题 0015 在使存储元件块作为连接部件工作的半导体装置中,通过提高作为逻辑部件工作 的存储元件的比率,能够减少构成所希望的逻辑电路的存储元件块的总量。 0016 用于解决课题的手段 0017 一方面,本发明的目的在于减少构成所希望的逻辑电路的存储元件块的总量。 0018 用于解决上述课题的实施方式如下述的第一组的(1)。

23、(15)中所述。 0019 (1)一种半导体装置,其特征在于,包括:N(N为2以上的整数)根地址线、N根数 据线和多个存储部, 0020 各存储部具有地址译码器和多个存储元件, 0021 该地址译码器对从上述N根地址线输入的地址进行译码并向字线输出字选择信 号, 0022 该多个存储元件与上述字线和数据线连接,分别存储构成真值表的数据,并根据 从上述字线输入的上述字选择信号,向上述数据线输出上述数据或从上述数据线输入上述 数据, 说 明 书CN 102948077 A 2/48页 8 0023 上述存储部的N根地址线分别与上述存储部的其他N个存储部的数据线连接,并 且上述存储部的N根数据线分别。

24、与上述存储部的其他N个存储部的地址线连接。 0024 (2)根据(1)中所述的半导体装置,其中,上述N根地址线和上述N根数据线分别 通过1根地址线和1根数据线形成一对。 0025 (3)根据(1)或(2)中所述的半导体装置,其中,还具有对上述多个存储部进行选 择的存储部译码器。 0026 (4)根据(1)(3)的任一项所述的半导体装置,其中,具有顺序电路,上述多个存 储部将上述N根数据线中的至少1根数据线与上述顺序电路的信号输入线连接,并将上述 N根地址线中的至少1根地址线与上述顺序电路的信号输出线连接。 0027 (5)根据(1)(4)的任一项所述的半导体装置,其中,上述N为68的整数。 0。

25、028 (6)根据(1)(5)的任一项所述的半导体装置,其中, 0029 上述多个存储部将上述N根数据线中的6根数据线分别与相邻的其他6个存储部 的1根数据线连接,并将上述N根地址线中的6根地址线分别与上述相邻的其他6个存储 部的1根数据线连接。 0030 (7)根据权利要求(1)(6)的任一项所述的半导体装置,其中, 0031 上述地址译码器分为行译码器和列译码器, 0032 上述行译码器对从M(M为5以下的整数,L为N5的整数)根地址线输入的地 址进行译码,并向上述字线输出字选择信号, 0033 上述列译码器对从L根地址线输入的地址进行译码,并输出对从上述多个存储元 件输出的N根数据线进行。

26、选择的数据选择信号。 0034 (8)根据(1)(7)的任一项所述的半导体装置,其中, 0035 与上述多个存储部中的至少1个存储部相邻的其他N个存储部中的2个存储部自 上述至少1个存储部沿着第一方向隔开第一距离而配置, 0036 上述相邻的其他N个存储部中的2个存储部自上述至少1个存储部,沿着与上述 第一方向交差的第二方向隔开第二距离而配置, 0037 上述相邻的其他N个存储部中的2个存储部自上述至少1个存储部,沿着与上述 第一方向和上述第二方向交差的第三方向隔开第三距离而配置, 0038 上述第一第三距离以第一距离、第二距离、第三距离的顺序变长。 0039 (9)根据(1)(8)的任一项所。

27、述的半导体装置,其中, 0040 上述第一方向与上述第二方向彼此正交。 0041 (10)根据(1)(9)的任一项所述的半导体装置,其中, 0042 上述多个存储部的至少1个存储部将1根地址线与相邻的其他存储部以外的存储 部的数据线连接。 0043 (11)根据(6)(10)的任一项所述的半导体装置,其中, 0044 上述多个存储部的任一个自上述多个存储部中的至少1个存储部,沿着上述第 一第三方向的任一方向配置, 0045 上述多个存储部的至少1个存储部将1根地址线连接到配置于上述第一第三距 离的任一个的5倍的位置上的存储部的数据线。 0046 (12)根据(1)(11)的任一项所述的半导体装。

28、置,其中, 说 明 书CN 102948077 A 3/48页 9 0047 上述多个存储部被作为可重构的逻辑部件以及或连接部件来使用。 0048 (13)根据(1)(12)的任一项所述的半导体装置,其中, 0049 还具有与存储构成上述真值表的数据的存储装置连接的输入输出部。 0050 (14)根据(13)所述的半导体装置,其中, 0051 还具有存储构成上述真值表的数据的存储装置。 0052 (15)根据(1)(14)的任一项所述的半导体装置,其中, 0053 物理布线层数为4层以下。 0054 此外,使存储元件块作为连接部件工作的半导体装置可与其他装置进行数据的输 入输出。但是,当与其他。

29、装置之间的数据输入输出方式未定时,上述半导体装置不能与其他 装置进行数据的输入输出。 0055 在另一侧面,本发明的目的在于进行半导体装置与运算处理装置之间的数据输入 输出。 0056 用于解决上述课题的实施方式如下述的第二组的(1)(11)中所述。 0057 (1)一种半导体装置,其特征在于,包括: 0058 分别具有多个存储部的第一以及第二逻辑部,各存储部具有地址译码器和多个存 储元件,该地址译码器对从第一地址线输入的存储动作用地址或从第二地址线输入的逻辑 动作用地址进行译码,并向字线输出字选择信号,该多个存储元件与上述字线和数据线连 接,分别存储构成对逻辑动作或连接关系进行规定的真值表的。

30、数据,并根据从上述字线输 入的上述字选择信号与输入输出上述数据的数据线连接;和 0059 运算处理部,该运算处理部具有:与上述第一逻辑部所具有的存储部的第一地址 线及数据线连接的第一输入输出部;与上述第二逻辑部所具有的存储部的第二地址线及数 据线连接的第二输入输出部;以及对上述第一输入输出部进行输出存储动作用地址以及 数据的控制,并对上述第二输入输出部进行输出逻辑动作用地址且接收数据的控制的控制 部。 0060 (2)根据(1)所述的半导体装置,其中, 0061 包含于第一逻辑部或第二逻辑部的上述存储部的逻辑动作用地址线分别与上述 存储部的其他存储部的数据线连接,并且上述存储部的数据线分别与上。

31、述存储部的其他存 储部的逻辑动作用地址线连接。 0062 (3)根据(1)或(2)所述的半导体装置,其中, 0063 包含于上述第一逻辑部以及上述第二逻辑部的上述多个存储部是可重构的。 0064 (4)根据(1)(3)的任一项所述的半导体装置,其中, 0065 上述第一逻辑部以及上述第二逻辑部分别具有对上述多个存储部进行选择的存 储部译码器。 0066 (5)根据(1)(4)的任一项所述的半导体装置,其中, 0067 还具有与存储构成上述真值表的数据的存储装置连接的输入输出部。 0068 (6)根据(1)(5)的任一项所述的半导体装置,其中, 0069 还具有存储构成上述真值表的数据的存储装置。

32、。 0070 (7)根据(1)(6)的任一项所述的半导体装置,其中, 0071 物理布线层数为4层以下。 说 明 书CN 102948077 A 4/48页 10 0072 (8)根据(1)(7)的任一项所述的半导体装置,其中, 0073 上述第一逻辑部所具有的上述存储部的数量与上述第二逻辑部所具有的上述存 储部的数量是相同的。 0074 (9)根据(1)(8)的任一项所述的半导体装置,其中, 0075 上述地址译码器分为行译码器和列译码器, 0076 上述行译码器对从M(M为5以下的整数,L为N5的整数)根地址线输入的地 址进行译码,并向上述字线输出字选择信号, 0077 上述列译码器对从L。

33、根地址线输入的地址进行译码,并输出对从上述多个存储元 件输出的N根数据线进行选择的数据选择信号。 0078 (10)一种使用了运算处理部的半导体装置的控制方法,其特征在于,包括: 0079 上述运算处理部向第一逻辑部输出对逻辑动作或连接关系进行规定的真值表数 据的步骤,其中上述第一逻辑部具有多个存储部,各存储部具有多个存储元件; 0080 将上述对逻辑动作或连接关系进行规定的真值表数据存储于上述第一逻辑部的 存储部的步骤; 0081 上述运算处理部向第二逻辑部输出逻辑动作用地址的步骤,其中上述第一逻辑部 具有多个存储部,各存储部具有多个存储元件; 0082 上述第二逻辑部的存储部从由上述逻辑动。

34、作用地址确定的存储元件输出数据的 步骤; 0083 上述运算处理装置从上述第二逻辑部接收数据的步骤。 0084 (11)根据(10)所述的控制方法,其中, 0085 上述运算处理装置包含于上述半导体装置。 0086 用于解决上述课题的实施方式如下述的第三组的(1)(11)中所述。 0087 (1)一种半导体装置,其特征在于,包括: 0088 对数据进行运算处理的运算处理部;和 0089 作为具有多个存储部以及输入输出部的逻辑部的运算处理部,各存储部具有地址 译码器和多个存储元件,该地址译码器对从地址线输入的地址进行译码,并向上述字线输 出字选择信号,该多个存储元件与数据线和字线连接,分别存储构。

35、成对逻辑动作或连接关 系进行规定的真值表的数据,并根据从上述字线输入的上述字选择信号与输入输出上述数 据的数据线连接; 0090 上述输入输出部将上述运算处理部的至少1个输出信号线和上述地址线的至少1 个进行连接,并将上述运算处理部的至少1个输入信号线和上述数据线的至少1个进行连 接。 0091 (2)根据(1)所述的半导体装置,其中, 0092 上述存储部的地址线分别与上述存储部的其他存储部的数据线连接,并且上述存 储部的数据线分别与上述存储部的其他存储部的地址线连接。 0093 (3)根据(1)或(2)所述的半导体装置,其中, 0094 上述多个存储部是可重构的。 0095 (4)根据(1。

36、)(3)的任一项所述的半导体装置,其中, 0096 上述逻辑部还具有对上述多个存储部进行选择的存储部译码器。 说 明 书CN 102948077 A 10 5/48页 11 0097 (5)根据(1)(4)的任一项所述的半导体装置,其中, 0098 还具有与存储构成上述真值表的数据的存储装置连接的输入输出部。 0099 (6)根据(1)(5)的任一项所述的半导体装置,其中, 0100 还具有存储构成上述真值表的数据的存储装置。 0101 (7)根据(1)(6)的任一项所述的半导体装置,其中, 0102 物理布线层数为4层以下。 0103 (8)根据(1)(7)的任一项所述的半导体装置,其中, 。

37、0104 上述地址译码器分为行译码器和列译码器, 0105 上述行译码器对从M(M为5以下的整数,L为N5的整数)根地址线输入的地 址进行译码,并向上述字线输出字选择信号, 0106 上述列译码器对从L根地址线输入的地址进行译码,并输出对从上述多个存储元 件输出的N根数据线进行选择的数据选择信号。 0107 (9)一种使用了运算处理部的半导体装置的控制方法,其特征在于,包括: 0108 上述运算处理部向包含于上述运算处理部的逻辑部输出地址的步骤,其中,上述 逻辑部具有多个存储元件,各存储元件分别存储构成对逻辑动作或连接关系进行规定的真 值表的数据; 0109 上述逻辑部从与上述运算处理部的至少。

38、1个输出信号线连接的至少1个地址线接 收上述地址的步骤; 0110 上述逻辑部从由上述地址确定的存储元件输出数据的步骤; 0111 上述逻辑部借助于与上述运算处理部的至少1个输入信号线连接的至少1个数据 线,向上述运算处理部输出上述数据的步骤 0112 (10)根据(9)所述的控制方法,其中, 0113 上述逻辑部从与上述逻辑部内的存储部相连的至少1个数据线向上述运算处理 部的至少1个输入信号线输出上述读出的数据。 0114 (11)根据(9)或(10)所述的控制方法,其中, 0115 上述运算处理装置包含于上述半导体装置。 0116 此外,作为PLD之一有MPLD(Memorybased P。

39、rogrammable Logic Device,基于 存储器的可编程逻辑器件)。与基于LUT的PLD同样地,MPLD通过存储单元装置实现电路构 成。MPLD在写入真值表数据的存储单元装置作为逻辑部件发挥作用这一点上,与上述基于 LUT的PLD相同,而在也作为LUT之间的连接部件发挥作用这一点上,与具有专用于存储单 元装置间的连接的切换电路的基于LUT的PLD不同。但是,由于MPLD将存储单元装置作为 对逻辑部件以及或逻辑部件之间的连接进行切换的连接部件使用,所以,为了改变数据 总线,与基于LUT的PLD同样地,需要对保存于存储单元的真值表数据进行改写。因此,若 通过MPLD执行动态的重构,则。

40、产生向存储单元装置写入数据的处理,所以处理将延迟。 0117 而且,在另一个侧面,本发明的目的是缩短具有MPLD的半导体装置的重构时间。 0118 用于解决上述课题的实施方式如下述的第四组的(1)(5)中所述。 0119 (1)一种半导体装置,其特征在于,包括: 0120 多个可编程逻辑部,该多个可编程逻辑部分别具有多个存储单元装置,且当向上 述存储单元装置写入真值表数据时,该多个可编程逻辑部作为逻辑部件或连接部件工作; 说 明 书CN 102948077 A 11 6/48页 12 0121 高速缓存部,该高速缓存部分别保持作为多个上述真值表数据的多个构成信息; 0122 构成控制部,在上述。

41、多个可编程逻辑部中的第一可编程逻辑部通过构成分支逻辑 的第一构成信息而被重构的情况下,在执行上述分支逻辑前,该构成控制部通过构成上述 分支逻辑的分支目的地电路的上述第二构成信息,对上述多个可编程逻辑部中的第二可编 程逻辑部进行预测重构。 0123 (2)根据(1)所述的半导体装置,其特征在于, 0124 上述高速缓存部将表示运算器的真值表数据即运算器数据和表示状态迁移的真 值表数据即控制数据分开保持, 0125 上述构成控制部从上述高速缓存部分别读入上述控制数据和包含通过上述控制 数据的状态迁移表示的运算器的上述运算器数据,并对上述可编程逻辑部进行重构。 0126 (3)根据(1)或(2)所述。

42、的半导体装置,其特征在于, 0127 还具有包含上述高速缓存部所保持的控制数据的存储部, 0128 上述构成控制部接着上述高速缓存部所保持的控制数据,从上述存储部读出用于 重构上述可编程逻辑部的控制数据,并将该控制数据存储至上述高速缓存部。 0129 (4)根据(1)(3)的任一项所述的半导体装置,其特征在于, 0130 存储于上述存储部的上述控制数据的真值表数据被压缩, 0131 上述高速缓存部保持已压缩的真值表数据, 0132 上述构成控制部对上述已压缩的真值表数据进行解压缩,利用该解压缩后的真值 表数据来重构上述可编程逻辑部。 0133 (5)根据(1)(4)的任一项所述的半导体装置,其。

43、中, 0134 在由上述第二构成信息构成的第二可编程逻辑部的运算结果表示上述第二构成 信息不是上述第一构成信息的分支逻辑的分支目的地电路的情况下,上述构成控制部利用 包含上述分支逻辑的分支目的地的第三构成信息重构上述第二可编程逻辑部以外的可编 程逻辑部。 0135 发明效果 0136 第一方面,本发明能够减少构成所希望的逻辑电路的存储元件块的总量。 0137 第二方面,本发明能够进行半导体装置与运算处理装置之间的数据的输入输出。 0138 第三方面,本发明能够缩短具有MPLD的半导体装置的重构时间。 附图说明 0139 图1为表示MPLD的一例的图。 0140 图2为表示MPLD的存储动作的一。

44、例的图。 0141 图3为表示MLUT的逻辑动作的一例的图。 0142 图4为表示MLUT的第一例的图。 0143 图5为表示单端口存储元件的一例的图。 0144 图6为表示作为逻辑部件工作的MLUT的一例的图。 0145 图7为表示作为逻辑电路工作的MLUT的一例的图。 0146 图8为表示图7所示的逻辑电路的真值表的图。 0147 图9为表示作为连接部件工作的MLUT的一例的图。 说 明 书CN 102948077 A 12 7/48页 13 0148 图10为表示图9所示的连接部件的真值表的图。 0149 图11为表示通过具有4个AD对的MLUT实现的连接部件的一例的图。 0150 图1。

45、2为表示1个MLUT作为逻辑部件以及连接部件工作的一例的图。 0151 图13为表示图12所示的逻辑部件以及连接部件的真值表的图。 0152 图14为表示通过具有4个AD对的MLUT实现的逻辑动作以及连接部件的一例的 图。 0153 图15为表示由MLUT构成的2位加法器的电路构成的一例的图。 0154 图16为表示2位加法器动作的真值表的图。 0155 图17为表示具有7个AD对的MLUT的一例的图。 0156 图18A为表示具有7个AD对的MLUT的一例的图。 0157 图18B为表示具有7个AD对的MLUT的平面构造的一例的图。 0158 图19为表示MLUT的第二例的图。 0159 图。

46、20为表示2端口存储元件的一例的图。 0160 图21为表示MLUT的第三例的图。 0161 图22为表示MLUT的配置的第一例的俯视图。 0162 图23为表示MLUT的配置的第二例的俯视图。 0163 图24为表示MLUT间的连线的一例的图。 0164 图25为表示借助于相邻的MLUT来连接间隔配置的MLUT的例子的图。 0165 图26A为表示构成所希望的逻辑电路所需的MLUT数的一例的图。 0166 图26B为表示构成所希望的逻辑电路所需的MLUT数的一例的图。 0167 图26C为表示构成所希望的逻辑电路所需的MLUT数的一例的图。 0168 图26D为表示构成所希望的逻辑电路所需的。

47、MLUT数的一例的图。 0169 图27为表示密排配置构造和非密排配置构造的图。 0170 图28为表示密排配置构造中的AD对的数量的一例的图。 0171 图29为表示MLUT的AD对的连线构造的一例的图。 0172 图30为表示MLUT的AD对的连线构造的另一例的图。 0173 图31为表示MLUT的AD对的连线构造的其他例子的图。 0174 图32为表示MLUT的AD对的连线构造的其他例子的图。 0175 图33为表示MLUT的AD对的连线构造的其他例子的图。 0176 图34为表示具有MLUT的MLUT块的一例的图。 0177 图35为表示具有15行30列的MLUT的MLUT区域中的近距。

48、离布线图案的配置 的一例的图。 0178 图36为表示具有15行30列的MLUT的MLUT区域中的第一间隔布线图案的配 置的图。 0179 图37为表示具有15行30列的MLUT的MLUT区域中的第二间隔布线图案的配 置的图。 0180 图38为表示具有15行30列的MLUT的MLUT区域中的第三间隔布线图案的配 置的图。 0181 图39为表示具有15行30列的MLUT的MLUT区域中的第四间隔布线图案的配 说 明 书CN 102948077 A 13 8/48页 14 置的图。 0182 图40为表示具有15行30列的MLUT的MLUT区域中的第五间隔布线图案的配 置的图。 0183 图41为表示搭载了MPLD的半导体装置的布局块的一例的图。 0184 图42为表示执行MPLD的布局/布线的信息处理装置的一例的图。 0185 图43为表示信息处理装置生成用于对MPLD进行布局/布线的位流数据的流程的 一例的图。 0186 图44为表示对搭载于图41所示的半导体装置的MPLD。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 基本电子电路


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1