Lingo软硬件划分 实例

一、SM2 加密算法软硬件划分

1.1 实验目标

SM2 加密算法每个步骤所需软硬件执行时间、面积及功耗如表 5-7 依据这些数据,系统要求最大硬功耗 P=4.5mw,最大硬件面积 S=12mm2,最大执行时间 T=110s,使用线性规划方法进行软硬件划分,使得执行时间、硬件面积以及功耗的系统整体最小化,以及系统单个性能指标最小化,并求出相应的软硬件划分结果及其性能指标。
在这里插入图片描述

1.2 实验过程

建立线性规划模型:
定义变量簇 X1,X2,X3,X4,X5,X6,X7分别表示点加AddP模块、倍点DoubleP模块、模逆Invmod模块、模乘Mulmod模块、预处理MODN模块、点乘Q=[k]P以及模加减Addmod&Submod模块。
设变量 xij(i=1…7,j=0,1),j=0 表示软实现,j=1 表示硬实现,表示第 i 个 任务是软实现还是硬实现,xij∈{0,1}(i=1…7,j=0/1)。
引入函数:

s=x113.542+x211.881+x310.293+x410.271+x510.109+x615.581+ x715.426; 表示系统硬实现的硬件面积
p=x11
1.338+x211.002+x310.078+x410.123+x510.033+x612.2+ x712.231; 表示系统整体功耗
t=x1011.861+x2011.055+x3048.949+x4042.293+x5023.478+x6032.456+x7010.020+x111.467+x211.038+x310.958+x410.536+x510.342+x611.231+x710.995; 表示系统整体执行时间

变量空间:x10+x11=1;x20+x21=1;x30+x31=1;x40+x41=1;x50+x51=1; x60+x61=1;x70+x71=1;表示变量 xij 的约束条件

Lingo 代码


model: min=s + p + t;

s=x11*3.542+x21*1.881+x31*0.293+x41*0.271+x51*0.109+x61*5.581+ x71*5.426;
p=x11*1.338+x21*1.002+x31*0.078+x41*0.123+x51*0.033+x61*2.2+ x71*2.231;
t=x10*11.861+x20*11.055+x30*48.949+x40*42.293+x50*23.478+x60*32.456+x70*10.020+x11*1.467+x21*1.038+x31*0.958+x41*0.536+x51*0.342+x61*1.231+x71*0.995;
s<=12;
p<=4.5;
t<=110;


x10+x11=1;
x20+x21=1;
x30+x31=1;
x40+x41=1;
x50+x51=1;
x60+x61=1;
x70+x71=1;
@bin(X10);
@bin(X11);
@bin(X20);
@bin(X21);
@bin(X30);
@bin(X31);
@bin(X40);
@bin(X41);
@bin(X50);
@bin(X51);
@bin(X60);
@bin(X61);
@bin(X70);
@bin(X71);
end

(1) 综合考虑使得系统整体性能最

极值:min=s+p+t;
约束条件: s<=12; p<=4.5; T<=110;
划分解:
x11=x20=x30=x40=x50=x60=x71=0;
x10=x21=x31=x41=x51=x61=x70=1;
软件实现:模块1与7 硬件实现:模块2,3,4,5,6
划分效果
硬面积:8.135 ,功耗3.436, 执行时间:25.986,min = 37.557。
在这里插入图片描述

(2)只考虑硬面积,即系统硬件面积最小

极值:min=s;
约束条件: s<=12; p<=4.5; T<=110;
划分解:
x11=x21=x31=x40=x50=x61=x71=0;
x10=x20=x30=x41=x51=x60=x70=1;
软件实现:模块1,2,4,6,7 硬件实现:模块3,5
划分效果
硬面积:0.402,功耗0.111, 执行时间:108.985。
在这里插入图片描述

(3)只考虑功耗,即系统功耗最小

极值:min=p;
约束条件: s<=12; p<=4.5; T<=110;
划分解:
x11=x21=x30=x41=x50=x61=x71=0;
x10=x20=x31=x40=x51=x60=x70=1;
软件实现:模块1,2,4,6,7 硬件实现:模块3,5
划分效果
功耗0.111,硬面积:0.402, 执行时间:108.985。
在这里插入图片描述

(4)只考虑时间,即系统耗时最小

极值:min=t;
约束条件: s<=12; p<=4.5; T<=110;
划分解:
x10=x21=x30=x40=x50=x60=x71=0;
x11=x20=x31=x41=x51=x61=x70=1;
软件实现:模块2,7 硬件实现:模块1,3,4,5,6
划分效果
执行时间:25.609。功耗3.772,硬面积:9.796。
在这里插入图片描述

1.3 实验结论

同一个系统,针对不同的性能指标,可以划分出不同的结果,我们需要选择适合自己的解决方案。

二、车辆自动变道系统

2.1 实验描述

矩形分别代表车辆 A、B、C(每辆上装有通讯设备和用于信息采集的传感 器),车身长度为图中所示两条红线之间的距离。 当车辆 A 要向右进行变道时,先向车辆 B、C 发送变道请求,打开右转向灯,并收集车辆 B、C 此时的车速、加速度、线段 AB、AC 与平行法线的夹角和距车辆 A 的距离(即线段 AB 和 AC),若车辆 B、C 成功收到请求并将收到信息成功反馈给车辆 A,则车辆 A 查看此时道路环境是否满足变道要求,若满足则进行变道,否则重新发送请求。车辆 A 进行变道时,该系统会控制车辆B不能减速,车辆C不能加速。该自动变道系统由信息采集模块、信息处理模块、 车灯控制模块、车速控制模块、信息接收模块、信息发送模块组成。每个模块有软件执行功耗、硬件执行功耗和硬件执行面积。 使用线性规划方法给出两种解决方案:第一种在硬件面积不超过 1.5mm2、 1.8mm2、2.0mm2 前提下功耗最小解决方案;第二种在整体功耗不超过 2mw、 2.2mw、2.5mw 前提下,硬件面积最小的解决方案。
在这里插入图片描述

2.2 实验过程

建立线性规划模型:
定义变量簇 T1,T2,T3,T4,T5,T6分别表示信息采集模块、信息处理模块、车灯控制模块、车速控制模块、信息接收模块以及信息发送模块。
设变量 xij(i=1…6,j=0,1),j=0 表示软实现,j=1 表示硬实现,表示第 i 个 任务是软实现还是硬实现,xij∈{0,1}(i=1…6,j=0/1)。
引入函数:
s=x110.413+x210.531+x310.216+x410.330+x510.363+x610.424; s表示系统硬实现的硬件面积
p=x100.55+x200.23+x300.22+x400.37+x500.45+x600.39+x110.34+x210.38+x310.17+x410.57+x510.33+x610.27; 表示系统整体功耗
变量空间:
x10+x11=1;x20+x21=1; x30+x31=1;
x40+x41=1;x50+x51=1; x60+x61=1; 表示变量 xij 的约束条件

Lingo 代码


model: min=p;

s=x11*0.413+x21*0.531+x31*0.216+x41*0.330+x51*0.363+x61*0.424;      
p=x10*0.55+x20*0.23+x30*0.22+x40*0.37+x50*0.45+x60*0.39+x11*0.34+x21*0.38+x31*0.17+x41*0.57+x51*0.33+x61*0.27;      

p<=2.5;

x10+x11=1;
x20+x21=1;
x30+x31=1;
x40+x41=1;
x50+x51=1;
x60+x61=1;
@bin(X10);
@bin(X11);
@bin(X20);
@bin(X21);
@bin(X30);
@bin(X31);
@bin(X40);
@bin(X41);
@bin(X50);
@bin(X51);
@bin(X60);
@bin(X61);
end

硬件面积
约束条件/mm2	软实现任务	硬实现任务	系统功耗/mw
1.5	2,4	1,3,5,6	1.71
1.8	2,4	1,3,5,6	1.71
2.0	2,4	1,3,5,6	1.71

功耗
约束条件/mw	软实现任务	硬实现任务	硬件面积/mm2
2	2,3,4,5,6	1	0.413
2.2	1,2,4,5,6	3	0.216
2.5	1,2,3,4,5,6		0

2.3 实验结论

同一个性能指标,不同的约束条件,有可能得到相同的划分结果,也有可能得到不同的结果。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值