1131
反之,你需要什么样的电路,用什么样的行为语句来描述。
我们稍后会有一门课程,称之为CSS,coding style for synthesis,就是面向综合的编码风格。
这门课程会精确地讨论,what statements,what circuit,反之,什么样的电路,用什么样的代码描述。
一定要有这个知识,你才能够把综合写好,做到综合友好。
下面呢,我们来写它的结构。
也就说,行为语句的时候,是真正做到了只描述what to do,而没有描述how to do。
可是结构化的时候,显然是既要描述what to do,也需要描述how to do。
1132
并且真正是站在电子电路设计的角度上,有点还原到返璞归真了,回到原始的设计上。
但是呢,虽然它的效率降低,但是它却带来了核心技术,带来了创造力。
一些竞争性的想法,具有核心技术的想法,具有专利的想法,是在结构化上实现的,现在我们就来做它的结构化。
同样是这个双输入与门。
结构化就意味着what to do、how to do都要结合,how to do就是如何用电路来实现,这个时候回到了事情的本质上,需要这个布尔表达式,F=A•~S + B•S。
what to do只描述了这么一个事实,S为真值的时候B输出,S为假值的时候B输出。
但是如果how to do呢,要回到本质问题上,要用逻辑门来实现。
根据这个布尔表达式,有两个与门,一个或门,一个非门,两个逻辑要用类似的逻辑门来实现。
1134
现在才返璞归真,回到了电路设计的本质上。
这张图的电子设计的思想,是用逻辑门来实现的。
逻辑门来实现how to do,如何来做这件事情。
What to do的语言描述,how to do的语言描述,结构化。
那么我们把这段代码做出来,这段代码呢,我们用verilog的底层原语。
底层原语它支持非门、与门、或门,甚至与非、或非,它都支持,门级原语。
我们需要做的呢就是,输入信号有了,已经声明出来,然后呢我们还需要把它的实例声明出来。
1135
实例呢,我们把反相器的实例名标为U1,然后呢,U2、U3、U4,然后呢,这个构成了结构的部件。
这个部分就是我们的mux2。mux2的建模,出了这个方框的,就是端口,在方框内部的,就是中间信号。
同样新建一个,另存为mux2_structure.v,我们用结构化来做。
使用结构化的时候呢,也必须设置为顶层,然后一仿真的时候,综合的时候,EDA支持它,这个时候才能在Hierarchy这棵树上找到它。