自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(88)
  • 资源 (4)
  • 收藏
  • 关注

原创 Testing and fault tolerence考试要点

DfT学习要点大纲

2023-05-14 19:01:15 459

原创 Microelectronic学习章节总结(3)-- gate level to physical level design

有关晶体管和数字逻辑设计的东西

2023-05-11 01:38:52 1148

原创 Microelectronic学习章节总结(2)-- data path和control unit设计

处理器的设计和SOC的一些部件的复习

2023-05-04 04:44:39 1018

原创 Microelectronic学习章节总结(1)-- 计算机架构复习

处理器架构复习

2023-04-29 07:12:21 1092

原创 Power Modeling and Analysis

针对CMOS逻辑电路,在晶体管上的损耗主要由两部分组成:Ptot=Pstatic+PdynamicP_{tot}=P_{static}+P_{dynamic}Ptot​=Pstatic​+Pdynamic​PdynamicP_{dynamic}Pdynamic​: The power dissipated when the circuit is active.PstaticP_{static}Pstatic​: The power disspated when the circuit is not

2022-07-01 22:51:16 260

原创 强化学习笔记(5)物理引擎ODE的使用与链接

文章目录一些废话环境安装链接一些废话笔者因为需要模拟仿真环境,但是没有找到合适的C++软件平台所以一直很苦恼,本来是想自己从头写一个物理引擎但是由于实在是东西太多了于是写了一半开始找库(后悔当初选了自己写这条路)。然后非常幸运的是找到了ODE这么一个C++开源的仿真环境于是有可以开心地搞事情了~环境Ubuntu 20.04CMake 3.16.3GCC 10.3安装从官网下载源码拿(这里最新的版本ODE 0.16.2来做例子),解压到自己喜欢的文件夹下。然后按照下面的流程一步步走,就是最简单

2022-05-03 20:49:16 1434

原创 强化学习笔记(4) 使用SWIG和CMake给C++库创建一个Python接口wrapping C++ to python

文章目录一些废话环境准备文件夹结构一些废话在实际应用中笔者被一个问题困扰了很久,就是自己的C++写的环境没办法用上python搭建的深度神经网络和一些强化学习的库(实际是C++搞深度学习实在是恶心,python实在是太香了)。在实际工程中其实也存在这样的问题,因为实际上很多应用都是用C/C++写的。尤其是一些游戏,各种物理引擎渲染都是用C++写的,而且C++接口用起来比较优雅。但是这些软件的应用都没有python接口,而且python官方提供的python语言本身的C++接口Python.h也确实用起来

2022-04-30 14:57:18 2157

原创 强化学习笔记(3)--TF==2.8 keras==2.8 tf-agents==0.12.0 环境下官网教程勘误

深度强化学习环境搭建bug记录

2022-04-20 13:26:00 2558 2

原创 强化学习笔记(2)深度学习tensorflow2.5以上版本环境安装

目前的强化学习趋势是和深度学习相结合,因此在配置环境时需要配置深度学习的那一套。这里详细描述一套可用的安装GPU开发套件和tensorflow2.6的流程。系统环境:Ubuntu 20.04显卡: MX150python版本:python 3.8pip版本: pip 20.0.2『注:有很多博主说需要装conda,这里其实并没有必要,因为确实清理起来很麻烦,而且占用空间,关键是编程环境一般笔者就用这一个了,所以其实不用也没大所谓,有些同学如果以后用python作为主要开发语言,那就装一个吧。这里就

2022-04-03 16:07:25 2455

原创 (1) Basic Terminology and Introduction

Introduction and terminology

2022-03-08 23:47:53 123

原创 强化学习笔记(1)

强化学习的大致结构和面临的一些主要问题强化学习过程中有两个互动的主体,一个是智能体(Agent)另一个是环境(Enviroment)。智能体通过观测(Observation)环境的状态(State)按照策略(Policy)做出一定的行为(Action)。然后由环境再给予智能体一个反馈奖励(Rewards),让智能体知道其行为带来的后果是好的还是不好的。智能体学习的目的就是找到一个合适的策略,在使用这种策略得到的一系列行为下,在环境中完成某个任务之后得到的累积奖赏达到最高。主要面临的问题有:可能在一

2022-02-21 00:14:58 2656

原创 Timing Modeling and Analysis

这一章我们要阐明的是如何优化逻辑电路中与时间有关的参数,首先第一步依旧是建模。在建模前需要了解几个重要的参数,这几个参数需要在咱们的模型中进行表述。arrival time::一个给定信号准备好的时间点required time:某个操作准备下一个节点所需的数据所需要的时间slack:实际arrival time和预先估计好的arrival time之间的差(这部分时间可以进行调节)图Fig1为一个模型例子,齐总圆形和方形的节点表示信号准备好的时间 i.e arrival time.连接各个节点

2021-04-06 06:26:14 446

原创 Multi-level Optimization (Algeraic & Boolean)

这一章需要阐明的是另一个不同的优化思路 multi-level optimization,这个方法与2-level optimization的区别在于其对逻辑电路的表达方式。2-level之所以叫做2-level是因为其表达式中只有两个层级,i.e 表达式的形式为( )+( )+…,其中()里的一定是一个单项式(monomial)。而multi-level则会有不止一个层级 i.e ()中可能是一个被使用公因子合并后的多项式,i.e (()()…())+(()()…())+…的形式。使用逻辑结构图来表示如下

2021-04-06 01:02:20 1019

原创 2 level optimization

在刚接触数字电子技术的时候我们就学过karnaugh-map用于化简复杂的组合逻辑电路,作为EDA工具处理大型组合逻辑电路自然需要告诉计算机到底要怎么去处理这种组合逻辑的化简。通常而言,除了使用karnaugh-map以外还可以使用cube notation和truth table来表示同样的组合逻辑电路,当然化简的方法和思路也会不一样。但是化简最终达成的目标是一样的:减少表达式中implicant(蕴含项)的个数减少literal(变量)的个数Cube notation如图所示即为一个组合逻辑

2021-03-20 04:11:29 1147

原创 Sharing and binding

文章目录SharingLeft-edge AlgorithmBinding这两个方案提出主要是为了解决resource占用期间的硬件冲突的问题并且减少对硬件资源的使用。Sharing的主要思想是同一个硬件资源给同一类操作轮流使用,而binding则是将不同的操作绑定到与其功能相适应的硬件上。显然对于binding问题而言,一类操作可以对应不同结构而功能相同的实体硬件。为了方便描述这些问题,这里引进了Compability modeling 和Conflict modeling两个模型。如图Fig1所示,

2021-03-17 21:22:42 425

原创 Scheduling

这一节中将要介绍的是集成电路优化中的Scheduling。这一部分主要的工作是安排灭一部操作的顺序,使得其可以充分利用时间和芯片上的资源。为了更直观地表达,这里选用的model是Sequencing DFG.在scheduling的过程中,在实际应用中会有各种各样的限制,主要的限制有时间,片上资源,area等。基本的Scheduling算法有ASAP和ALAP。其算法如下Fig1中伪代码所示。Fig1 ASAP and ALAPASAP的主要思想是先将启示的节点固定,然后在下一个时钟周期内安排上所

2021-03-17 05:05:53 1847

原创 Hardware Modeling

目录logic networksstate diagramsDataflow Graphs对于硬件的建模其实有很多方式,前面一章中提到了的有使用HDL进行建模,当然硬件建模肯定不仅仅限于这一种方式。建模方式往往是根据需求来进行选择。为了方便分析系统的性能抑或是方便理解优化表达逻辑使用的硬件布局方式,这里使用了abstract model。这一类模型和HDL model一样可以分为不同的抽象等级,这里着重介绍在logic-level 下和architectural/RT-level 下的几个模

2021-03-16 08:31:19 794

原创 Introduction

目录微电子设计主要平台和实现方式微电子设计流程简介模型抽象(modeling abstraction)微电子设计主要平台和实现方式目前而言对于集成数字电路的设计来说主要的技术有两种一种是ASIC另一种是FPGA。 这两者虽然说表达的逻辑一样而且也是芯片设计,但是这两种方式在物理层面上实现的方式不同。组成ASIC的单元是MOS晶体管,目前来说主要的工艺有CMOS和FINFET。而FPGA设计则是大批量生产ASIC之前的工作。一般而言会先使用FPGA进行prototype的设计,如果测试

2021-03-16 05:40:03 196

原创 学习日志之microelectronic(13)——SPICE语言

1

2020-05-29 17:12:48 4711

原创 学习日志之PCB电路设计

这几天突然想起来系统学习了一下PCB设计,原先本科的时候虽然有用过一段时间,但是都是自己完全从零摸索出来的东西。不是很系统,对整个设计的流程也不是很清楚,这两天主要就做了这么一些工作。接下来几天打算自己做实验,慢慢把efes的整个系统一步一步做出来最终希望能做出一块开发板什么的。1. 元件原理图库的操作在这里主要遗漏的知识点是原理图库的导入。这个可以直接从别人设计的原理图文件中导出一个原理图库,并且复制粘贴到自己的原理图库中。其操作是design->make schematic library

2020-05-24 07:42:00 1750

原创 市面主要办公用手写平板对照(学生党看过来)

(注:这不是恰饭贴)最近琢磨着想换一台平板设备,因为之前买的华为 M5 青春版用不了谷歌,在尝试过各种网上姿势想解锁google play都没有成功,用了一个替代应用商店APKPure来解决这个问题。但是很多应用在这里都不提供下载,尤其那些制作优良的付费应用。有时候得花很长时间来找破解版才能搞定(虽然我也不想付费,但是实在是为了省时间不太想麻烦)。而且在作为留学党学校也有自己的客户端APP这些在华为自带的应用商店里都是下载不了的。所以对此作为一个万年白嫖党真的心累。。。光是找这个APKPure都用了我很

2020-05-22 07:10:10 4205

原创 学习日志之synthesis and optimization(10)——TCL

TCL是一种解释性语言,其工作流程主要分为两个阶段:分析和执行。在分析阶段解释器将TCL语句运用规则划分为独立的单词,同时对其中某些字符或者内容进行必要的替代;在执行阶段,解释器将第一个单词作为命令名,查看是否会有定义,然后将其对应为相应的C/C++过程。并把所有单词作为参数传递给该命令过程,让命令过程进行处理。这个TCL的替代主要分为三种:变量替换,命令替换和反斜杠替换。> 变量替换变量替换是为了将单词中的某些字母看做变量然后用其值进行替换,例如:set x 1set y $x+

2020-05-20 07:18:11 226

原创 学习日志之synthesis and optimization(9)——multi-level optimization

在2level optimization中的优化实质上最终目的是使得这个逻辑函数的表达式尽量少包含项。这样做可以尽可能在进行结构综合时使逻辑电路并行运行。但是显然在实际应用中不会这么简单,同时需要考虑的还有电路的电路的规模,延迟时间以及能耗等参数,所以为了综合考虑我们可以选择multi-level optimization。这个方法可以给我们找到更多的选择,然而对于multi-level中internal node可以使用2 level optimization中类似的方法,例如espresso-hueri

2020-05-20 06:51:36 355

原创 学习日志之software engineering(15)——integration testing

在工程中,每个Unit都是一个独立的个体,但是在某些Unit之间会存在一些dependency导致这些Unit在测试时需要进行处理才能从整个系统中给分离出来单独测试。其中Unit在不同类语言中表示的东西也不同,比如在procedual languages(面向过程的语言)中其表现为function,而在oo language(面向对象的语言)中表现为类以及类中的methods。要知道是否在各个unit之间存在有dependency,我们需要画出dependency graph,如下右边所示:其中f1的运行就

2020-05-17 06:11:36 396

原创 学习日志之software engineering(14)——黑白盒测试

V&V过程要处理的对象是Failure,Fault和DefectFailure是由一个或多个Fault引起的,其结果是用户运行程序得到的结果不理想。Fault可能会引起Failure但是也可能不引起,其发生的原因是和需求文件不对应或者是软件写得很辣鸡Defect是Fault和Failure的总称,进行V&V的过程就是要将这个玩意给消灭掉使程序按照requirement里走。这个过程是越靠前所需要的成本就越低。消除Defect的方式之一就是testingTesting的分类

2020-05-16 07:20:25 594

原创 学习日志之synthesis and optimization(8)——heuristic优化工具

需要知道的一些背景知识令一个逻辑函数为对于其中一个变量的cofactor记为:(在f中将取为1)对于其中一个变量的cofactor记为:(在f中将取为0)Boole's expansion theorem:(即用cofactor来表示函数)函数的单调性(unateness):称为positive unate;称为negative unate如果函数中所有的变量都是positive unate或者是negative unate的,那么就称这个函数是positive unate...

2020-05-13 14:27:52 702

原创 学习日志之synthesis and optimization(7)——Heuristic optimization

这类方法的主要思想就是从一个函数的任意一个出发点开始在邻域取值,寻找更优点,逐渐逼近最小值。这个方法有一个明显明显的问题就是容易陷入局部极小值点。所以对于整个问题的步骤主要分为两个部分,一部分是逼近极小值,另一部分是使函数取值跳出极小值的坑,寻找最小值。需要完成这些步骤我们需要三个operator:expand operator irredundant operator reduce operator其中前两个是为了取到局部最小,而reduce operator是为了跳出局部最小而取到全局最小值

2020-05-11 07:16:17 519

原创 学习日志之synthesis and optimization(6)——逻辑优化

需要明确的一些概念minterm: 立体卡诺图的顶点,表示的是在真值表中输出为1的点implicant: 由minterm组成,一个implicant中可以蕴含多个minterm,按照合并同类项的原则进行合并cover: implicant的合集minimum cover: 用最少的impliment表示的boolean函数(全局最优) irredundant cover: 这里虽然不是用implicant最少的cover但是其是有包括所有的minterm的,而且去掉其中任意一个都会造成有

2020-05-09 06:45:15 1906

原创 学习日志之synthesis and optimization(5)——逻辑化简基础概念

目标1. 最小化area2. 优化IO之间的延迟和时序逻辑寄存器到寄存器之间的延迟3. 最小化功耗各种术语和表示方法之类的前提背景boolean函数二进制:B={0,1}单输出函数:多输出函数:不完全映射(有一些在输出中不关心的值*):标量函数NO-set:在映射中映射结果为“1”的子集 OFF-set:在映射中映射结果为“0”的子集 DC-...

2020-05-07 05:25:29 353

原创 学习日志之software engineering(13)——Validation & Verification

这个过程是在编程完成之后对程序进行的一系列检查,其中validation是在用户的角度,从产品的外部进行检查,系统是否可靠,是否对用户有价值。而verification是从产品的内部检查其内部的结构是否输出正确预想的值。前者的对象是stakeholder而后面的对象是designer。我们进行V&V过程的目的是为了减少defect,之前有讲过fault和failure的概念,这里defe...

2020-05-04 05:26:51 473

原创 学习日志之Microelectronic(12)——VHDL无限制综合和有限制综合

VHDL的综合的意义在于将程序转变为实际的电路,在实际的电路中各个元器件都会有参数和限制使得其运行并不会那么完美。所以为了得到更实际的电路并且了解逻辑电路细节的性能信息,我们需要synthesis这个步骤来生成各种不同的report。在这一步中编译器的功能还有一个就是对实际的电路进行优化,这就是synthesis and optimization中的内容了。在synopsys可运行的脚本程序以及...

2020-05-03 18:05:54 531

原创 学习日志之microelectronic(11)——对register file的一些理解

所谓register file就是一大堆连在一起的寄存器,对于单个的寄存器,寄存器有两个端,一个是用于读(输出)一个用于写(输入)每一个时钟周期来临的时候都会将寄存器中的数据更新成为当前的输入,而在输出端则可以见到当前寄存器中的值。常用的寄存器结构如下所示,其中load引脚用于选择寄存器是更新还是保值:为了把寄存器都连起来寄存器堆的结构如下所示,W_addr用于选择寄存器输入的端口,即选择输入...

2020-05-02 06:10:16 1967

原创 学习日志之software engineering(12)——项目管理

在项目管理过程中有很多东西需要我们去量化,从而达到对项目进度代码质量的把控和预测估计。在iinception过程中也需要很多的参数对整个开发过程进行估计从而给买家提供信息。对于开发过程主要有以下指标:- time重点在于一个calendar time。其中就包括了一个相对时间和绝对时间的表示,相对时间一般对时间的把控比较松散,适用于计划之中,而绝对时间大多用于对整个过程的把控上。- eff...

2020-05-01 06:41:45 206

原创 学习笔记之software engineering(11)——项目管理

需要明白的一些概念项目管理需要做的事情主要就是对未来的工程进行的一些规划,主要需要规划的有需要做的事情的工作量和进度的把控以及项目进行中的各种分工。在项目开始时还没有和buyer签合同时需要先对项目有一个大概的构思,这个阶段称为inception phase,一般来说这个阶段vendor会吹点牛什么的来保证这个项目能够拿下来,但是实际情况可能不会那么理想。这个玩意确定了commercial pr...

2020-04-30 05:50:05 301

原创 学习日志之software engineering(10)——用文字表述UML

如何在markdown中添加uml图在markdown中添加UML图有固定的格式,这个功能是由plantuml提供的。plantuml可以将UML语言自动转换为UML图,其转换结果可以在plantuml网站上查看。在markdown中添加UML需要有以下格式```plantuml(此处添加UML代码)```UML基础语句有以主要有下面的语句1. UML语句的开始和结束...

2020-04-27 07:11:34 252

原创 学习日志之arm汇编遗漏基础补充

ARM processors are typical of RISC processors in that only load and store instructions can access memory. Data processing instructions operate on register contents only.All ARM instructions are 3...

2020-04-24 06:30:35 255

原创 学习日志之microelectronic(10)——CMOS逻辑

CMOS逻辑介绍CMOS(complementary MOS)是由PMOS和NMOS组成的逻辑电路,和门电路不同,这种电路的逻辑实现是用MOS管的开关特性实现的。其可以用相对较少的transistor实现逻辑运算和表达。而常用的与非门(NAND)和或非门(NOR)就是CMOS实现的一种逻辑而已。在CMOS技术中PMOS和NMOS相当于两种不同的开关电路其S和D极之间的导通由G极来控制,其这...

2020-04-22 07:18:02 1743

原创 学习日志之microelectronic(9)——debug笔记

今天DEBUG失败,最终的程序还是被deadline打败了,今天主要的收获只有这么几个:1. 对于整个carry generator的结构的理解上来说,有一排是比较特殊的,即由ai,bi 生成Gi和Pi的过程。这一排出来之后可以直接转变为和,然后再由这一层生成后面的和如下图所示,后面两个是在有进位的情况下用的,如果没有,把g0设为0。2. 对于这个还有一个问题就是生成最终的进位结果的问...

2020-04-15 07:53:28 139

原创 学习日志之stm32固件库(2)

工具链toolchain是一系列程序编辑编译等功能工具的集成编译环境。一个编译环境中集成了多种和程序开发相关的工具,这些工具按照工作流程进行排列,前一个工具的输出是后一个工具的输入,因此而成为toolchain.软件开发的工具链主要由以下几个部分组成:编译器 连接器(将源代码/目标代码转换成可执行程序档) 库(提供与操作系统之间的界面) 调试器目前stm32f4系列支持的工具链...

2020-04-15 07:11:59 299

原创 学习日志之synthesis and optimization(4)——banding and sharing

一个设计好的电路经过调度算法之后可以避免在时间上的一些限制,但是前面说的算法并没有涉及到硬件资源方面的constrains。在这里主要是开始进行资源的分配,这个过程在空间域上进行的资源与操作的绑定和分享。当然实际情况下并不仅仅需要考虑单一的时间域限制或是仅考虑空间域限制。而是需要两者同时考虑。要充分描述一个电路结构就需要以下一些元素:1. 资源(resorces):用于在电路中实现各种算法...

2020-04-13 08:14:32 179

都灵理工大学MicroelectronicSystem复习笔记

用onenote打开

2021-07-15

学习日志之microelectronic(13)——logic family.pdf

关于微电子中logic family的课程笔记,包括CMOS,PSUEDO NMOS, DCVSL, DOMINO和由NMOS和PMOS元件组成的时序逻辑电路flip-flop

2020-05-06

UADD8_USAD8_SMUAD_SMUSD.rar

用keil5打开工程,或者自行提取里面的.s文件。这里包括了直接调用寄存器传递参数的方法,用memory传递参数的方法,用堆栈传递参数的方法。以及子程序调用例程实现UADD8、USAD8、SMUAD、SMUSD函数

2020-04-26

任意矩阵相乘.zip

用keil5打开工程,或者自行提取里面的.s文件。

2020-04-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除