只会写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. 嵌入式系统中,如何通过中断机制实现快速响应外部事件?2. 在ARM架构下,如何使用NVIC管理不同优先级的中断?3. bootloader和操作系统内核的加载顺序是什么?4. 如何利用DMA实现高效的外设数据传输?5. 定时器子系统有哪些常见的用途?6. ARM体系结构支持哪些不同的内存一致性模型?7. FLASH存储有哪些特点?8. 在ARM体系结构下,如何利用CMSIS库简化外设驱动的开发和移植?9. 嵌入式系统通常会采用哪些通信总线?10. 在嵌入式系统设计中,如何权衡使用RTOS还是裸机系统?11. 如何配置交叉编译环境?12. 如何利用版本控制工具(如Git)进行协同开发?13. 如何利用SIMD指令集提高运算性能?14. 如何合理地划分硬件和软件的边界?15. 如何利用ADC实现高精度的数字化采集?16. 如何利用看门狗定时器实现系统的健壮性和容错性?17. 如何利用RTOS提供的调度机制满足实时性需求?18. 如何利用设计模式提高代码的可维护性和扩展性?常见的设计模式有哪些?19. 实现复杂的通信协议,如何利用状态机模型简化协议栈的设计和实现?20. FPGA和MCU的异同点是什么?如何进行硬件软件协同?21. 需要处理大量的传感器数据,如何利用数据融合算法提高数据的可靠性和准确性?22. 如何利用代码静态分析工具提高代码质量?常见的静态分析工具有哪些?23. 如何利用加密算法保护系统关键数据的机密性和完整性?24. 如何利用RTOS提供的进程/线程机制实现并发编程?常见的同步机制有哪些?25. 如何设计安全可靠的数据传输协议?常见的物联网协议有哪些?26. 如何利用JTAG调试接口进行硬件和软件的联合调试?JTAG的工作原理是什么?27. 如何利用图形库(如emWin、uGUI等)进行UI开发?28. 如何利用RTOS提供的文件系统API实现对存储设备(如SD卡)的读写操作?29. 利用SIMD指令集提高运算性能?SIMD有什么特点?30. 代码覆盖率分析工具评估测试的充分性?常见的覆盖率指标有哪些?  c++/嵌入式面经专栏-牛客网 https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM
查看30道真题和解析
点赞 评论 收藏
分享
16 110 评论
分享
牛客网
牛客企业服务