Perl-统计某电路面积、功耗占比(NVDIA2019笔试)

1、perl脚本
open IN, "<", "data.txt" or die "The file does not exist!";
$line = ; # 文本总的行数
while(<IN>){
chomp;
#print("$_\n");
push(@line_array,$_); # 将文本所有行存入数组
if(/^ALU/){
push(@ALU_index,$line); # 记录ALU所在行
}
if(/^RAM/){
push(@RAM_index,$line); # 记录RAM所在行
}
$line++;
}
#print("$line\n");
#print("@RAM_index\n");
foreach (@line_array){
print("$_\n");
@elements = split(/\s+/,$_); #按空格进行切分
push(@name_array,$elements[]); #将每行的4个元素进行归类
push(@number_array,$elements[]);
push(@area_array,$elements[]);
push(@power_array,$elements[]);
}
#print("@power_array\n");
# 计算总面积
$total_area = ;
for($i=;$i<$line;$i++){
$total_area = $total_area + $number_array[$i]*$area_array[$i];
}
print("total area is $total_area\n");
# 计算RAM的面积
$RAM_area = ;
foreach(@ALU_index){
$RAM_area = $RAM_area + $number_array[$_]*$area_array[$_];
}
print("RAM area is $RAM_area\n");
$RAM_area_percentage = $RAM_area/$total_area*;
print("The percentage of RAM area is $RAM_area_percentage %\n");
close IN;
2、输出
Name: Instance_number Area-per-instance Power-per-instance
ALU-Adder: 0.0333
ALU-Multiplier 0.2235
RAM-Small 0.0542
RAM-Large 1.9312
Control 0.2344
Data-pipe 1.3423
Processor 1.0212
total area is
RAM area is
The percentage of RAM area is 61.5019903028154 %
3、涉及知识点
1)数组的基本操作:push
2)按照空白字符进行分割:split(/\s+/,$_),+表示多个空格
3)循环语句:for,foreach
Perl-统计某电路面积、功耗占比(NVDIA2019笔试)的更多相关文章
- ChineseCounter.cs 统计中文文本中常用字占比
http://www.tuicool.com/articles/qmMba2 1 using System; using System.IO; using System.Collections.Gen ...
- 用 perl 统计 fasta 文件序列的总长
#!/usr/bin/perl -w use strict; die "Usage: $0 <file>\n" unless (@ARGV == 1); my $lin ...
- 【转载】FPGA功耗的那些事儿
在项目设计初期,基于硬件电源模块的设计考虑,对FPGA设计中的功耗估计是必不可少的. 笔者经历过一个项目,整个系统的功耗达到了100w,而单片FPGA的功耗估计得到为20w左右, 有点过高了,功耗过高 ...
- Tcl与Design Compiler (七)——环境、设计规则和面积约束
本文属于原创手打(有参考文献),如果有错,欢迎留言更正:此外,转载请标明出处 http://www.cnblogs.com/IClearner/ ,作者:IC_learner 本文的主要内容是讲解( ...
- (数字IC)低功耗设计入门(六)——门级电路低功耗设计优化
三.门级电路低功耗设计优化 (1)门级电路的功耗优化综述 门级电路的功耗优化(Gate Level Power Optimization,简称GLPO)是从已经映射的门级网表开始,对设计进行功耗的优化 ...
- FPGA功耗那些事儿(转载)
在项目设计初期,基于硬件电源模块的设计考虑,对FPGA设计中的功耗估计是必不可少的.笔者经历过一个项目,整个系统的功耗达到了100w,而单片FPGA的功耗估计得到为20w左右,有点过高了,功耗过高则会 ...
- du 使用详解 linux查看目录大小 linux统计目录大小并排序 查看目录下所有一级子目录文件夹大小 du -h --max-depth=1 |grep [
常用命令 du -h --max-depth=1 |grep [TG] |sort #查找上G和T的目录并排序 du -sh #统计当前目录的大小,以直观方式展现 du -h --max-d ...
- [ACM_水题] 不要62(hdu oj 2089, 不含62和4的数字统计)
Problem Description 杭州人称那些傻乎乎粘嗒嗒的人为62(音:laoer).杭州交通管理局经常会扩充一些的士车牌照,新近出来一个好消息,以后上牌照,不再含有不吉利的数字了,这样一来, ...
- 数位类统计问题--数位DP
有一类与数位有关的区间统计问题.这类问题往往具有比较浓厚的数学味道,无法暴力求解,需要在数位上进行递推等操作.这类问题往往需要一些预处理,这就用到了数位DP. 本文地址:http://www.cnbl ...
随机推荐
- 死磕java(3)
流程控制 if else // do while// switch case// while do// break// continue// 相关查询百度
- Java中的代码点与代码单元
在Java中,什么是代码点与代码单元? 代码点(Code Point):在 Unicode 代码空间中的一个值,取值 U+0000 至 U+10FFFF,代表一个字符. 其中U+0000到U+FFFF ...
- CCF_201604-3_路径解析
没有用stack来写,直接用了字符串和指针,过程有点复杂的.首先对读入的每一个路径,判断它是绝对路径或者相对路径,然后确定起始的路径,然后继续一位位的判断,"//","/ ...
- Loj 6002 最小路径覆盖(最大流)
题意: 求不相交的最小路径覆盖 思路: 连边跑二分图,匹配一条边相当于缩了一条边,答案为n-maxflow 如果是求可以相交的最小路径覆盖的话,先用Floyd跑出可达矩阵,然后所有可达的点连边跑二分图 ...
- EMC networker nmm can restore and recover sqlserver as different name to different location
EMC networker nmm can restore and recover sqlserver as different name to different location That is ...
- 使用Redis需要注意的几点
Redis作为缓存中间件,被广泛应用在各类系统,用来提升系统性能和吞吐,下面总结几点开发人员在使用Redis时需要考虑的几个关键点: 一. key的设计 1. key命名规范:为了避免不必要的麻烦,我 ...
- spring cloud微服务快速教程之(七) Spring Cloud Alibaba--nacos(一)、服务注册发现
0.前言 什么是Spring Cloud Alibaba? Spring Cloud Alibaba 是阿里开源的,致力于提供微服务开发的一站式解决方案.此项目包含开发分布式应用微服务的必需组件,方便 ...
- centos6.5和centos7.5统一字符集为zh_CN.UTF-8解决系统和MySQL数据库乱码问题
linux的服务器需要做的操作 centos6.5下: 修改默认字符集为 zh_CN.UTF-8,如果没有中文语言包可能需要安装中文语言包支持 [root@meinv01 ~]# yum groupi ...
- 杭电-------2051Bitset(C语言)
#include<stdio.h> ] = { }; int main() { int m; ; while (~scanf("%d", &m)) { whil ...
- ab使用详解—如何使用apache性能测试工具进行压力测试
作为后端工程师,除了实现业务需求之外,需要考虑的就是自己写的服务,在大并发下是否能正常运行了.但是,在一般开发情况下,没那么多大并发情况让你测试,那该怎么办呢? 这时候,我们就可以用到apache的压 ...