学习摘自数字芯片实验室
题:使用2-1MUX设计INV、AND、OR、NAND、NOR。即取反,与,或,与非,非或
MUX是能够根据需要将其中任意一路选出来的电路,又称数据选择器。
设计INV:
使用MXU设计INV,需要将S1端接“0”,将S0端接“1”。
设计AND:
使用MXU设计AND,需要将S1端接A,将S0端接“0”。
设计OR:
使用MXU设计OR,需要将S1端接“1”,将S0端接B。
NAND和NOR可以在AND和OR的基础上增加一个INV得到。
可以看出MUX相对标准单元INV、AND和OR具有更好的灵活性,但是2-1MUX需要更多的CMOS晶体管,即更大的硬件开销,体现了数字IC设计中设计灵活性和面积效率之间的折中。
类似的,在FPGA中构成组合逻辑的查找表(LUT),继续增强了这种灵活性,或者可重构性,同时也再次增加了硬件开销。下面是构成INV、AND和OR逻辑的LUT中存储内容。
INV LUT
AND LUT
OR LUT
可以说,ASIC中只存在有限的标准单元类型也是一种在灵活性和设计工作量复杂度之间的折中。
灵活性上
全定制ASIC < 半定制ASIC <粗粒度可重构<细粒度可重构(FPGA)
面积效率上
全定制ASIC > 半定制ASIC>粗粒度可重构>细粒度可重构(FPGA)
当设计中存在大量复用的处理单元,将该单元全定制化成一个标准单元或者宏模块能够对整个芯片面积效率的提高起到非常大的改善,并不是说电路级能够做的一定比RTL级、算法级要少,根本上还是取决于实际情况。