Lingo软硬件划分 实例

news2025/7/11 16:45:35

文章目录

  • 一、SM2 加密算法软硬件划分
    • 1.1 实验目标
    • 1.2 实验过程
      • (1) 综合考虑使得系统整体性能最
      • (2)只考虑硬面积,即系统硬件面积最小
      • (3)只考虑功耗,即系统功耗最小
      • (4)只考虑时间,即系统耗时最小
    • 1.3 实验结论
  • 二、车辆自动变道系统
    • 2.1 实验描述
    • 2.2 实验过程
    • 2.3 实验结论

一、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 实验结论

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/17964.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot实用开发篇复习4(实用开发篇完)

在上面一节&#xff0c;我们学习了SpringBoot整合第三方技术&#xff0c;这次我们主要学习监控技术&#xff0c;主要包含四个部分&#xff0c;分别为监控的意义&#xff0c;可视化监控平台&#xff0c;监控的原理&#xff0c;自定义监控指标等&#xff0c;下面一起来学习吧。 …

nodejs+vue+elementui前台美食网上订餐点菜系统 vscode项目

前端技术&#xff1a;nodejsvueelementui 前端&#xff1a;HTML5,CSS3、JavaScript、VUE 系统分为不同的层次&#xff1a;视图层&#xff08;vue页面&#xff09;&#xff0c;表现层&#xff08;控制器类&#xff09;&#xff0c;业务层&#xff08;接口类&#xff09;和持久层…

SSM框架+LayUi+Mysql实现的物流配送管理系统(功能包含分角色,登录/注册、车辆管理/路线管理/运单管理/调度安排/信息管理等)

博客目录SSM框架LayUiMysql实现的物流配送管理系统实现功能截图系统功能使用技术代码完整源码SSM框架LayUiMysql实现的物流配送管理系统 本系统为了解决物流平台的配送难题&#xff0c;将司机/物流配送的整体流程话&#xff0c;便于物流公司的统一管理&#xff0c;提高了物流日…

JUC学习笔记——共享模型之内存

在本系列内容中我们会对JUC做一个系统的学习&#xff0c;本片将会介绍JUC的内存部分 我们会分为以下几部分进行介绍&#xff1a; Java内存模型可见性模式之两阶段终止模式之Balking原理之指令级并行有序性volatile原理 Java内存模型 我们首先来介绍一下Java内存模型&#xf…

博途1200PLC编码器速度信号采集和滤波处理

速度估算有M法和T法测速2种常用方法,工业控制PLC上基本采用M法测速,M法测速的详细原理,这里不再赘述。感兴趣的可以参看下面的文章链接: PLC通过编码器反馈值计算速度的推荐做法(算法解析+ST代码)_RXXW_Dor的博客-CSDN博客PLC如何测量采集编码器的位置数据,不清楚的可以…

spring框架源码十七、Bean对象创建子流程

Bean对象创建子流程Bean对象创建子流程new ClassPathXmlApplicationContextClassPathXmlApplicationContext#ClassPathXmlApplicationContext(java.lang.String)ClassPathXmlApplicationContext#ClassPathXmlApplicationContext(java.lang.String[], boolean, org.springframew…

冒泡事件在Vue中的应用

什么是事件冒泡&#xff1f; 一想到“冒泡”这两个词会想到什么&#xff1f;想必然&#xff0c;那就是气泡自下而上的从水底往上生的场景&#xff0c;但是我们也知道&#xff0c;水在往上升的过程中&#xff0c;也会经历不同的高度。由此场景&#xff0c;那么想必然&#xff0c…

JavaEE 进阶:Spring 核⼼与设计思想

文章目录一、Spring 是什么1、什么是容器2、什么是 IoC① 传统程序开发Ⅰ 轮胎尺寸固定a. 代码b. 缺陷Ⅱ 轮胎尺寸改变a. 代码b. 缺陷② 控制反转式程序开发Ⅰ 控制反转Ⅱ 需求增加Ⅲ 优点③ 对⽐总结规律3、理解 Spring IoC4、DI 概念说明一、Spring 是什么 Spring是当前Java…

Windows安装nginx

Windows安装nginx1.下载Nginx2.Nginx的使用2.1 修改nginx.conf2.2 启动nginx3.可能出现的问题观前提示&#xff1a; 本文所使用的系统Windows10。 1.下载Nginx Nginx官网&#xff0c;点击download下载 根据需求下载自己所需版本&#xff0c;这里我下载的是稳定版本 2.Nginx的…

链表

章节目录&#xff1a;一、链表1.1 概述二、单向链表2.1 实现思路2.2 代码示例三、双向链表3.1 实现思路3.2 代码示例四、单向环形链表4.1 约瑟夫问题4.2 实现思路4.3 代码示例五、结束语一、链表 1.1 概述 链表是一种物理存储单元上非连续、非顺序的存储结构&#xff0c;数据元…

谷粒学院(一) 项目环境搭建

一、数据库设计 数据库设计规约 以下规约只针对本模块&#xff0c;更全面的文档参考《阿里巴巴Java开发手册》&#xff1a;五、MySQL数据库 1、库名与应用名称尽量一致 2、表名、字段名必须使用小写字母或数字&#xff0c;禁止出现数字开头&#xff0c; 3、表名不使用复数名…

idea导入springboot项目运行教程

前置要求 ①具备Java环境&#xff0c;并且可以通过Maven进行安装项目依赖&#xff1b; ②具备IntelliJ IDEA工具&#xff0c;推荐专业版&#xff0c;社区版也不影响&#xff1b; ③具备Mysql5.7或以上版本数据库&#xff1b; ④具备Navicat数据库可视化管理工具&#xff1b;…

力扣(LeetCode)14. 最长公共前缀(C++)

模拟 取出 strsstrsstrs 的第一个字符串 strs[0]strs[0]strs[0] &#xff0c; 遍历strs[0]strs[0]strs[0] &#xff0c; 依次比较所有串的当前位置的字符&#xff0c;是否和 strs[0]strs[0]strs[0] 的当前字符相同。 代码展示 class Solution { public:string longestCommon…

现代修谱,如何处理族员离婚再娶,配偶携子改嫁同服弟等情况

现代修谱的那些糟心事 现代修谱过程中&#xff0c;会遇到各种突发情况以及非常棘手的问题。比如说族员离婚再娶&#xff0c;配偶携子改嫁同服弟的情况&#xff0c;族谱该如何记载&#xff1f;很多人都以为这是笔者在说笑&#xff0c;但这种情况在修谱时&#xff0c;不能说很难…

Qt源码解析11-QLineEdit与QValidator关系源码解析

Qt源码解析 索引 Qt源码解析11-QLineEdit与QValidator关系源码解析 测试 本想了解QRegExpValidator的正则表达式如何生效的&#xff0c;发现分析起来比想象的复杂。 测试实例&#xff1a; // regexp: optional - followed by between 1 and 3 digitsQRegExp rx("-?\…

JUC学习笔记——共享模型之管程

在本系列内容中我们会对JUC做一个系统的学习&#xff0c;本片将会介绍JUC的管程部分 我们会分为以下几部分进行介绍&#xff1a; 共享问题共享问题解决方案线程安全分析Monitorsynchronized锁Wait/notify模式之保护性暂停模式之生产者消费者park线程状态转换详解多锁操作活跃…

学生护眼灯怎么选择?推荐学生护眼台灯十大名牌排行榜

护眼台灯是学生们常用的照明产品&#xff0c;也是最受喜爱的护眼产品之一&#xff0c;选购一款护眼台灯要看什么指标呢&#xff1f;除了外观、价格上&#xff0c;更重要的是五个硬性标准&#xff0c;照度、显色、频闪、色温、蓝光。 为了大家更快速选择出合适的台灯&#xff0…

基于51单片机的出租车计价器proteus仿真原理图PCB

功能&#xff1a; 0.本系统采用STC89C52作为单片机 1.LCD1602液晶显示有四个状态 a) 时间显示 b) 时间设置 c) 计价器显示 d) 计价器设置 2.按键切换四个不同显示状态 3.默认为时间显示状态&#xff0c;长按’切换‘键切换至计价器模式 4.在时间显示状态下按‘设置’键可设置时…

C++类的运算符重载.md

11.8 类的运算符重载 运算符重载是一种形式的C多态 运算符重载将充值该的概念扩展到运算符上&#xff0c;允许赋予C运算符多种含义。 C允许将运算符重载扩展到用户定义类型&#xff0c;例如&#xff0c;允许使用将两个对象相加。 11.8.1 操作符重载定义 要重载运算符&#xff0…

FutureTask-详解(二)-ThreadPollExecutor-并发编程(Java)

文章目录1 FutureTask1.1 简介1.2 成员变量1.3 构造方法1.4 主要执行流程分析1.4.1 run任务执行1.4.1.1 run方法1.4.1.2 set(result)方法1.4.1.3 setException(ex)方法1.4.1.4 finishCompletion()方法1.4.2 get() 执行流程1.4.2.1 get()方法1.4.2.2 awaitDone()方法1.4.2.3 rem…