par

FPGA笔试必会知识点2—FPGA器件

自作多情 提交于 2020-04-30 01:45:28
FPGA笔试必会知识点2—FPGA器件 FPGA 综合工具并不一定保证能够充分利用芯片结构特点以达到最优目的而且工具本身也不一定非常智能,因为设计本身是复杂多样的且一直在变化,问题总会越来越多,因此在这种情况下,我们必须 了解我们的器件结构 , 了解我们的设计是如何实现的 , 它是否充分利用到了FPGA里面的特有资源 :如进位链shift register IOB中的register等。如果没有,则应当想办法充分利用,如修改代码,以适合FPGA结构特性或者采用coregen生成的module等。这在许多场合是一个非常行之有效的手段。 FPGA芯片基本结构 参考《Altera FPGA/CPLD 设计基础篇》 FPGA芯片基本由6个部分组成: IOB可编程输入输出单元; CLB基本可编程逻辑单元; 嵌入式RAM; 丰富的布线资源; 底层嵌入式功能单元:PLL/DCM/CPU/DSP/乘法器等; 内嵌专用硬核:SERDES等; IOB可编程输入输出单元 完成不同电气特性下对输入/输出信号的驱动与匹配需求,可以设置IO的匹配阻抗特性、上下拉电阻、驱动电流大小等; CLB基本可编程逻辑单元 Altera的FPGA一般是基于SRAM工艺的,基本可编程单元几乎由查找表LUT和寄存器组成。查找表LUT一般为4输入,完成纯组合逻辑功能,寄存器可以配置为带同步/异步复位或置位,时钟使能的触发器

设计模式——统一建模语言UML

半城伤御伤魂 提交于 2020-04-26 09:43:55
[TOC] 在一个现代化的工程中,人们要相互沟通和合作,就必须使用 标准的工业化设计语言 对待开发的产品进行建模 建模过程 把复杂的问题分解成为易于理解的小问题 ,以达到问题的求解;其目的是 把所要设计的结构和系统的行为联系起来 ,并 对系统的结构进行可视化控制 一、UML的结构 1.1视图 用户视图:以 用户的观点 表示系统的目标,是所有视图的核心,该视图 描述系统的需求 结构视图:表示 系统的静态行为 ,描述系统的静态元素,如包、类与对象,以及它们之间的关系 行为视图:表示 系统的动态行为 ,描述系统的组成元素,如对象在系统运行时的 交互关系 实现视图:表示 系统中逻辑元素的分布 ,描述系统中物理文件以及它们之间的关系 环境视图:表示 系统中物理元素的分布 ,描述系统中硬件设备以及它们之间的关系 1.2图 用例图:对应 用户视图 。用例图 通过用例来表示系统的功能需求 。用例图用于表示 多个外部执行者与系统用例之间以及用例与用例之间的关系 。用例图与用例说明文档是常用的需求建模工具 类图:对应 结构视图 。类图 使用类描述系统的静态结构 。类图 包含类和它们之间的关系 ,它描述系统内所声明的类,但它没有描述系统运行时类的行为 对象图:对应 结构视图 。对象图是 类图在某一时刻的一个实例 ,用于表示类的对象之间的关系 状态图:对应 行为视图 。状态图

用 C 语言开发一门编程语言 — 基于 Lambda 表达式的函数设计

南楼画角 提交于 2020-04-12 16:52:14
目录 文章目录 目录 前文列表 函数 Lambda 表达式 函数设计 函数的存储 Lambda 函数 父类环境 可变的函数参数 前文列表 《 用 C 语言开发一门编程语言 — 交互式解析器 》 《 用 C 语言开发一门编程语言 — 跨平台的可移植性 》 《 用 C 语言开发一门编程语言 — 语法解析器 》 《 用 C 语言开发一门编程语言 — 抽象语法树 》 《 用 C 语言开发一门编程语言 — 异常处理 》 《 用 C 语言开发一门编程语言 — S-表达式 》 《 用 C 语言开发一门编程语言 — Q-表达式 》 《 用 C 语言开发一门编程语言 — 变量元素设计 》 函数 函数是所有程序设计的关键,其本质源自于一个数学概念,有了函数之后,程序员就可以只考虑它的意义,而不用考虑它的内部结构。在计算机科学的早期,程序员会将复杂的任务分解成一个个小的函数。那时就有人提出了一个设想:只要有足够的时间,程序员们就可以建立一个完整的函数库,以此满足所有计算的要求。当然,现今为止这个设想仍未预见有实现的苗头,主要是因为随着科技的发展计算问题也越发复杂。但很显然的,现在所有受到欢迎的编程语言都有这个趋向,提供更多的库,更好的代码重用率,更好的抽象,让我们的工作更简单。Python 就是一个非常好的例子。 Lambda 表达式 Lambda 表达式(Lambda Expression

十二种排序包你满意(冒泡、插入、归并、快速排序等包含希尔和计数排序)

纵然是瞬间 提交于 2020-04-12 15:27:34
前言 排序算法在计算机科学入门课程中很普遍,在学习排序算法的时候,涉及到大量的各种核心算法概念,例如大O表示法,分治法,堆和二叉树之类的数据结构,随机算法,最佳、最差和平均情况分析,时空权衡以及上限和下限,本文就介绍了十二种排序算法供大家学习。 简介 排序算法是用来根据元素对应的比较运算符重新排列给定的数组的算法,输出的数组是一个根据比较符从小到大或者从大到小依次排列的数组。比较运算符是用于确定相应数据结构中元素的新顺序,比如在整数数组里面,对应的比较符号就是大于或者小于号,用户也可以自己定义对应的比较运算符。 比如如果输入是 [4,2,3,1] ,按照从小到大输出,结果应该是 [1,2,3,4] 特性 稳定性 如果在数组中有两个元素是相等的,在经过某个排序算法之后,原来在前面的的那个元素仍然在另一个元素的前面,那么我们就说这个排序算法是稳定的。 如果在排序之后,原来的两个相等元素中在前面的一个元素被移到了后面,那么这个算法就是不稳定的。 比如排序之前数组为 [3(a),2,3(b)] (其中 a 和 b 分别代表两个不同的 3 ),经过某个排序算法之后是 [2,3(a),3(b)] ,那么这个算法就是稳定的;如果变成了 [2,3(b),3(a)] ,那么这个算法是不稳定的。 再比如在按照身高排队去食堂打饭的过程中,小明和小刚的身高都是170,原来小明在小刚前面

十二种排序包你满意(冒泡、插入、归并、快速排序等包含希尔和计数排序)

左心房为你撑大大i 提交于 2020-04-12 11:16:34
前言 排序算法在计算机科学入门课程中很普遍,在学习排序算法的时候,涉及到大量的各种核心算法概念,例如大O表示法,分治法,堆和二叉树之类的数据结构,随机算法,最佳、最差和平均情况分析,时空权衡以及上限和下限,本文就介绍了十二种排序算法供大家学习。 简介 排序算法是用来根据元素对应的比较运算符重新排列给定的数组的算法,输出的数组是一个根据比较符从小到大或者从大到小依次排列的数组。比较运算符是用于确定相应数据结构中元素的新顺序,比如在整数数组里面,对应的比较符号就是大于或者小于号,用户也可以自己定义对应的比较运算符。 比如如果输入是 [4,2,3,1] ,按照从小到大输出,结果应该是 [1,2,3,4] 特性 稳定性 如果在数组中有两个元素是相等的,在经过某个排序算法之后,原来在前面的的那个元素仍然在另一个元素的前面,那么我们就说这个排序算法是稳定的。 如果在排序之后,原来的两个相等元素中在前面的一个元素被移到了后面,那么这个算法就是不稳定的。 比如排序之前数组为 [3(a),2,3(b)] (其中 a 和 b 分别代表两个不同的 3 ),经过某个排序算法之后是 [2,3(a),3(b)] ,那么这个算法就是稳定的;如果变成了 [2,3(b),3(a)] ,那么这个算法是不稳定的。 再比如在按照身高排队去食堂打饭的过程中,小明和小刚的身高都是170,原来小明在小刚前面

ADB调试TP常用命令

浪子不回头ぞ 提交于 2020-04-10 13:16:34
ADB调试TP常用命令 https://blog.csdn.net/Clayton12321/article/details/87894749 adb打开 开发者选项->输入 调试选项 adb模拟输入事件 adb获取/更改屏幕休眠时间 adb获取/更改当前亮度值 adb打开 开发者选项->输入 调试选项 在拿到板子点亮屏后,调TP时想看效果,但移植的驱动的TP效果参数一般不是优化过的,可以通过以下两种方式打开Show taps和Pointer location([显示点按操作反馈]和[指针位置]): 调TP前先调通USB OTG功能,然后用USB鼠标打开; 通过以下adb命令快速打开: adb shell settings put system show_touches 1 adb shell settings put system pointer_location 1 这里用到了settings的属性键值对,支持get和put操作。例如后面介绍的屏幕休眠时间和当前亮度查询更改命令。 adb模拟输入事件 下面列举几个常用的调试命令,如adb模拟电源按键、adb模拟Home键、adb模拟滑动事件等: usage: input text <string> input keyevent <key code number or name> input tap <x> <y> input

括号生成

萝らか妹 提交于 2020-04-10 09:45:38
原题点这里 方法1: 通过dfs,穷举所有的可能,然后判断每一种可能,是否合法。 public static List<String> generateParenthesis( int n) { List <String> ans = new ArrayList<> (); char [] par = new char [2* n]; getAll(par, 0,2* n,ans); return ans; } public static void getAll( char [] par, int pos, int len,List<String> ans){ if (pos== len){ if (vaild(par)){ ans.add( new String(par)); } return ; } par[pos] ='(' ; getAll(par,pos +1 ,len,ans); par[pos] =')' ; getAll(par,pos +1 ,len,ans); } public static boolean vaild( char [] par){ int count =0 ; for ( int i=0;i<par.length;i++ ){ if (count<0) break ; if (par[i]=='(') count++ ; if (par[i]=

【Oracle11g】11_表分区

蹲街弑〆低调 提交于 2020-04-09 16:47:36
目录 1.传统的表分区类型 1.1 范围分区 1.2 散列分区 1.3 列表分区 1.4 复合分区 2.Oracle 11g新增的分区 2.1 引用分区 2.2 间隔分区 2.3 基于虚拟列的分区 2.4 系统分区 3.总结 3.1 增删查分区表 3.2 分区的维护 表分区: 表分区是指允许用户将一个表分成多个分区 用户可以执行查询,只访问表中的特定分区 将不同的分区存储在不同的磁盘,提高访问性能和安全性。 可以独立的备份和恢复每个分区 1.传统的表分区类型 1.1 范围分区 概念:以表中的一个列或一组列的值的范围分区 语法: PARTITION BY RANGE (column_name) ( PARTITION part1 VALUE LESS THAN(range1), PARTITION part2 VALUE LESS THAN(range2), ... [PARTITION partN VALUE LESS THAN(MAXVALUE)] ); 实战演练 -- 创建范围分区表 create table person( p_id varchar2(10) ,p_name varchar2(10) ,p_age number) partition by range(p_age) ( partition p1 values less than(18), partition

命令修复win10系统引导的方法

依然范特西╮ 提交于 2020-04-06 21:47:28
最近在装黑苹果,因为失败了导致无法进入win10,进入PE修复也不行。 解决办法:命令行修改 在计算机-管理-磁盘 压缩卷200MB 进入PE打开命令行工具 diskpart 进入磁盘管理 lis par 磁盘列表 del par override 删除 sel di 1 切换到磁盘1 cre par efi 创建efi分区 format quick fs=fat32 label=EFI ass letter=m 设置盘符 exit 退出 badboot D:\windows /s m: /f uefi 这里的D应该是win的系统 来源: oschina 链接: https://my.oschina.net/u/4139437/blog/3220748

O2OA教程-业务开发与设计-门户管理与应用包装

廉价感情. 提交于 2020-02-27 11:17:30
通过简单的拖拉设计组件方便的搭建企业门户、二级门户以及需要展示内容的页面。 一、表单设计 各面板介绍,组件面板、内容区块、dom树、样式,事件等。 各种设计组件的使用。 表单导出、表单导入,dom复制黏贴等 二、部件设计 部件相当于一个子页面,部件中元素的和页面中元素用法一致。您可以在门户有页面中插入部件或者部件内的元素。 创建部件 新建部件 选择容器元素创建 从页面/部件中,选择容器元素(Div),创建部件,容器内的元素是作为新部件的元素保存 部件的使用 插入部件 可以在页面中插入部件,如果当前页面在设计PC端,那么插入的是部件的PC模式内容;如果当前页面在设计Mobile端,那么插入的是部件的Mobile模式内容。 1、计算部件 如果使用计算部件,可以通过条件计算来插入部件。如: if ( this . page . get ( "type" ). getData () == "yes" ){ return "部件1" ; //需返回部件名称或部件ID } else { return "部件2" ; } 2、参数 可以在页面的部件属性中传参数给部件。可以通过固定值或者是脚本传参。 参数脚本 return { //如果使用脚本,需要返回参数对象 "par1" : "参数值1" , "par2" : "参数值2" } 在 部件中可以通过· this.page