只会写SPI、串口和IIC,毕业后无法就业,怎么办?

这个时候,你已经会使用FPGA了,但是还有很多事情做不了(比如PID算法、OFDM等),因为理论没学好。

1、数电应该是是基本功,在这里不用多说,可以再熟悉语法规则和编译器编译完代码,就打开RTL图,看一下综合出来是什么样的电路,以及也看下学习fpga正确的打开方式:

2、数电掌握后,可以看下《什么是硬件以及什么是软件》。在这一阶段,推荐的教材是《Verilog传奇》、《Verilog HDL高级数字设计》或者是《用于逻辑综合的VHDL》~

3、状态机掌握后,你就可以独立完成中小规模的数字电路设计,像交通灯、电子琴、DDS等等,推荐的教材是《Verilog HDL应用程序设计实例精讲》。在这一阶段,你要做到的是:给你一个指标要求或者时序图,你能用HDL设计电路去实现它。这里你需要一块开发板,可以选Altera的cyclone IV系列,或者Xilinx的Spantan 6。

4、掌握设计方法和设计原则,这个时候可以深入地去思考下同步设计原则、优化电路,是速度优先还是面积优先,时钟树应该怎样设计,怎样同步两个异频时钟等等。推荐的教材是《FPGA权威指南》、《IP核芯志-数字逻辑设计思想》、《Altera FPGA/CPLD设计》第二版的基础篇和高级篇两本。学会加快编译速度(增量式编译、LogicLock),静态时序分析(timequest),嵌入式逻辑分析仪(signaltap)就算是通关了。

5、最后则就是学会提高开发效率,建议使用Sublime text编辑器中代码片段的功能,以减少重复性劳动。Modelsim也是常用的仿真工具,学会TCL/TK以编写适合自己的DO文件,使得仿真变得自动化,推荐的教材是《TCL/TK入门经典》。

最后根据自身具体的方向,可以再选择型深入性针对性的学习:

1、信号处理——信号与系统、数字信号处理、数字图像处理、现代数字信号处理、盲信号处理、自适应滤波器原理、雷达信号处理

2、接口应用——如:UART、SPI、IIC、USB、CAN、PCIE、Rapid IO、DDR、TCP/IP、SPI4.2(10G以太网接口)、SATA、光纤、DisplayPort、HDMI

3、无线通信——信号与系统、数字信号处理、通信原理、移动通信基础、随机过程、信息论与编码

4、CPU设计——计算机组成原理、单片机、计算机体系结构、编译原理、RISC-V

5、仪器仪表——模拟电子技术、高频电子线路、电子测量技术、智能仪器原理及应用

6、控制系统——自动控制原理、现代控制理论、过程控制工程、模糊控制器理论与应用

7、压缩、编码、加密——数论、抽象代数、现代编码技术、信息论与编码、数据压缩导论、应用密码学、音频信息处理技术、数字视频编码技术原理

FPGA的成长主要还是要靠理论+实践结合,多做项目,在项目中锻炼~(项目来源于公众号《亦安的数字小站)

FPGA/IC优质开源项目——3个UART开源IP核,以及一个IIC核

FPGA/IC优质开源项目——Alexforencich系列

Alexforencich的AXI

FPGA/IC优质开源项目——Corundum

FPGA/IC优质开源项目——CPU

FPGA/IC优质开源项目——PCIe

FPGA/IC优质开源项目——MIPI

更多讨论请留言~

#23届找工作求助阵地##晒一晒我的offer##牛客在线求职答疑中心##FPGA工程师##ic#
全部评论
你好,你的问题我已经了解了。首先,不要担心,你并不是无法就业,只是需要更多的学习和实践。 1. 数电和Verilog是FPGA的基础,你需要熟练掌握它们。 2. 状态机是数字电路设计的核心,你需要掌握状态机的设计方法。 3. 学会使用开发板进行实践,如Altera的cyclone IV系列或Xilinx的Spantan 6。 4. 掌握设计方法和设计原则,如同步设计原则、优化电路等。 5. 学会提高开发效率,如使用Sublime text编辑器和TCL/TK。 根据你的具体方向,你可以选择深入学习信号处理、接口应用、无线通信、CPU设计、控制系统、压缩、编码、加密等领域。 FPGA的成长需要理论和实践相结合,多做项目,在项目中锻炼自己。你可以关注一些开源项目,如Alexforencich系列、Corundum、CPU等,这些项目可以帮助你更好地学习FPGA。 不要担心,只要你继续努力学习,你一定能找到一份好工作。加油!
1 回复 分享
发布于 2023-10-20 18:20 AI生成
给大佬点赞
点赞 回复 分享
发布于 2023-10-23 12:10 四川
M
点赞 回复 分享
发布于 2023-10-29 21:05 湖南

相关推荐

1. 如何在STM32中实现温度传感器的数据采集?2. 嵌入式系统中如何实现USB通信?3. 在FreeRTOS中如何实现任务的延时调度?4. 如何在嵌入式系统中实现RFID通信?5. 在RT-Thread中如何实现事件组的使用?6. 嵌入式系统中如何进行图像处理?7. 如何在STM32中实现串口通信?8. 嵌入式系统中如何进行电压监测?9. 如何在FreeRTOS中实现消息队列的使用?10. 在STM32中如何实现步进电机控制?11. 嵌入式系统中如何进行音频播放?12. 如何在RT-Thread中实现网络通信?13. 嵌入式系统中如何进行数据的持久化存储?14. 如何在STM32中实现SD卡的读写?15. 嵌入式系统中如何实现温湿度控制系统?16. 如何在FreeRTOS中实现定时任务?17. 嵌入式系统中如何进行电流监测?18. 如何在STM32中实现OLED显示屏的驱动?19. 嵌入式系统中如何实现数据的压缩传输?20. 如何在RT-Thread中实现内存管理?21. 嵌入式系统中如何进行运动控制?22. 如何在STM32中实现CAN通信?23. 嵌入式系统中如何进行多种传感器的数据融合?24. 如何在FreeRTOS中实现任务的挂起与恢复?25. 嵌入式系统中如何实现人机交互界面?26. 如何在STM32中实现PWM信号的接收?27. 嵌入式系统中如何进行电池充电管理?28. 如何在RT-Thread中实现系统日志记录?29. 嵌入式系统中如何实现数据的加密存储?30. 如何在STM32中实现网络摄像头的控制?嵌入式C++面经推荐大佬面经  链接在下边  c++/嵌入式面经专栏-牛客网 https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM
点赞 评论 收藏
分享
公司1 FPV设备实习生 3k+项目提成,包住
点赞 评论 收藏
分享
2024-12-23 00:15
已编辑
电子科技大学 嵌入式工程师
面试官应该跟网上面卓驭嵌入式相关岗位的同学遇到的是一样的:地中海大佬问题基本上都是按照简历上的项目来的,专业相关的八股基本都没问。1-9基本都是针对我写的操作系统这个项目问的:1.讲讲pendsv,哪些情况会触发pendsv。2.对于任务切换选用的是pendsv,为什么不用定时器中断呢?3.对于定时器中断,你是如何使用的?4.在任务切换时,在中断里你需要干所有的事吗?这问题我的理解是有些寄存器的出入栈是cm内核在帮忙干5.中断结束后回到任务是否需要注意什么6.操作系统对于外部中断的操作?这问题我有点懵没明白啥意思 就答了下ucos对外部中断的处理 7.你的这个操作系统有在板子上跑过吗?回答说的在stm32f4上跑过 但f4是cm4的内核 这个操作系统主要是针对cm3的 对于cm4中的fpu等东西没有针对性处理8.你刚刚提到了mpu,你知道它是什么吗?我怀疑面试官把我上面说的fpu听成mpu 这问题给我问懵了 我对这个几乎没有啥印象 于是胡乱回答说这个好像跟内存有关系 跟虚拟内存地址与实际内存的映射有关系 面试官听了之后笑了一下问我知不知道mmu是啥 我听了之后恍然大悟 说刚刚自己讲的应该是mmu的功能 mpu的p应该是protect 这是用来保护内存访问权限的 也不知道自己说对没 这俩概念自己只看过一两眼(因为jd上有写 但自己没太重视 本科阶段几乎没涉及过这个)总之最后面试官听了我回答后又是笑了一下 就开始问下一个问题了9.你能不能猜猜mpu在你的板子上会针对哪些东西工作?上一道题回答时我给他说自己没有太多涉猎mmu和mpu 所以这道题他让我猜猜 但我还是不太知道 就随便答了个可能跟ram这种有关系吧。。面试官也没为难我 就不再问了10.我再问下pendsv 你能不能再简单给我讲讲pendsv这个函数里你的汇编代码依次做了些什么事情下面的问题基本都是针对我的四轴项目问的:11.你的四轴飞行器项目中难度最大的是哪部分?12.我看你项目写了iic和uart 那就讲讲iic吧13.iic是一主多从还是多主多从 它是如何查找从机的14.反问总结 面试官人真挺好的 不会死板地问八股 甚至算法根本没考 问的问题感觉也因为我是本科的就没问太难 见我说错了还会一步步地引导后续:当天下午就给口头offer了 感慨自己也算是狗运好算法和八股基本都没准备但还是过了
查看14道真题和解析
点赞 评论 收藏
分享
2024-12-25 09:09
北京邮电大学 C++
1. 如何在嵌入式系统中实现Wi-Fi通信?2. 在STM32中如何配置和使用UART进行串口通信?3. 嵌入式系统中如何实现步进电机的控制?4. 如何在嵌入式系统中实现温度传感器的数据采集?5. 在FreeRTOS中如何实现任务间的消息传递?6. 嵌入式系统中如何实现图像的模糊处理?7. 如何在STM32中实现ADC的DMA传输?8. 在RT-Thread中如何实现线程的创建与管理?9. 嵌入式系统中如何实现蓝牙音频传输?10. 如何在STM32中配置和使用GPIO进行外设控制?11. 嵌入式系统中如何实现数据的存储与读取?12. 在FreeRTOS中如何实现互斥量的使用?13. 嵌入式系统中如何实现电机的PWM调速?14. 如何在STM32中实现SD卡的读写功能?15. 嵌入式系统中如何实现环境监测系统的数据采集?16. 在RT-Thread中如何实现多线程的优先级管理?17. 嵌入式系统中如何实现图像的灰度化处理?18. 如何在STM32中实现RTOS的任务调度?19. 嵌入式系统中如何实现心率传感器的数据采集?20. 在FreeRTOS中如何实现任务的延时执行?21. 如何在嵌入式系统中实现数据的压缩算法?22. 在STM32中如何实现LCD的触摸屏控制?23. 嵌入式系统中如何实现语音识别功能?24. 如何在RT-Thread中实现文件系统的使用?25. 嵌入式系统中如何实现网络时间同步?26. 在STM32中如何实现CAN总线的错误处理?27. 嵌入式系统中如何实现图像的边缘跟踪?28. 如何在FreeRTOS中实现任务的堆栈监控?29. 嵌入式系统中如何实现超声波传感器的数据采集?30. 在STM32中如何实现PWM信号的频率调节?下方专栏可以查看  c++/嵌入式面经专栏-牛客网 https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM
点赞 评论 收藏
分享
评论
16
115
分享
牛客网
牛客企业服务