CN112350716B - 一种补码运算方法及装置、补码运算装置的运算方法 - Google Patents

一种补码运算方法及装置、补码运算装置的运算方法 Download PDF

Info

Publication number
CN112350716B
CN112350716B CN202011353090.4A CN202011353090A CN112350716B CN 112350716 B CN112350716 B CN 112350716B CN 202011353090 A CN202011353090 A CN 202011353090A CN 112350716 B CN112350716 B CN 112350716B
Authority
CN
China
Prior art keywords
bit
input
gate
numerical value
original code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011353090.4A
Other languages
English (en)
Other versions
CN112350716A (zh
Inventor
尚德龙
刘婉婷
李阳
唐溪琴
乔树山
周玉梅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhongke Nanjing Intelligent Technology Research Institute
Original Assignee
Zhongke Nanjing Intelligent Technology Research Institute
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhongke Nanjing Intelligent Technology Research Institute filed Critical Zhongke Nanjing Intelligent Technology Research Institute
Priority to CN202011353090.4A priority Critical patent/CN112350716B/zh
Publication of CN112350716A publication Critical patent/CN112350716A/zh
Application granted granted Critical
Publication of CN112350716B publication Critical patent/CN112350716B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明涉及一种补码运算方法,当所述原码为负数时,按照从最低位到最高位的顺序找到原码中的第一个“1”;保持所述第一个“1”以及它后面的“0”比特位和原码的符号位的比特位不变,对所述第一个“1”和所述符号位之间的比特位按位取反,得到补码。本发明还涉及一种补码运算装置,该补码运算装置仅由与门、或门以及异或门这种简单的逻辑门构成,与传统的补码运算器的方法相比,电路简单,降低了功耗,加快了补码的运算速度。

Description

一种补码运算方法及装置、补码运算装置的运算方法
技术领域
本发明涉及数字电路领域,特别是涉及一种补码运算方法及装置、补码运算装置的运算方法。
背景技术
码制转换是数字电路基础学习中的一个重要内容,并且计算机中常采用补码表示有符号数,由于有在异号相加的情形下,补码表示可以将减法变成加法,而且符号位连同数值位一起参与运算,运算结果也不需要进行任何后续处理,因此采用补码进行运算会使计算变得简单,这样,在许多运算中必不可少的用到求补操作,并且在乘法器、算数运算单元等运算器中有广泛的应用。
通常,传统的补码求法是:正数的原码、反码和补码是相同的,负数的补码求法是符号位不变,其他位取反加1,传统求补电路由反相器、多路选择器以及加法器组成,电路较复杂,耗费的资源多,速度较慢,因此急需一种补码的速算方法和基于该方法的、电路简单计算速度快的补码的运算装置。
发明内容
本发明的目的是提供一种补码运算方法及装置、补码运算装置的运算方法,根据补码运算方法设置的补码运算装置,该装置通过与门、或门以及异或门这种简单的逻辑门构成,电路简单,降低了功耗,且通过该补码运算装置进行补码运算的方法加快了补码的运算速度。
为实现上述目的,本发明提供了如下方案:
一种补码运算方法,所述方法包括:
判断原码是正数还是负数,当所述原码为负数时,按照从最低位到最高位的顺序找到原码中的第一个“1”;
保持所述第一个“1”及它后面的“0”比特位和原码的符号位不变,对所述第一个“1”和所述符号位之间的比特位按位取反,得到补码。
一种补码运算装置,包括n-1个与或门、n-1个异或门、n-1个输入数值位、n-1个输出数值位、n个进位信号、选择信号sel,输入符号位和输出符号位,其中,
第一个所述进位信号连接到第一个与或门中或门的输入端和第一个异或门的输入端,第k个与或门的输出端连接到第k+1个所述与或门的或门的输入端和第k+1个所述异或门的输入端,其中,k=1,2,...,n-1,第k个与或门的输出信号为第k+1个进位信号,第k个输入数值位连接到第k个与或门中与门的输入端和第k个所述异或门的输入端,第k个所述异或门的输出端连接第k个所述输出数值位,所述第n个进位信号即第n-1个与或门的输出端与所述输入符号位和所述输出符号位设置于同一位置。
所述输入数值位为原码的数值位,所述输出数值位为与所述原码对应的补码的数值位,所述输入符号位为原码的符号位,所述输出符号位为与所述原码对应的补码的符号位。
所述选择信号sel由所述输入符号位确定。
当所述输入符号位为1时,所述选择信号sel为1;当所述输入符号为0时,所述选择信号sel为0。
所述第一个进位信号为0。
一种补码运算装置的运算方法,所述方法包括:
获取原码的数值位和符号位;
根据所述原码的符号位确定输入符号位和选择信号sel;
将所述原码的数值位输入到补码运算装置的输入数值位,所述原码的数值位与所述输入数值位一一对应,根据所述输入数值位、所述选择信号sel和第一个进位信号得到输出数值位;
根据所述输入符号位确定输出符号位;
根据所述输出数值位和所述输出符号位确定原码的补码。
所述根据所述原码的符号位确定输入符号位和选择信号sel具体包括:当所述原码的符号位为0时,所述输入符号位为0,所述选择信号sel为0;当所述原码的符号位为1时,所述输入符号位为1,所述选择信号sel为1。
所述第一个进位信号为0。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
1、本发明所提出的补码运算方法不同于以往的运算方法,为补码运算提供了一种新思路。
2、传统的补码运算装置由反相器、多路选择器和加法器组成,运算复杂、电路结构复杂,速度较慢,本发明针对传统补码运算装置的这些缺陷提出了一种新的补码运算装置,由于本发明的补码运算装置仅由异或门和与或门这种逻辑门组成,具有运算方法简单、电路结构简单、功耗低等优点,且采用本发明的补码运算装置进行补码运算时能够达到提高运算速度的效果。
3、本发明提供的补码运算装置可运用于乘法器、ALU等运算单元中,加快运算的速度,降低功耗,简化运算电路。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一提供的一种补码运算方法流程图;
图2为本发明实施例二提供的一种补码运算装置结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的是提供一种补码运算方法及装置、补码运算装置的运算方法,根据补码运算方法设置的补码运算装置,该装置通过与门、或门以及异或门这种简单的逻辑门构成,电路简单,降低了功耗,且通过该补码运算装置进行补码运算的方法加快了补码的运算速度。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
通常,在加法器中,一个操作数可为正数也可为负数,若操作数为负数,则需要对该操作数进行补码运算,本发明提出一种电路可以快速完成这一运算要求。
实施例一:
本实施例基于传统的补码运算方法:正数的原码、反码和补码是相同的,负数的补码求法是符号位不变,其他位取反加1,提出一种新的补码运算方法。
如图1所示,本实施例示出的一种补码运算方法包括:
判断原码是正数还是负数,当所述原码为正数时,补码与所述原码相同;当所述原码为负数时,按照从最低位到最高位的顺序找到原码中的第一个“1”;
保持所述第一个“1”及它后面的“0”比特位和原码的符号位不变,对所述第一个“1”和所述符号位之间的比特位按位取反,得到补码。
实施例二:
本实施例是基于实施例一提供的一种新补码运算方法,提出一种快速将有符号二进制数转换为补码表示的运算装置。
如图2所示,本实施例示出的一种补码运算装置包括:n-1个与或门、n-1个异或门、n-1个输入数值位、n-1个输出数值位/>、n个进位信号、选择信号sel,输入符号位/>和输出符号位/>,其中,/>
第一个所述进位信号连接到第一个与或门中或门的输入端和第一个异或门的输入端,第k个与或门的输出端连接到第k+1个所述与或门的或门的输入端和第k+1个所述异或门的输入端,其中,k=1,2,...,n-1,第k个与或门的输出信号为第k+1个进位信号,第k个输入数值位连接到第k个与或门中与门的输入端和第k个所述异或门的输入端,第k个所述异或门的输出端连接第k个所述输出数值位,所述第n个进位信号即第n-1个与或门的输出端与所述输入符号位和所述输出符号位设置于同一位置。
其中,所述输入数值位为原码的数值位,所述输出数值位为与所述原码对应的补码的数值位,所述输入符号位为原码的符号位,所述输出符号位为与所述原码对应的补码的符号位。
作为一种可选的实施方式,所述第一个进位信号为0。
所述选择信号sel由所述输入符号位确定,所述输入符号位由原码的正负确定,当原码为负数时,所述输入符号位为1,所述选择信号sel为1;当原码为负数时,所述输入符号为0,所述选择信号sel为0。
本实施例针对传统的补码运算装置存在的运算复杂、电路结构复杂,速度较慢等缺陷提出了补码运算装置,由于它仅由异或门和与或门这种逻辑门组成,具有运算方法简单、电路结构简单、速度快和功耗低等优点。
实施例三、
本实施例示出的一种补码运算方法包括:
获取原码的数值位和符号位;
根据所述原码的符号位确定输入符号位和选择信号sel;
将所述原码的数值位输入到补码运算装置的输入数值位,所述原码的数值位与所述输入数值位一一对应,根据所述输入数值位、所述选择信号sel和第一个进位信号得到输出数值位;
根据所述输入符号位确定输出符号位;
根据所述输出数值位和所述输出符号位确定原码的补码。
作为一种可选的实施方式,当所述原码的符号位为0时,所述输入符号位为0,所述选择信号sel为0;当所述原码的符号位为1时,所述输入符号位为1,所述选择信号sel为1。
所述第一个进位信号为0。
为了便于本领域技术人员更加清楚的理解本发明所提供的补码运算装置及该运算装置的运算方法,在此进行举例,对采用本运算装置进行补码运算的方法具体说明。
以8位的有符号数1000_1100为例,若采用传统的运算方法,它的运算过程为:(1)符号位不变,其他位按位取反得到结果“1111_0011”(2)取反得到的结果加“1”,得到最后的补码“1111_0100”。
对于本发明提出的补码运算装置,若为8位的补码运算装置,则本例中的n=8,其运算过程为:
(1)输入数值位(A6A5A4A3A2A1A0)上输入000_1100,由于此数符号位为1,则此数为负数,设置选择信号sel=1,Co0信号置为0。
(2)第一个输入数值位A0=0信号输入后,由于第一个异或门S0=A0⊕Co0(此时S0=0⊕0),则第一个输出数值位S0=0,第2个进位信号(即第1个与或门的输出信号)Co1=Co0+sel&A0(此时Co1=0+1&0),则输出Co1=0。
(3)此时第二个进位信号Co1=0,A1=0,S1=A1⊕Co1(此时S1=0⊕0=0),Co2=Co1+sel&A1(此时Co2=0+1&0=0)。
(4)此时第三个进位信号Co2=0,A2=1,S2=A2⊕Co2(此时S2=1⊕0=1),Co3=Co2+sel&A2(此时Co3=0+1&1=1)。
(5)此时第四个进位信号Co3=1,A3=1,S3=A3⊕Co3(此时S3=1⊕1=0),Co4=Co3+sel&A3(此时Co4=1+1&1=1)。
(6)此时第五个进位信号Co4=1,A4=0,S4=A4⊕Co4(此时S4=0⊕1=1),Co5=Co4+sel&A4(此时Co5=1+1&0=1)。
(7)此时第六个进位信号Co5=1,A5=0,S5=A5⊕Co5(此时S5=0⊕1=1),Co6=Co5+sel&A5(此时Co6=1+1&0=1)。
(8)此时第七个进位信号Co6=1,A6=0,S6=A6⊕Co6(此时S6=0⊕1=1),Co7=Co6+sel&A6(此时Co7=1+1&0=1),S7=A7=Co7=1。
(9)由上述步骤可知,S7S6S5S4S3S2S1S0=1111_0100,此数即为补码。
本发明针对传统的补码运算装置存在的运算复杂、电路结构复杂,速度较慢等缺陷提出了补码运算装置,由于它仅由异或门和与或门这种逻辑门组成,具有运算方法简单、电路结构简单、速度快和功耗低等优点。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。

Claims (9)

1.一种补码运算方法,其特征在于,所述方法基于补码运算装置实现,所述补码装置包括:n-1个与或门、n-1个异或门、n-1个输入数值位、n-1个输出数值位、n个进位信号、选择信号sel,输入符号位和输出符号位,其中,n≥2;第一个所述进位信号连接到第一个与或门中或门的输入端和第一个异或门的输入端,第k个与或门的输出端连接到第k+1个所述与或门的或门的输入端和第k+1个所述异或门的输入端,其中,k=1,2,...,n-1,第k个与或门的输出信号为第k+1个进位信号,第k个输入数值位连接到第k个与或门中与门的输入端和第k个所述异或门的输入端,第k个所述异或门的输出端连接第k个所述输出数值位,所述第n个进位信号与所述输入符号位和所述输出符号位设置于同一位置;
所述方法包括:
判断原码是正数还是负数,当所述原码为负数时,按照从最低位到最高位的顺序找到原码中的第一个“1”;
保持所述第一个“1”和原码的符号位的比特位不变,对所述第一个“1”和所述符号位之间的比特位按位取反,得到补码。
2.一种补码运算装置,其特征在于,包括n-1个与或门、n-1个异或门、n-1个输入数值位、n-1个输出数值位、n个进位信号、选择信号sel,输入符号位和输出符号位,其中,n≥2;
第一个所述进位信号连接到第一个与或门中或门的输入端和第一个异或门的输入端,第k个与或门的输出端连接到第k+1个所述与或门的或门的输入端和第k+1个所述异或门的输入端,其中,k=1,2,...,n-1,第k个与或门的输出信号为第k+1个进位信号,第k个输入数值位连接到第k个与或门中与门的输入端和第k个所述异或门的输入端,第k个所述异或门的输出端连接第k个所述输出数值位,所述第n个进位信号与所述输入符号位和所述输出符号位设置于同一位置。
3.根据权利要求2所述的补码运算装置,其特征在于,所述输入数值位为原码的数值位,所述输出数值位为与所述原码对应的补码的数值位,所述输入符号位为原码的符号位,所述输出符号位为与所述原码对应的补码的符号位。
4.根据权利要求2所述的补码运算装置,其特征在于,所述选择信号sel由所述输入符号位确定。
5.根据权利要求4所述的补码运算装置,其特征在于,当所述输入符号位为1时,所述选择信号sel为1;当所述输入符号为0时,所述选择信号sel为0。
6.根据权利要求2所述的补码运算装置,其特征在于,所述第一个进位信号为0。
7.一种如权利要求2所述的补码运算装置的运算方法,其特征在于,所述方法包括:
获取原码的数值位和符号位;
根据所述原码的符号位确定输入符号位和选择信号sel;
将所述原码的数值位输入到补码运算装置的输入数值位,所述原码的数值位与所述输入数值位一一对应,根据所述输入数值位、所述选择信号sel和第一个进位信号得到输出数值位;
根据所述输入符号位确定输出符号位;
根据所述输出数值位和所述输出符号位确定原码的补码。
8.根据权利要求7所述的运算方法,其特征在于,所述根据所述原码的符号位确定输入符号位和选择信号sel具体包括:当所述原码的符号位为0时,所述输入符号位为0,所述选择信号sel为0;当所述原码的符号位为1时,所述输入符号位为1,所述选择信号sel为1。
9.根据权利要求7所述的运算方法,其特征在于,所述第一个进位信号为0。
CN202011353090.4A 2020-11-27 2020-11-27 一种补码运算方法及装置、补码运算装置的运算方法 Active CN112350716B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011353090.4A CN112350716B (zh) 2020-11-27 2020-11-27 一种补码运算方法及装置、补码运算装置的运算方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011353090.4A CN112350716B (zh) 2020-11-27 2020-11-27 一种补码运算方法及装置、补码运算装置的运算方法

Publications (2)

Publication Number Publication Date
CN112350716A CN112350716A (zh) 2021-02-09
CN112350716B true CN112350716B (zh) 2023-08-04

Family

ID=74365021

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011353090.4A Active CN112350716B (zh) 2020-11-27 2020-11-27 一种补码运算方法及装置、补码运算装置的运算方法

Country Status (1)

Country Link
CN (1) CN112350716B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115809041B (zh) * 2022-12-30 2023-04-25 中科南京智能技术研究院 一种可配置的补码运算装置及计算设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101819513A (zh) * 2010-02-11 2010-09-01 华南理工大学 一种由补码求原码绝对值的方法
CN102739589A (zh) * 2011-04-08 2012-10-17 中国科学院微电子研究所 一种用于无线局域网通信系统的补码键控调制装置及方法
CN103955585A (zh) * 2014-05-13 2014-07-30 复旦大学 一种适用于低功耗容错电路的fir滤波器结构
CN104202053A (zh) * 2014-07-17 2014-12-10 南京航空航天大学 一种快速n位原码到补码的转换装置和转换方法
CN106940638A (zh) * 2017-03-10 2017-07-11 南京大学 一种快速、低功耗和省面积的二进制原码加/减法运算单元的硬件架构
CN107256306A (zh) * 2017-06-09 2017-10-17 大连大学 基于两域链置换的四位取补器的设计方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6404732B1 (en) * 1996-07-30 2002-06-11 Agere Systems Guardian Corp. Digital modulation system using modified orthogonal codes to reduce autocorrelation
DE10250939B4 (de) * 2002-10-31 2006-04-27 Advanced Micro Devices, Inc., Sunnyvale DSSS und CCK-Basisband-Codierungsgerät und Verfahren

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101819513A (zh) * 2010-02-11 2010-09-01 华南理工大学 一种由补码求原码绝对值的方法
CN102739589A (zh) * 2011-04-08 2012-10-17 中国科学院微电子研究所 一种用于无线局域网通信系统的补码键控调制装置及方法
CN103955585A (zh) * 2014-05-13 2014-07-30 复旦大学 一种适用于低功耗容错电路的fir滤波器结构
CN104202053A (zh) * 2014-07-17 2014-12-10 南京航空航天大学 一种快速n位原码到补码的转换装置和转换方法
CN106940638A (zh) * 2017-03-10 2017-07-11 南京大学 一种快速、低功耗和省面积的二进制原码加/减法运算单元的硬件架构
CN107256306A (zh) * 2017-06-09 2017-10-17 大连大学 基于两域链置换的四位取补器的设计方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
原码、反码、补码小程序的设计与实现;赵煜;马萌;;计算机与网络(第13期);216-220 *

Also Published As

Publication number Publication date
CN112350716A (zh) 2021-02-09

Similar Documents

Publication Publication Date Title
EP0677805A1 (en) Leading zero/one anticipator
CN112350716B (zh) 一种补码运算方法及装置、补码运算装置的运算方法
CN110597483B (zh) 一种用于fpga比较器的全二进制数据高速比较方法及系统
Molahosseini et al. A new five-moduli set for efficient hardware implementation of the reverse converter
Park et al. Design and implementation and on-chip high-speed test of SFQ half-precision floating-point adders
CN112181355B (zh) 一种移位饱和处理方法及其应用
CN112230883B (zh) 一种用于乘法器零标志位的产生电路、乘法器和检测方法
CN113268219B (zh) 一种带二进制补码转换的加法器电路
JPH09114641A (ja) 最上位デジットを決定するための装置と方法
US5777906A (en) Left shift overflow detection
CN104202053B (zh) 一种快速n位原码到补码的转换装置和转换方法
JP2016045721A (ja) データ格納方法、三値内積演算回路、それを備えた半導体装置、及び、三値内積演算処理プログラム
CN115833845B (zh) 位置输出装置和位置输出方法
KR100259095B1 (ko) 정규화 기능을 갖는 가산기
US20210389931A1 (en) Context-Aware Bit-Stream Generator for Deterministic Stochastic Computing
CN220305789U (zh) 一种基于基本门电路的低功耗全加器
US6683530B1 (en) Method and apparatus for performing a floating point compare operation
US7240085B2 (en) Faster shift value calculation using modified carry-lookahead adder
JP2002014804A (ja) 三値ディジタル回路
GB2342729A (en) Arithmetic logic unit with zero detection
JPS5966790A (ja) 演算回路
CN115809041A (zh) 一种可配置的补码运算装置及计算设备
US9836278B2 (en) Floating point computation apparatus and method
KR100226757B1 (ko) 병렬제산 연산장치
WO2016192411A1 (en) Increment/decrement apparatus and method

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 5 / F, building 1, Qilin artificial intelligence Industrial Park, 266 Chuangyan Road, Jiangning District, Nanjing City, Jiangsu Province

Applicant after: Zhongke Nanjing Intelligent Technology Research Institute

Address before: 5 / F, building 1, Qilin artificial intelligence Industrial Park, 266 Chuangyan Road, Jiangning District, Nanjing City, Jiangsu Province

Applicant before: Nanjing Institute of intelligent technology, Institute of microelectronics, Chinese Academy of Sciences

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant