刚入门FPGA的人经常混淆:芯片上印着"内核"两个字,怎么FPGA的跟CPU就不是一回事?
核心区别在"可重配"。CPU是固定流水线架构,你写一条加法指令,硬件自动译码、取数、执行;FPGA的内核(Xilinx称PL,Intel称Programmable Fabric)是一整片由LUT、触发器、多路复用器、进位链组成的门阵列。你用Verilog写一段行为描述,综合工具把这些小积木重新拼成你需要的电路拓扑——同一块芯片,今天做UART,明天做DMA,逻辑全换。
"软核"(MicroBlaze、Nios II)是纯靠LUT搭出来的处理器,灵活但主频通常只有几百MHz;"硬核"(Zynq里的ARM Cortex-A53、Intel SoC的ARM核)是真实硅片固化的IP,性能直接对标同代商用CPU。两者共用同一套内核资源池,但调度方式和功耗模型截然不同。
面试高频追问:PL和PS之间数据怎么高效搬运?标准答案是BRAM共享、AXI_FULL / AXI_LITE / AXI_STREAM三套总线、以及DMA直读DDR,而不是"我例化了一个FIFO"就交差。
别一上来就啃SerDes和JESD204B。内核层面的三块地基必须先夯实:LUT/FF/MUX的资源模型、跨时钟域与亚稳态处理、AXI总线握手时序。
我带学生的固定路径:第一步,最简工程点亮LED并参数化闪烁周期;第二步,手撕一个4-bit进位加法器,打开综合报告看它到底占了几个LUT、几根进位链;第三步,用状态机跑UART回环,ILA抓波形,盯着建立时间和保持时间看。三步走完,"内核里到底发生了什么"就不再是抽象概念。
特别提一句时钟域。很多内核级bug不是逻辑写错,是跨时钟域没做同步器。单比特信号跨域要两级D触发器,多比特跨域要么用异步FIFO要么用握手协议,别偷懒打一拍就完事。这块在综合报告和时序约束里会反复暴露。
再往上,DDR控制器的MIG配置、GT收发器的8B/10B与64/66B编码、Aurora光口回环、SRIO互联——你会发现这些模块底层全是内核资源的复用与调度,不是凭空多出来的黑盒。把内核吃透,后面每个新IP都是换皮。
FPGA内核 = 一片可重配的逻辑门阵列。软核跑在LUT上,硬核焊在旁边,AXI总线把PL与PS缝成一体。
思考题:如果PL要同时驱动两块DDR4,你会怎么划分时钟树和AXI通道?把你的方案思路通过右下角会话窗口发给讲师,我们逐条回复。
如果你卡在"原理图能看懂、完整工程写不出"的阶段,或面试总被追问内核资源约束、跨时钟域细节,宸极教育FPGA纯直播就业班(31节课 + 21个实战项目)就是为你准备的。从LUT级手撕到JESD204B企业级设计,全程直播、逐行代码review。点击右下角客服窗口,发送"内核"二字,即可领取2026年9月班完整课表与一节试听课。
未经许可,禁止转载!