• 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
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33

    (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
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    硬件面积
约束条件/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 实验结论

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

  • 相关阅读:
    QSS的应用
    时间序列预测:用电量预测 05 BP神经网络
    理论学习-ARM-内核
    js中的原型链
    学生HTML个人网页作业作品:HTML绿色的化妆品静态网站(web前端网页制作课作业)
    java毕业设计软考在线题库系统(附源码、数据库)
    Android 疑难杂症
    做外贸站群效果怎么样?独立站站群是什么?
    用友BIP 安装配置专业脚手架开发工具(图文)
    Java计算机毕业设计铜仁学院毕业就业管理系统源码+系统+数据库+lw文档
  • 原文地址:https://blog.csdn.net/qq_43570528/article/details/127936869