Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
饶先宏
hdl4se
提交
bab1cea3
H
hdl4se
项目概览
饶先宏
/
hdl4se
通知
12
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
H
hdl4se
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
bab1cea3
编写于
5月 30, 2021
作者:
饶先宏
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
202105301915
上级
342a18da
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
52 addition
and
2 deletion
+52
-2
bignumber/include/bignumber.h
bignumber/include/bignumber.h
+13
-0
bignumber/src/bignumber.c
bignumber/src/bignumber.c
+38
-1
preprocess/src/verilog_preprocess.c
preprocess/src/verilog_preprocess.c
+1
-1
未找到文件。
bignumber/include/bignumber.h
浏览文件 @
bab1cea3
...
...
@@ -32,6 +32,7 @@
/*
* bignumber.h
202105201110: rxh, initial version
202105260952: rxh, 调整了接口,主要是增加了带符号的计算,另外根据verilog的运算增加了运算符号
*/
#ifndef __BIGNUMBER_H
...
...
@@ -84,24 +85,28 @@ typedef struct sIBigNumber {
int
(
*
MulInt32
)(
HOBJECT
object
,
HOBJECT
src
,
int
value
);
int
(
*
DivInt32
)(
HOBJECT
object
,
HOBJECT
src
,
int
value
);
int
(
*
ModInt32
)(
HOBJECT
object
,
HOBJECT
src
,
int
value
);
int
(
*
PowInt32
)(
HOBJECT
object
,
HOBJECT
src
,
int
value
);
int
(
*
AddUint32
)(
HOBJECT
object
,
HOBJECT
src
,
unsigned
int
value
);
int
(
*
SubUint32
)(
HOBJECT
object
,
HOBJECT
src
,
unsigned
int
value
);
int
(
*
MulUint32
)(
HOBJECT
object
,
HOBJECT
src
,
unsigned
int
value
);
int
(
*
DivUint32
)(
HOBJECT
object
,
HOBJECT
src
,
unsigned
int
value
);
int
(
*
ModUint32
)(
HOBJECT
object
,
HOBJECT
src
,
unsigned
int
value
);
int
(
*
PowUint32
)(
HOBJECT
object
,
HOBJECT
src
,
unsigned
int
value
);
int
(
*
Add
)(
HOBJECT
object
,
HOBJECT
src0
,
HOBJECT
src1
);
int
(
*
Sub
)(
HOBJECT
object
,
HOBJECT
src0
,
HOBJECT
src1
);
int
(
*
Mul
)(
HOBJECT
object
,
HOBJECT
src0
,
HOBJECT
src1
);
int
(
*
Div
)(
HOBJECT
object
,
HOBJECT
src0
,
HOBJECT
src1
);
int
(
*
Mod
)(
HOBJECT
object
,
HOBJECT
src0
,
HOBJECT
src1
);
int
(
*
Pow
)(
HOBJECT
object
,
HOBJECT
src0
,
HOBJECT
src1
);
int
(
*
AddU
)(
HOBJECT
object
,
HOBJECT
src0
,
HOBJECT
src1
);
int
(
*
SubU
)(
HOBJECT
object
,
HOBJECT
src0
,
HOBJECT
src1
);
int
(
*
MulU
)(
HOBJECT
object
,
HOBJECT
src0
,
HOBJECT
src1
);
int
(
*
DivU
)(
HOBJECT
object
,
HOBJECT
src0
,
HOBJECT
src1
);
int
(
*
ModU
)(
HOBJECT
object
,
HOBJECT
src0
,
HOBJECT
src1
);
int
(
*
PowU
)(
HOBJECT
object
,
HOBJECT
src0
,
HOBJECT
src1
);
int
(
*
Neg
)(
HOBJECT
object
,
HOBJECT
src
);
int
(
*
Abs
)(
HOBJECT
object
,
HOBJECT
src
);
...
...
@@ -178,21 +183,25 @@ typedef struct sIBigNumber {
static int _obj##_bn_MulInt32(HOBJECT object, HOBJECT src, int value); \
static int _obj##_bn_DivInt32(HOBJECT object, HOBJECT src, int value); \
static int _obj##_bn_ModInt32(HOBJECT object, HOBJECT src, int value); \
static int _obj##_bn_PowInt32(HOBJECT object, HOBJECT src, int value); \
static int _obj##_bn_AddUint32(HOBJECT object, HOBJECT src, unsigned int value); \
static int _obj##_bn_SubUint32(HOBJECT object, HOBJECT src, unsigned int value); \
static int _obj##_bn_MulUint32(HOBJECT object, HOBJECT src, unsigned int value); \
static int _obj##_bn_DivUint32(HOBJECT object, HOBJECT src, unsigned int value); \
static int _obj##_bn_ModUint32(HOBJECT object, HOBJECT src, unsigned int value); \
static int _obj##_bn_PowUint32(HOBJECT object, HOBJECT src, unsigned int value); \
static int _obj##_bn_Add(HOBJECT object, HOBJECT src0, HOBJECT src1); \
static int _obj##_bn_Sub(HOBJECT object, HOBJECT src0, HOBJECT src1); \
static int _obj##_bn_Mul(HOBJECT object, HOBJECT src0, HOBJECT src1); \
static int _obj##_bn_Div(HOBJECT object, HOBJECT src0, HOBJECT src1); \
static int _obj##_bn_Mod(HOBJECT object, HOBJECT src0, HOBJECT src1); \
static int _obj##_bn_Pow(HOBJECT object, HOBJECT src0, HOBJECT src1); \
static int _obj##_bn_AddU(HOBJECT object, HOBJECT src0, HOBJECT src1); \
static int _obj##_bn_SubU(HOBJECT object, HOBJECT src0, HOBJECT src1); \
static int _obj##_bn_MulU(HOBJECT object, HOBJECT src0, HOBJECT src1); \
static int _obj##_bn_DivU(HOBJECT object, HOBJECT src0, HOBJECT src1); \
static int _obj##_bn_ModU(HOBJECT object, HOBJECT src0, HOBJECT src1); \
static int _obj##_bn_PowU(HOBJECT object, HOBJECT src0, HOBJECT src1); \
static int _obj##_bn_Neg(HOBJECT object, HOBJECT src); \
static int _obj##_bn_Abs(HOBJECT object, HOBJECT src); \
static int _obj##_bn_IsGT(HOBJECT object, HOBJECT src); \
...
...
@@ -256,21 +265,25 @@ static const IBigNumber _obj##_bn_interface = { \
_obj##_bn_MulInt32, \
_obj##_bn_DivInt32, \
_obj##_bn_ModInt32, \
_obj##_bn_PowInt32, \
_obj##_bn_AddUint32, \
_obj##_bn_SubUint32, \
_obj##_bn_MulUint32, \
_obj##_bn_DivUint32, \
_obj##_bn_ModUint32, \
_obj##_bn_PowUint32, \
_obj##_bn_Add, \
_obj##_bn_Sub, \
_obj##_bn_Mul, \
_obj##_bn_Div, \
_obj##_bn_Mod, \
_obj##_bn_Pow, \
_obj##_bn_AddU, \
_obj##_bn_SubU, \
_obj##_bn_MulU, \
_obj##_bn_DivU, \
_obj##_bn_ModU, \
_obj##_bn_PowU, \
_obj##_bn_Neg, \
_obj##_bn_Abs, \
_obj##_bn_IsGT, \
...
...
bignumber/src/bignumber.c
浏览文件 @
bab1cea3
...
...
@@ -32,7 +32,7 @@
/*
* bignumber.c
202105201110: rxh, initial version
202105260952:修改了接口,为verilog语言编译做准备,主要是区分了带符号和不带符号计算
202105260952:
rxh,
修改了接口,为verilog语言编译做准备,主要是区分了带符号和不带符号计算
*/
#include "stdlib.h"
...
...
@@ -765,6 +765,16 @@ static int bigint_bn_ModInt32(HOBJECT object, HOBJECT src, int value)
return
0
;
}
static
int
bigint_bn_PowInt32
(
HOBJECT
object
,
HOBJECT
src
,
int
value
)
{
IBigNumber
**
temp
;
temp
=
bigintegerCreate
(
32
);
bigint_bn_AssignInt32
(
temp
,
value
);
bigint_bn_Pow
(
object
,
src
,
temp
);
objectRelease
(
temp
);
return
0
;
}
static
int
bigint_bn_AddUint32
(
HOBJECT
object
,
HOBJECT
src
,
unsigned
int
value
)
{
unsigned
long
long
temp
;
...
...
@@ -833,6 +843,17 @@ static int bigint_bn_ModUint32(HOBJECT object, HOBJECT src, unsigned int value)
return
0
;
}
static
int
bigint_bn_PowUint32
(
HOBJECT
object
,
HOBJECT
src
,
unsigned
int
value
)
{
IBigNumber
**
temp
;
temp
=
bigintegerCreate
(
32
);
bigint_bn_AssignUint32
(
temp
,
value
);
bigint_bn_PowU
(
object
,
src
,
temp
);
objectRelease
(
temp
);
return
0
;
}
static
int
bigint_bn_AddFunc
(
HOBJECT
object
,
HOBJECT
src0
,
HOBJECT
src1
,
int
signexpand
)
{
unsigned
long
long
temp
;
...
...
@@ -991,6 +1012,14 @@ static int bigint_bn_Mod(HOBJECT object, HOBJECT src0, HOBJECT src1)
return
0
;
}
static
int
bigint_bn_Pow
(
HOBJECT
object
,
HOBJECT
src0
,
HOBJECT
src1
)
{
sBigInteger
*
pobj
;
pobj
=
(
sBigInteger
*
)
objectThis
(
object
);
NOTIMPL
;
return
0
;
}
static
int
bigint_bn_AddU
(
HOBJECT
object
,
HOBJECT
src0
,
HOBJECT
src1
)
{
return
bigint_bn_AddFunc
(
object
,
src0
,
src1
,
0
);
...
...
@@ -1024,6 +1053,14 @@ static int bigint_bn_ModU(HOBJECT object, HOBJECT src0, HOBJECT src1)
return
0
;
}
static
int
bigint_bn_PowU
(
HOBJECT
object
,
HOBJECT
src0
,
HOBJECT
src1
)
{
sBigInteger
*
pobj
;
pobj
=
(
sBigInteger
*
)
objectThis
(
object
);
NOTIMPL
;
return
0
;
}
static
int
bigint_bn_Neg
(
HOBJECT
object
,
HOBJECT
src
)
{
/* 反码加一 */
...
...
preprocess/src/verilog_preprocess.c
浏览文件 @
bab1cea3
...
...
@@ -28,7 +28,7 @@
** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
** THE POSSIBILITY OF SUCH DAMAGE.
*/
/*
修改记录:
202105140816: 根据git的要求增加License
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录