本帖最后由 mylau 于 2025-7-9 16:15 编辑
数字前端设计也称逻辑设计,前端以设计架构为起点,以功能正确且满足目标时序的网表为终点,用逻辑电路实现预期的功能。主要包括:规则书制定、系统架构设计、部件详细设计、HDL编码、仿真验证、SDC编写、逻辑综合、STA检查、形式化验证等,系统架构设计最难掌握,需要有丰富的设计经验,对应用场景也需要有深入的理解。
前端设计师需要掌握的最基本技能就是实现编码,但编码不是数字前端设计的全部,它只是前端设计过程中的部分工作。下面编写一个MUX逻辑,MUX的行为可以描述为:只要信号a或b或sel发生变化,如果sel为0则选择a输出;否则选择b输出。
学习前端设计首先要掌握数字电路基础知识并建立硬件意识,基本的数字电路像与或非门、D触发器、计数器、移位寄存器、状态机、多路选择器、译码器等一定要掌握,所有复杂的电路都可由这些基本电路构成,软件设计和逻辑设计的不同要明白,软件是顺序执行思维,而逻辑设计需要并发思维。
数字电路是由很多的与非门及D触发器构成,上电之后所有部件都同时运行,不会因为A触发器的代码描述在 B触发器之前A触发器就先工作,事实上,RTL级代码书写的先后顺序在综合成网表文件后就消失了,取代的是基本逻辑电路之间的互联关系描述。数字电路功能中存在先后顺序的关系,但这种顺序不是靠代码的先后顺序来实现,它的先后顺序是基于时间轴(时钟)来实现,它的承载体是时序逻辑(触发器)。 |