FPGA是芯片的一种,所写的代码其实硬件编程语言,对应到了芯片上的电路结构。
这些硬件语言(不是软件语言,有很大的差别的)的意义就是让你可以更关注你想要实现的功能本身,降低工程师的开发难度。其实你也可以用一个个基本逻辑门单元去构建你的电路(EDA软件也支持),但那样的你的开发难度会很大。
这是EDA工具存在的意义,让你只写代码,不用过于关注电路本身。但是一个优秀的芯片工程师不仅仅需要明白每条语句,还必须知道代码对应的电路结构,这就是软件工程师和芯片工程师最大的差别。
FPGA作为一个单独的芯片是无法完成各种任务的,需要和其它的芯片结合才能实现各种功能。这就是为什么我们一般只买FPGA开发板,而不是一块单独的FPGA芯片。这个开发板的开发是需要PCB知识去支撑的,但是这个就是嵌入式硬件工程师的任务。而FPGA工程师的主要任务是利用这些片上资源做芯片功能开发。
所以FPGA工程师不太要求PCB基础,但有一定的PCB知识,可以帮助你理解和应用片上资源。