我以为自己够牛逼了,直到看到了Alibaba专家的面试笔记,我学习了三个月,却入职京东,税前36K

入职京东,月薪36K

今年三月份的时候,我从上一家外包公司裸辞。那时正值疫情期间,实在受不了公司的压迫,毅然决然的选择了离职。

卧薪尝胆三个月后,才收到京东的offer,谈到了36k的月薪顺利入职。

本来那时候就打算写一份入职感受的,结果恰好是618期间,加上熟悉业务,一直都无法抽出时间来写。最近总算是抽出空来,好好来说一说。

1、两轮远程,一轮现场,HR直接过来谈薪资

现在的工作地点是在北京,而我裸辞后是回到了老家。前两轮都是进行的线上面试,进到了第三轮就要求去到现场参加面试了。依然记得,第三轮面试的时候,负责人面过之后,又找了两个人过来进行交叉面试,说实话,我当时还蛮紧张的。

不过,好在第三面完后,也许是三个负责人都比较满意,HR就来跟我谈薪资了。最后定在了36K*14。

2、我记下的面试题

具体是哪一面问的,记不很全了,大致做了以下的汇总:

  1. Java集合,ArrayList和hashmap,扩容机制
  2. concurrent hashmap的结构
  3. reentlock的机制
  4. 简述AQS的原理
  5. 线程池的参数的含义
  6. 项目中怎么使用多线程
  7. JVM内存结构和垃圾回收机制
  8. 生产遇到过JVM(内存或cpu)问题怎么解决
  9. jmap和jstack简单用法
  10. JVM的参数知道哪些
  11. mysql的myisam和innodb的区别
  12. innodb索引的结构
  13. 分库分表
  14. 分布式id生成规则
  15. Redis常见数据结构
  16. Redis的常见使用场景
  17. 分布式锁怎么实现
  18. Redis缓存血崩和缓存穿透怎么处理
  19. mq用过哪些
  20. mq怎么解决消息不丢失和不重复
  21. Spring aop的一个a方法调b方法的问题
  22. spring mvc的流程
  23. spring cloud eruka的服务注册和发现的流程
  24. hystrix的机制
  25. 算法题:从一个十亿的文件中查找某一个字符串
  26. 现在系统的服务架构,深入研究过哪个框架或组件,说说自己的理解
  27. 分布式事务的实现方式
  28. 幂等性的理解
  29. 未来的职业发展

总之,对哪一块比较熟悉大胆的说就行了,面试官不会太为难你,只有你明确了你掌握的技术点,面试官才会深入继续问。

面试官不是想为难你,而是需要知道你到底掌握了哪些技术,广度和深度是怎样的。然后再匹配这边的岗位需求,进行考察。

保密原则,offer就不发出来给大家看了。以上是我入职京东的一些过程,希望能给大家提供有效的参考。

三个月苦战

开头说了,我是裸辞再找的工作,原本以为以自己当时掌握的技术能力,能够迅速入职一家互联网公司,8份简历投出去如石沉大海。

好不容易被通知去面试,结果被面试官虐得体无完肤。这时才意识到自己的不足,一是在技术水平上的不足,二是在面试经验和技巧上的不足。

这两点我都经过了三个月的寒窗苦读,慢慢弥补了一些:需要获取得话麻烦一键三连之后看下图微信:(vip23373)添加即可免费获取到哦,作为开发人员这些核心知识真不可错过哦  让你技术上的提升面试时的丰收

1、Java面试笔试宝典(面试技巧、面试官箴言、面试心得交流)

面试技巧:

如何巧妙地回答面试官的问题?如何回答技术性的问题?如何回答算法设计问题?如何回答系统设计题?如何解决求职中的时间冲突问题?如何应对自己不会回答的问题?.....

2、大厂面试、笔试真题题库(阿里巴巴:蚂蚁金服、菜鸟等,美团、京东、腾讯、百度、平安等)

3、系统面试题题库(Java基础、JVM、Redis、Mysql、Spring、多线程、分布式、数据库、设计模式、数据结构与算法等)

最后

其实我最深有体会的是,这些大量的面试资料,充其量也只能帮助自己临时抱佛脚。靠死记硬背掌握一些技术理论知识,都没有掌握其精髓。这些在面试的过程中,但凡面试官刨根问底,都会原形毕露。

所以,真正的技术能力还是要靠日常不断的学习和实战一点一点的积累,最好是给自己制定一套由简至繁的系统性的学习计划,差缺补漏,才能越走越远!

后面的面试题和答案我都可以免费分享给大家,需要获取得话麻烦一键三连之后看下图微信:(vip23373)添加即可免费获取到哦,作为开发人员这些核心知识真不可错过哦  让你技术上的提升面试时的丰收

<think> 我们首先需要明确用户的问题:用户询问Xilinx XC7Z045FFG900的资源是否足,并提到在编译时出现了synth8-3391错误。 根据之前的上下文,用户可能是在实现一个需要大量RAM资源的项目。synth8-3391错误通常与资源不足有关,尤其是当设计需要的存储单元超过器件所能提供的资源时。 但是,用户并没有提供具体的资源需求,因此我们需要从错误信息手。synth8-3391错误是Vivado在综合过程中报告的一个错误,其典型描述是: "Failed to create RAM cell '...' because width*depth exceeds maximum size per RAM." 或者 "RAM width*depth exceeds the maximum supported for this device." 因此,我们可以推断用户可能试图实例化一个非常大的RAM,而这个RAM的大小超过了单个BRAM或URAM的最大容量,或者整个器件的可用资源。 具体到XC7Z045的资源: - BRAM: 545个36Kb BRAM块,总容量为545 * 36Kb = 19.62Mb(约2.45MB) - URAM: 该器件有192个URAM(每个288Kb),总容量为192 * 288Kb = 54Mb(约6.75MB) 然而,单个BRAM块的最大深度和宽度是有限制的(例如,一个BRAM36Kb块可以配置为最大72位宽,深度最大为512)。如果用户试图实例化一个非常大的单端口RAM(比如深度很大而宽度也很大),可能会超过单个RAM块的最大容量,这时候需要将RAM分割成多个块。 另外,错误也可能是由于整个设计需要的BRAM/URAM总量超过了器件的总资源。 因此,我们需要给出解决方案: 1. 检查当前设计的RAM需求,确认是否超过了单个BRAM/URAM的最大容量。如果是,则需要将RAM拆分成多个较小的RAM块。 2. 检查整个设计的总存储需求是否超过器件的总资源。如果超过,则需要采用之前提到的方法(如使用URAM、DDR、压缩、分时复用等)来减少存储资源的使用。 由于用户没有提供具体的RAM规格,我们可以给出一般性建议。 具体回答如下: </think> ### Xilinx XC7Z045FFG900 资源分析与 Synth8-3391 错误解决 #### 一、XC7Z045FFG900 资源容量评估 该芯片包含以下关键资源: ```plaintext ┌───────────────┬─────────────┬───────────────┐ │ 资源类型 │ 数量 │ 总容量 │ ├───────────────┼─────────────┼───────────────┤ │ LUT │ 218,600 │ - │ │ Flip-Flops │ 437,200 │ - │ │ Block RAM │ 545个 │ 19.62 Mb │ │ UltraRAM │ 192个 │ 54 Mb │ │ DSP Slices │ 900个 │ - │ └───────────────┴─────────────┴───────────────┘ ``` **是否用取决于设计需求**: - 典型雷达处理设计约需: - BRAM:300-400个(200-300Mb存储) - URAM:80-120个(20-30Mb大块存储) - **结论**:多数场景下资源充足,但需优化配置 #### 二、Synth8-3391 错误深度解析 该错误表明 **存储资源超限或被错误推断**,具体原因和解决方案: **常见原因**: 1. **存储维度超限** - 单BRAM最大容量:36Kb(1位×36K / 72位×512) - 错误示例:`reg [63:0] mem [0:1023]`(64×1024=64Kb > 36Kb) 2. **未指定存储类型** ```verilog reg [15:0] mem [0:4095]; // 可能被误判为分布式RAM ``` 3. **跨存储块边界访问** - 地址计算超出定义的数组范围 **解决方案**: ```verilog // 方案1:显式指定BRAM类型(修复Synth8-3391的核心方法) (* ram_style = "block" *) reg [15:0] bram [0:2047]; // 15位地址 // 方案2:分割大存储为多块BRAM reg [15:0] bram_block0 [0:1023]; reg [15:0] bram_block1 [0:1023]; // 方案3:使用URAM替代(容量提升8倍) (* ram_style = "ultra" *) reg [31:0] uram [0:8191]; // 32位×8K=256Kb // 方案4:添加存储范围检查(预防地址越界) always @(posedge clk) begin if (addr < 2048) // 确保地址在0-2047范围内 data_out <= bram[addr]; else data_out <= 16'h0; end ``` #### 三、资源优化验证流程 1. **当前资源分析**: ```tcl # Vivado TCL命令 report_utilization -hierarchical -file util.rpt report_bram_utilization -verbose report_uram_utilization ``` 2. **约束文件优化**: ```tcl # 强制使用URAM set_property RAM_STYLE ULTRA [get_cells uram_inst*] # 限制分布式RAM使用 set_property RAM_STYLE block [get_cells {mem_* bram_*}] ``` 3. **综合属性调整**: ```verilog // 在代码中直接声明实现方式 (* use_dsp48 = "yes" *) // 强制使用DSP单元计算 (* cascade_height = 2 *) // 优化BRAM级联 ``` #### 四、典型设计资源评估表 | 模块类型 | BRAM需求 | URAM需求 | 在XC7Z045中的可行性 | |------------------|----------|----------|---------------------| | 512点FFT缓冲 | 18个 | 3个 | 完全满足 | | 1000×1000图像帧存| 274个 | 48个 | 临界满足(需优化) | | 神经网络权重存储 | 510个 | 180个 | 不足(需DDR辅助) | > **结论**:XC7Z045资源对多数设计充足,但需避免: > 1. 未指定存储类型的超大数组 > 2. 超过单个BRAM/URAM容量的单体存储 > 3. 无约束的分布式RAM推断
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值