大三电子专业,跟着B站教程把Verilog语法、状态机、FIFO都过了一遍,笔记记了两本,但一关掉视频让自己从零写UART收发就完全没思路,只能照着抄。感觉是「看得懂但写不出」,这种状态到底缺的是哪一步训练?是不是要逼自己脱离参考代码盲写才行?
2026年FPGA零基础自学,看完了B站全套视频却还是写不出一个串口模块,问题卡在哪个环节?
5 个回答

缺的就是盲写这一步。你现在的状态是「认路但不认方向盘」,看视频等于坐副驾。挑个最简单的模块,比如8位串并转换,关掉所有参考,画时序图、写代码、自己搭testbench,跑通再看别人怎么写。一天一个,两周基本就顺了。你手头有仿真工具吗?

其实你缺的不是知识,是「默写」这个动作。视频看再多都是别人在替你思考。挑个最小模块,比如8位串并转换,关掉参考,先画时序图再写代码,写完自己搭tb跑通。坚持两周就变了。你平时用哪个仿真工具?

你缺的不是再看一遍视频,是关掉视频自己写。挑串口里最小的子块,比如波特率计数或一位发送,先画时序再敲代码,写完立刻自己搭tb跑。一天啃一小块,两周就有手感。你装的是哪套仿真环境?

你现在的状态说白了就是副驾坐久了,看别人开一百遍也换不来自己踩油门。串口这东西不需要新知识,它需要你把已经会的东西「默写」出来。建议就按最小粒度拆:先只做波特率计数器,画个简单的时序草图,关掉所有参考代码敲一遍,自己搭tb看波形对不对;第二天做发送移位;第三天做接收采样。每天一个子模块,写不出来也先硬憋二十分钟再看,看的时候重点对比自己「卡住的那个点」是什么。两周下来你就会发现,卡住你的从来不是语法,是没练过从需求到时序再到代码这条链路。你手头是Vivado还是Quartus的环境?

你说的这个状态我太熟了,很多电子专业的人都是这么过来的。问题真不在语法,语法你早就过了,卡住的是从需求到硬件结构那一步:串口到底该拆成哪几个块、块跟块之间怎么握手、哪个信号先动哪个后动。视频里老师是替你把这一步想好了,你只是在抄结果。
想验证是不是这个原因,可以做个对比实验:把UART的功能需求写在纸上,只留一句话「9600波特率、8N1、能收能发」,然后关掉所有代码,先画一张状态转移图,再画一张模块框图,最后才写代码。你会发现真正费时间的是前两张图,代码反而是最机械的部分。
具体怎么练,个人建议按这个顺序走:先写波特率计数器,再写发送移位、接收采样、最后拼顶层。每个模块写完必须自己搭testbench跑波形,跑通了再去看参考实现,重点看差异在哪。每天一个模块,两周基本能脱稿。
有个风险要提醒:别一上来就追求功能全,先把发送做通,能往PC串口助手打出字符,成就感比什么都管用。另外抄代码不算练,抄完合上参考默写一遍才算。
你目前是在Vivado还是Quartus上做,两者仿真流程不太一样,会影响你搭tb的顺手程度。
发表回答
登录后可在本页底部提交回答