上一章末尾的一个有趣的过桥问题,在此解答。我认为是每个人都要过桥,过桥的人需要手电筒,快的人需要配合慢的人。慢的人是关键。
方案一:由新生跟着所有人过桥.
2+1(回来)+5+1(回来)+10=19min
方案二:尽可能搭配
新生和设计学生一起去,新生回来
教授和助教一起去,设计学生回来
新生再和设计学生一起去
2+1(回来)+10+2(回来)+2=17min
方案三:考虑去的次数
4个人,一次走两个,回一个
2-1+2-1+2=4必然是要回来2次的,尽可能落在快的人头上
故方案二应该是最快的
n项的sop的p最多有2^(n-1).试想一下如果有一半的SOP项已经出现,那么再出现任何一个都会和之前的某个SOP项相抵消.所以只能到一半.典型是异或、同或。
高速应用下总线BUS变得少见,更多是点对点的连接.
sigma表示法
用于表示SOP(每项对应真值表的1)。与之对称的还有pi表示法,用于POS(每项对应真值表的0)
idempotency幂等性,执行多次运算的效果与单次相同。引入判断和去重,比如A=A+A+A+A.
Figure2.3.8似乎不满足只使用NAND、NOR的要求,现简要修改
延时的示意图(忽略了导线延时)
传播延时对应最长路,污染延时对应最短路。高速设计下,导线延时不可忽略,必须考虑
传播延时有两类,注意控制信号的延时的存在
Q1如何将HDL与电路相对应
A1可以利用always@(*)case语句,让综合器自己进行优化。也可以利用X,准确的说是问号?,来使得优化更佳,但不是使用casex。
case语句的表达式的值有4中情况:0、1、z、x。4种是不同的,故表达式要严格的相等才可以操作分支语句。
casez语句中的表达式情况有三种:0、1、x。不用关心z,z可以和任何数值相等,即z =0.z= 1,z=x;
casex语句的表达式情况有二种:0、1.不用关心x和z。即x=z=0,x=z=1
1、我们在写代码的时候如果用了case,那么就不要在index列表里面出现x/z/?,综合工具认不出这些,都会当做don’t care
2、casez和casex综合的结果是一致的。
3、casez稍好用一些,因为它可以用来代表don’t care的值
4、最重要的一点就是,casez和casex其实没有孰优孰劣
因此,推荐使用casez+?
Q2如何完成好的电路映射
A2严格区分组合和时序,不同的电路按照不同的方式写,并且进行模块化.要有意识地使用模板,比如流水线、状态机等
functional specification-功能特征
timing specification-时序特征
bundle-捆绑
oddball circuit-古怪的电路
implicant-蕴含项
interpose-插入
