面试

FPGA时序约束理论篇之时序路径与时序模型

三世轮回 提交于 2020-11-14 11:42:16
时序路径   典型的时序路径有4类,如下图所示,这4类路径可分为片间路径(标记①和标记③)和片内路径(标记②和标记④)。   对于所有的时序路径,我们都要明确其起点和终点,这4类时序路径的起点和终点分别如下表。 时序路径 起点 终点 应用约束 ①输入端口到FPGA内部第一级触发器的路径 ChipA/clk rega/D set_input_delay ②FPGA内部触发器之间的路径 rega/clk regb/D create_clock ③FPGA内部末级触发器到输出端口的路径 regb/clk ChipB/D set_output_delay ④FPGA输入端口到输出端口的路径 输入端口 输出端口 set_max_delay ①输入端口到FPGA内部第一级触发器的路径 ChipA/clk rega/D set_input_delay ②FPGA内部触发器之间的路径 rega/clk regb/D create_clock ③FPGA内部末级触发器到输出端口的路径 regb/clk ChipB/D set_output_delay ④FPGA输入端口到输出端口的路径 输入端口 输出端口 set_max_delay   这4类路径中,我们最为关心是②的同步时序路径,也就是FPGA内部的时序逻辑。 时序模型   典型的时序模型如下图所示,一个完整的时序路径包括源时钟路径

漫画:如何将一个链表“逆序”?

走远了吗. 提交于 2020-11-14 11:33:11
漫画:如何将一个链表“逆序”? ————— 第二天 ————— (现实里的小灰在刚入行的时候,面试官也问了我这个问题,当时小灰就傻傻的问面试官是单链表还是双链表?然后就没然后了......) ———————————— 让我们从链表头部开始,建立三个临时节点的引用,分别为p1,p2,p3。它们分别指向头节点、第二个节点、第三个节点。 实现链表逆序的完整步骤如下: 1.以p2节点为视角,把p2节点原本指向p3的next指针倒转,指向p1。 2.三个临时节点引用p1,p2,p3分别向后移动一格位置。 3.重复第1步的工作,以p2节点为视角,把p2节点原本指向p3的next指针倒转,指向p1。 4.重复第2步的工作,三个临时节点引用p1,p2,p3分别向后移动一格位置。 ....... ....... 5.继续像这样子迭代下去,一直到p2是空为止。 6.最后,把head节点的next指向空,成为逆序链表的尾节点。并且把p1赋值给head,让p1所在的节点成为逆序链表的头节点。 private static Node head; public static void reverseLinkedList(){ if(head==null || head.next==null){ return; Node p1 = head; Node p2 = head.next; Node p3 =

技术人员成长的坑

╄→尐↘猪︶ㄣ 提交于 2020-11-14 11:22:09
在软件和互联网行业做了 20 多年,结合自己的成长过程和看到的其他人的成长过程,谈谈我的感受,希望能够对在技术上发展不同阶段的人有所启发。如果有疑问,大家也可以消息我,或者加我微信讨论。 对于入行的新人 1 . 切记不要太追求安逸,把他人的果实当作自己的能力 大家都是从新人进入到这个行业的,软件这个行业可以说很浅,很容易,也可以说很难,很深。很浅,很容易,因为现在的框架和工具太多了,让编程变得越来越容易,比如做 GUI ,之前有 VB 这种拖拉编程模式,现在的 IOS 和安卓也是控件拖拉方式。如果做 WEB 前端, 之前的 jquery 和现在的 VUE 都有很多组件框架,都非常强大和漂亮,而且网上还有很多例子代码,让工作变成了拷贝粘贴流程。如果做后台,现在很多功能强大的中间件,都不需要自己去写 SQL ,就可以完成很多事情。现在的一线大厂也是分工细化,基础架构的东西也是由核心团队负责的,多数人都是在写业务代码,当然写业务代码不代表不会有技术含量,看你怎么去发现,有兴趣请参看 ” 写好业务代码的难点在哪里 ” 。 长期做这种简单重复式的开发导致和基础的东西脱离太久,很多人连 SQL 都忘记了,更谈不上 SQL 性能的优化,也就导致很多人错误的认为基础知识无用。框架这些东西是变化无穷的,但基础的东西是基本上不变的。要走的远,必须去理解这些底层的不变的东西,才能真正的做到以不变应万变

FPGA时序约束理论篇之时序路径与时序模型

若如初见. 提交于 2020-11-14 11:21:08
时序路径   典型的时序路径有4类,如下图所示,这4类路径可分为片间路径(标记①和标记③)和片内路径(标记②和标记④)。   对于所有的时序路径,我们都要明确其起点和终点,这4类时序路径的起点和终点分别如下表。 时序路径 起点 终点 应用约束 ①输入端口到FPGA内部第一级触发器的路径 ChipA/clk rega/D set_input_delay ②FPGA内部触发器之间的路径 rega/clk regb/D create_clock ③FPGA内部末级触发器到输出端口的路径 regb/clk ChipB/D set_output_delay ④FPGA输入端口到输出端口的路径 输入端口 输出端口 set_max_delay ①输入端口到FPGA内部第一级触发器的路径 ChipA/clk rega/D set_input_delay ②FPGA内部触发器之间的路径 rega/clk regb/D create_clock ③FPGA内部末级触发器到输出端口的路径 regb/clk ChipB/D set_output_delay ④FPGA输入端口到输出端口的路径 输入端口 输出端口 set_max_delay   这4类路径中,我们最为关心是②的同步时序路径,也就是FPGA内部的时序逻辑。 时序模型   典型的时序模型如下图所示,一个完整的时序路径包括源时钟路径

FPGA时序约束理论篇之时序路径与时序模型

[亡魂溺海] 提交于 2020-11-14 11:20:55
时序路径   典型的时序路径有4类,如下图所示,这4类路径可分为片间路径(标记①和标记③)和片内路径(标记②和标记④)。   对于所有的时序路径,我们都要明确其起点和终点,这4类时序路径的起点和终点分别如下表。 时序路径 起点 终点 应用约束 ①输入端口到FPGA内部第一级触发器的路径 ChipA/clk rega/D set_input_delay ②FPGA内部触发器之间的路径 rega/clk regb/D create_clock ③FPGA内部末级触发器到输出端口的路径 regb/clk ChipB/D set_output_delay ④FPGA输入端口到输出端口的路径 输入端口 输出端口 set_max_delay ①输入端口到FPGA内部第一级触发器的路径 ChipA/clk rega/D set_input_delay ②FPGA内部触发器之间的路径 rega/clk regb/D create_clock ③FPGA内部末级触发器到输出端口的路径 regb/clk ChipB/D set_output_delay ④FPGA输入端口到输出端口的路径 输入端口 输出端口 set_max_delay   这4类路径中,我们最为关心是②的同步时序路径,也就是FPGA内部的时序逻辑。 时序模型   典型的时序模型如下图所示,一个完整的时序路径包括源时钟路径

三步一坑五步一雷,高速成长下的技术团队怎么带?

谁说胖子不能爱 提交于 2020-11-14 10:16:24
本文根据肖鹏老师在〖deeplus直播第248期〗线上分享演讲内容整理而成。 (文末有获取本期PPT&回放的方式,不要错过) ​ 目前我在贝壳找房负责数据库、大数据和机器学习方面的工作。贝壳成立两年左右,前不久刚刚上市,它也仍然处在高速成长的时期,所以本次结合我团队管理的经验,给大家分享高速成长的技术团队管理以及管理重点。 一、人成长的因素 想要管理好一个团队,不能一股脑地只盯着管理方法看,更需要分析管理背后的因素,而我认为因素中更多涉及到“人”。做管理其实就是管人和事,而事都是安排人去完成的,所以归根到底管理还是解决人的问题。 技术人员有非常明确的特点,他们对于成长的诉求非常强烈,有的时候甚至对自己的成长的关注远大于对薪酬的要求。所以我们需要关注帮助人成长的诸多因素,这才是管理的根源所在。 人的成长因素主要分为两方面,一个是内因,偏向认知层面,涉及到我们如何认知自己、认知世界;而另一个是外因,偏向环境层面,涉及到更多是物理与现实的问题。 1、内因 谈到内因,就不得不说到经典的马斯洛需求理论,从低往高看: 生理需求对大家来说一般不成问题,只是对在997公司工作的同学来说“睡觉”这个因素是个命题; 在安全需求层面,技术人员更多的是对职业生涯、职业价值的安全感体会; 到归属层面,在工作中还是以战友般的友情为主,关注能否与同事、公司形成感情上的联系; 再往上到尊重层面,涉及到自尊、信任

大厂高频面试题-连续登录问题

梦想的初衷 提交于 2020-11-14 04:02:13
1 背景 对于数据开发人员来说,手写sql是比较熟悉的了,就有这样一道题,面试时需要手写sql,这就是非常经典的连续登录问题,大厂小厂都爱问,这种题说简单也不简单,说难也不难,关键是要有思路。 2 真题 hql统计连续登陆的三天及以上的用户 这个问题可以扩展到很多相似的问题:连续几个月充值会员、连续天数有商品卖出、连续打车、连续逾期。 数据提供 用户ID、登入日期 user01,2018-02-28 user01,2018-03-01 user01,2018-03-02 user01,2018-03-04 user01,2018-03-05 user01,2018-03-06 user01,2018-03-07 user02,2018-03-01 user02,2018-03-02 user02,2018-03-03 user02,2018-03-06 输出字段 +---------+--------+-------------+-------------+--+ | uid | times | start_date | end_date | +---------+--------+-------------+-------------+--+ 3 群内讨论 这道题在群里发出后,大家就展开了激烈的讨论: 4 解决方案 可以看出来,有很多种不同的解决方案。

深入理解:一文讲透RabbitMQ

浪尽此生 提交于 2020-11-14 01:34:09
点击蓝色“ 黎杜编程 ”关注我哟 加个“ 星标 ”,每天上午 09:25,干货推送! 关于RabbitMQ 出身:诞生于金融行业的消息队列 语言:Erlang 协议:AMQP(Advanced Message Queuing Protocol 高级消息队列协议) 关键词:内存队列,高可用,一条消息 队列结构 Producer/Consumer:生产者消费者 Exchange:交换器,可以理解为队列的路由逻辑,交换器主要有三种,图中是Direct交换器 Queue:队列 Binding:绑定关系,实际是交换器上映射队列的规则 发送和消费一条消息 在上图的模式下,交换器的类型为Direct,伪代码表示消息的生产和消费 消息生产 #消息发送方法 #messageBody 消息体 #exchangeName 交换器名称 #routingKey 路由键 publishMsg(messageBody,exchangeName,routingKey){ ...... } #消息发送 publishMsg( "This is a warning log" , "exchange" , "log.warning" ); RoutingKey=log.warning,和队列A与交换器的绑定一致,所以消息被路由到了队列A上。 消息消费 对于消息消费而言,消费者直接指定要消费的队列即可

凭借这份面经,大专的我成功拿到腾讯Android岗offer

余生颓废 提交于 2020-11-13 21:52:51
一、简历 网上有很多对程序员简历的一些指导,这里就不重述,大家可以搜下网上其他大神的总结,结合自身情况修改下。我有几点建议: 1.尽量不要花哨,程序员和设计师或者产品运营还不一样,我们的简历成功与否决定权还是在技术面试官那,而他们看重的是你的项目经验内容和技术等描述。 2.技能描述这块尽量只写你懂得而且理解深刻的,可以适当加入一些新技术或流行框架,不过这块需要理解,没来得及看源码的可以看看大神们对它的总结,网上一大堆。 3.项目经验这块尽量加入关键词,比如使用了什么技术、用到哪些设计模式、优化数据对比、扩展总结之类的。而非一味地介绍这个项目内容(那是产品经理的描述),比如性能优化这块,分为UI性能优化、内存优化、数据库优化、网络优化、耗电优化等等。可以从1.如何发现问题,2.怎么解决问题,3.解决效果对比,这几个方面去描述。举个简单例子——UI优化,可以从 UI出现什么问题(卡顿不流畅),怎么查找问题(手机开发者权限>GPU过度绘制 发现层级问题,TraceView CPU使用情况分析),怎么解决问题(降低层级、自定义View绘图出现问题等),解决问题后性能再次对比。 二、技能储备 (一)架构师必备Java基础 (二)设计思想解读开源框架 (三)360°全方位性能优化 (四)Android框架体系架构 (五)NDK模块开发 (六)Flutter学习进阶 (七)微信小程序开发 (一

万人低头时代,如何保障APP无线网络性能?

痞子三分冷 提交于 2020-11-13 20:52:49
摘要: 在本次蚂蚁金服与阿里云联合举办的在线金融技术峰会上,嘉宾心武与大家分享了支付宝APP近几年在无线网络方面所做的实践。 本文整理自心武的分享,在这个万人低头时代,对于大型APP而言其无线网络性能足以决定其市场地位,在应对业务差异化需求,复杂的无线网络环境等问题上,支付宝APP是如何保障无线网络性能的呢? 1. 背景概述 首先看一个典型案例:用户用完餐后,使用支付宝扫码进行支付,但因网络不稳定导致数次支付失败,最终只能选择现金结账。很多用户会对这样的案例有一定的感触,可能在日常生活中经常遇到,而这对于无线网络的技术研发人员而言,却无法容忍的。设想一下,如果一个APP的无线移动网络失败率降低千分之一,会产生怎样的效应? 如果以每天一亿笔无线交易进行计算的话,失败率降低千分之一,那么每天成功交易数会增加10万笔,一年就能挽回3到4千万笔的交易,由此可以看出无线网络通讯对于APP的重要性。 在我们团队内部有一个很好的比喻 :将一个APP比作一棵树,把树根看做是整个Server端的业务服务,将树根和树枝比作是APP的业务功能,那么这棵树的树干就是无线网络通讯,它是端到端的连接,是用户服务触达的通道,也是用户体验的保障。 同时我们也意识到不同的APP对于无线网络的需求级别也不相同,所以给出的建议是按照用户量进行划分。 对于无线网络的挑战,出现在端到端的通讯过程