00:25
好了,能听到吗?有没有声音?有是吧,画面也OK吧。好了啊,咱们那个可以先呃看一看啊,咱们这个之前讲的呃,然后有没有什么问题啊,有问题的话可以这个呃提一下,然后呢,我们给大家呢,来去解决一下啊,解决一下,那么大家可以先看看自己有没有问题啊,我先简单说一下咱们昨天讲了呃大概的哪些内容。
01:18
啊,我们昨天呢,呃讲了什么呢?昨天我们讲了这个,呃关于这个什么呢?关于这个叫做功能性的语句的一些描述是吧,比如说我们所说的这样的一个叫做呃护士性的问题,对吧?我把这个呢已经发给大家了啊,我不知道大家有没有人啊帮我去验证一下我写的这个对不对啊,啊就是你们可以去测试一下啊看看说诶就利用这种功能性的语句啊来描述的我们这个呃叫做这个所谓的这个护士性的这样的一个问题啊然后呢,下拉板当中呢,去验证一下啊验证一下啊应该是呃没有任何问题的啊,应该是没有任何问题的啊这个是这个我们的这样一个设计,那么呃还有什么呢?还有关于这个叫做,呃,我们讲的叫做两个这个投票器是吧。
02:14
我们把这两个投标器分别都打开啊。啊,那么在这这两个投标器当中的话呢,哎,也是分别用什么,都是一个叫做呃功能性的一些语句啊功能性的一些语句,那么呃,希望大家在这儿呢,一定要知道啊,如果呢,我们在最开始的描述,描述一些门电路的话呢,那大家都能够理解是一些电路啊当呢,一旦描述什么,一旦描述到这样的一些位置的时候呢,很多人就开始迷茫了,说这个if else,那肯定说先执行这一句判断对不对,然后在else执行这一句,对吧?那么很多人呢,可能就会说,诶这么来写啊,他是不是说在执行啊,而不是电路,在这我来说一下啊,他们if else是有什么,是有自己的一个啊,非常简单的一个什么非常简单的一个电路模型的啊,它是有这个电路模型的,那么呃,在这儿的话呢,我给大家说一下if else呢,它呢,哎,并不是说真的就有这样的一个if在执行什么,R还是电路那么简单的可以说呢,呃,利用大家所熟知的什么。
03:18
诶,所熟知的一些呃东西啊,我们可以给大家呢,简单的来说一下,这个ifl它会形成么?形成这样大概怎么样的一种电路啊,然后呢,大家呢,能够呃简单的清楚啊清楚一些,你比如说呢,对于现在这个对吧,我们可以认为什么呃,A等于零啊与上啊,B1等于零,或者B2等于零,对不对,那么在这的话呢,我们我就简写了,我把KAKB1和KB2,我简写成AB1和B2啊我们来看一下啊,那其实就是什么,其实就是这个A。和谁呢?和这个零,它俩呢,中间放一个什么呢?等于比较器啊,它俩相等的话,就输出一个一对不对,然后呢,B啊,它也和零啊去做这个等于比较器,然后他俩呢也输出一个结果,然后呢,C和零也做一个等于比较器啊,也会输出一个结果,那么等于比较器有什么作用呢?就是说相等就为幺,不相等就为零嘛,然后呢,他俩当中啊A这个B1和B2啊,我写的是不是C了啊B1啊B1和B2。
04:30
啊,它俩呢,只要有一个相等就可以,所以我们要把它干什么呢?还要相或然后或出来结果干什么呢?哎,去和这个结果相与好,那么这个结果到底为幺还是为零,是不是就已经是说这个括号里成立不成立了,所以它为幺就成立,它为零就不成立,对不对?所以在干什么?再画一个我们所熟知的另外一个器械叫什么呢?叫多路选择器。好,那么这个多数显示器呢,上面这个什么认为是选择端,然后呢,这个是零,这个是一,也就是说当这一端为零的时候怎么办,当这端为一的时候怎么办,当这段为一的时候,应该什么应该输出的就是一,对不对,所以呢,当这段为一的时候,输出就是一,所以这边呢就是一个一,这边呢就是一个零,而这个信号呢,就是led。
05:22
信号,所以呢,这样的话,大家来看一下,也就是说呢,大家呢,就要知道啊,就是说我们所谓的这个if else啊,也不是说真的就在干什么,真的就在去执行这个if else,先判断if成立不成立,然后再去执行else,没有执行的过程啊,没有执行的过程也就是什么呢?它只是一个什么,它只是一个电路,也就是说呢,它到最后实现到哪儿呢?实现到开发板当中,它还是靠什么,靠电路的结果啊去做实现,比如说我在这儿呢,我只是画了一种电路模型啊,它到最后不一定是这一种,但是呢啊,我们只是一种电路模型,那么这种电路呢,它很明显是电路在执行啊,它没有说先判断什么,后判断它没有啊,它就是一个电路啊,希望大家一定要明白这个,那么呃,我们昨天呢,是吧,首先先给大家做了这样的三个是吧,那么然后呢,我们讲了什么,又讲了这个叫做呃三八译码器啊,三八译码器啊和这个八三编码器,那么呢,我们都是用什么,都是用这个,呃我们刚学。
06:22
了一个语句叫case语句啊,然后来给大家去做的,包括这儿学了一个叫casex语句,那么呃等等的,呃这些这个设计呢,都是一些比较基础的语法,或者说呢,都是在给大家来讲什么呢?就是说一些组合逻辑电路啊,到底应该怎么设计啊,包括仿真都应该怎么来写啊,大家一定要去做啊,那么呃,到后边之后呢,我们讲讲了什么叫半加器对吧?啊,我们还写了报告是吧?什么叫半加期,这个代码我没写是吧?半加期什么半加器就是说哎,A和B相加得出本位结果和进位啊,本位结果和向高位的进位啊,那么这叫半加器,那么我们什么为什么说半加器不可用于这个加法当中呢?因为很简单,如果用于加法当中的话呢,我们都知道,如果是多位相加的话呢,高位的相加的时候往往不是两个数,而什么,而是三个数,为什么?因为有低位的一个进位对吧,所以呢,我们就搞什么,又引入了一个叫做一位的这个什。
07:22
啊,叫全加器。而一位的全加器就是什么?就是AB和低一位啊进给我们本位的一个进位啊,高位啊高位我们干什么啊,我们得出本位以后给高位个什么,给高位一个COO,就是说我们要再给高位一个什么呢?就是我们的进位啊,这个C呢,是低一位给我们的进位对不对?所以说到底了啊,三个什么,哎,三个这个这个这个数呢,应该是相加得到本位和Co,那么对于我们来说的话呢,哎,我们就知道是吧,那么怎么做呢?哎,我们可以列出真值表,进而得数标尔表达式都是可以的是吧?那么我给出来了,但是我没那么写啊,为什么呢?我们下边给大家讲什么,讲了一个叫做呃,如何来利用什么呢?两个半价器和一个二输入的货门来构成全加器,对吧?所以那这样的话呢,哎,我们干什么了,哎,我们就是说呢,哎在这儿啊,给大家呢,画出什么,画出了我们的一个叫做呃全加器的。
08:25
的一个结构,对吧,我们来看一下我们所写的这个设计报告。啊,大家这些报告呢,最好也要自己去设计一下啊,然后呢去写一写。好,那么在这当中的话呢,我们给出了一个全加器的这样设计报告,那么这个全加器的设计报告呢,就非常简单是吧?ABCI啊,因为我们是用半加器组成,所以呢,它呢就是A加B得到一个结果,然后CI加上SAB就会得到一个最终的结果,那么进位的话呢,我们就会考虑什么,他们两个有进位,或者是它们两个有进位,那么最终都会有进位,因为我们知道呢,就是说三三个数相加,因为我们是讨论二进制么,三个数相加,只要它们当中有两个及两个以上为腰啊,那就干什么,那就一定会有进位,对不对?所以呢,我们的cab其实就是A与上B啊,其实就是A与上B对不对啊,那么呃,那么。
09:20
这个这个这个呃C啊SABCI呢,其实就是什么呢?SAB与上CI嘛,所以这样的话呢,也就是说呢,无论他们三个当中呢,有谁啊,有哪两个为妖,或者三个都为妖了,那么结果呢,哎就会为什么,哎结果就会为妖啊,那么这是本位,所以我们利用这样的一个设计的话呢,我们做什么,我们做了一个全加器的结构啊,就是两个半加器啊,然后呢,在一个二输入的火门啊,然后我们在讲课的时候呢,哎就用代码啊给大家做出来什么呢?就是说哎怎么样诶利用这样的一种设计方法叫top to down设计方法,我们先写顶层,然后呢,再写底层的一个啊,我们只称为叫做什么叫做叫做这个呃实体是吧,就是一个这个端口的位置,然后把它利化过来,看一看结构啊,结构对了以后干什么呢?我们再干什么,再往下去设计,这样一步步设计,所以呢,这就是一个什么法叫top to down的设计方法啊,那么在我们呃去做开发也好,或者说我们去做很多东西也好,都是这。
10:20
计方法啊,这个设计方法比较好啊,比较好,也就是说我们会从顶层的这个叫做呃,功能需求出发啊,功能需求出发,然后呢,诶不断的向下去这个分模块,那么一直分到什么时候,一直分到啊我们能够实现,或者说呢,有别人已经现成的,别人写完了的,那么后边我们会讲啊,后边我们会讲好多啊,别人已经写完了的,在ipg内部有的,到时候呢,我们直接来调用就可以了啊,调用就可以了啊,所以呢,诶,这是我们要讲的一个啊,叫做这个呃。呃,全加器啊,当然了,全加器呢,是一比特的啊,全加器是一比特的啊,所以呢,呃,大家的话呢,一定要知道啊,它有这样一种设计结构,那么呃,为了让大家呢,能够说更好的去理解啊,这样设计结构呢,我们今天呢,还会再一次去讲一个什么呢?再一次去讲一个啊全加器的设计,比如说呢,我们今天要讲个第一个我要讲什么?呃且要讲一个叫做16位的一个全加器啊,16位全加器应该怎么设计啊,这是我们今天呢,呃要考虑一个问题啊,叫16位添加器,那么16位添加器怎么来做呢?其实呢,我觉得大家的话呢,呃也非常简单是吧?16位群加器怎么做呢?我们先现在不考虑16位怎么做,我们先考虑个两位的群加器怎么做,比如说什么叫两位的群加器呢?是不是就这样啊,就是说比如说有一个数啊,有一个A啊,然后加B啊,A加B,那么A呢,A应该什么,A应该是两位对不对,所以我们称之为叫做A1。
11:56
A0,然后呢,加上谁呢,加上B1B0,然后呢,有一个结果对吧?这叫什么,这叫这叫两位的全加器,那么既然是全加器对不对,所以呢,它后边呢,可能还会过来个什么,过来个C,就他会过来个CI啊放到这儿啊,然后呢,他们最终加完之后结果还会有个Co,那么最终结果呢,称之为S,那就有什么有一个叫做S1和S0。
12:22
啊,所以呢,它最终应该是这样一个形式,那么对于我们来说,我们来算一下啊,如果是加法的话,应该怎么办呢?是不是说应该是先算A0加B0加CI得到S0,然后最终这呢有个进位对不对,这有个进位,比如说我们叫CX,然后呢,有了CX以后,是不是才可以算A1加B1加CX,得出S1,然后得出Co,那么这样的话是不是就得出来了,我们最终的结果CO1和S0啊也就是说呢,要先算第一位对不对,然后呢,因为低位算完之后才会有上面有进位对不对,他们才能算高位对吧?就像我们算什么,比我们算这个38,诶加上99啊,这个数等于多少呢?应该是先算什么?先算是八加九等于七,然后呢,哎,八加九等于七,然后呢,就是这个进位是吧,三加九等于二二加一等于三啊然后呢,这个地方呢,进一啊是一有进位有个进位对吧,我们进位可以在这不写啊,有两位加两位等于两位,这个进位到底有没有就百位。
13:23
就这就是进位的,就是一不进位就是零啊,当然了,我们做设计的时候呢,没有说不进位那一说啊,因为因为咱们是做设计的,所以呢都是用什么,都是用信号来表示,所以呢肯定会有进位,只不过这个进位呢,有可能是零,有可能是一,所以你不能说没有注意啊,做所有设计当中没有说这个不存在说没有那一说肯定是有的,只不过有的这个到底是幺还是零而已,那幺还是零而已啊,所以呢,那任何一位都要考,要考虑的是叫做三个数的相加,那三个数相加,那么大家来想一下啊,我现在要做什么,要做16倍的全加器对不对,16倍全加器怎么做呢?那也就是说呢,就会出现一个A15到零,B15到零,然后呢,哎,然后就干什么,就A0加B0加上外部的C,产生一个S0,然后再往前有个进位,然后呢,再选A1加B1加上刚才那个进位,然后得到一个S1,对不对,所以以此类推,那么呃,如果我们直接去写16个行不行,当然也可以了。
14:23
啊,当然也可以了啊,那怎么办呢?啊,我们今天呢,我们这样来做啊,我们可以说往上一层一层一层递进去做,然后这样的话呢,让大家能够更好的理解这样的一个设计,比如说呢,我们来做16位的全加器对不对?16位的全加器它应该什么,它应该肯定是有什么,是有两个八位的全加器构成对不对。它也有什么,有两个八位的悬加器啊,八位询加器应该有什么,应该有两个四位的加器,四位选加器应该有两个两位悬加器,每一个两位选项应该有应该有什么,应该有两个一位询加器啊,这样的话,我们就什么就应用到最前面的设计对不对,所以我们会写一个N多层那个设计,那么这个N多层呢,对于大家来说的话呢,哎,我们现在呢,就在这儿呢,就不去画这个架构图了啊如或者简单画一下也可以啊,比如我们先画个顶层吧。
15:15
啊,比如说显卡顶层什么呢?顶层就什么顶层就是说非常简单一个模块,比如这个模块呢,叫A16比特。然后呢,输入呢有A,输入呢有B,输入呢有CI,输入结果有S输入结果有Co就完事了,这就是个顶层啊,这就是个顶层啊,这就非常简单,那么它的第二层什么第二层我们说了是有什么,是有一个八位的,或者说叫两个八位的啊,两个八位的群加器啊,两个八位添加剂,那么两个八位的群加器怎么来构成16位群加器呢?就在这我们来看一下啊,应该是什么,应该是这样的是吧。这是一个八位的啊,然后呢,这边呢,也是一个八位的,对不对,然后干什么呢?应该什么,应该是啊A的七到零啊加上B的七到零。
16:08
然后呢,再加上外部的CI,然后呢,它就会得到一个,得到一个S的七到零,然后呢,它会产生个进位,但是这个进位呢,它应该什么,他应该是进给他第八位,算完它应该进给进个什么,进给第九位对不对?所以这呢,我们称之为叫做C7到零。然后的话呢,我们给了他,然后他的话呢,就是什么,他的话就是他这不有个C嘛,就是接这个,然后呢,他是什么?就是A的15到八,B的15到八一加就是加加出来一个什么,加出来的15到八。啊,然后呢,这个地方会有一个Co,那么这样的话呢,就是一个什么,就是用了两个八位的全加器,构成了一个什么,构成了一个16位的全加器啊,那么下边来想一下,怎么来构成两个八位的添加器呢?这不是怎么来构成一个八位添加器呢,里边就两个四位的,其实呢,就是不断去拆,一直一直拆到一位全加器上去啊在这儿的话呢,我在这儿呢,就开始往下来做啊,咱们就开始往下来做,这个叫做一位的啊,这个这个不是16位的全加器啊。
17:12
我们来呢,让大家来看一下,就是说我们来去做的时候呢,这样的一种方法啊,Ad啊,下划线16比特啊,这是我们的一个名字,好在这儿的话,我们来新建doc啊,为了咱们的这个,呃,进度稍微快一点啊,咱们怎么做呢?咱们就在这儿,我就不去给大家做那个报告了,但是我希望大家呢,能够把这个报告呢,能够好好分析分析,好好做一做,就是用word把这个图呢,也都给咱画一画啊,都给咱画一画好了,那么下边的话呢,我们来呢,去做这个设计好,那么我们来启动一下。
18:03
啊,在我们的他16位QPR。16位。赛克龙42568。啊,今天呢,我们会教大家呢,呃,在TB当中呢,我们用一些技巧性的东西啊,然后呢,就是方便大家去干什么呢?呃,方便大家去看这个就是报告啊,就是看这个波形对还是不对啊好,新建vrlo OK。File另存为。然后干什么,我们存到这个RTL里边去啊,点击保存,那么这个代码的话是吧?诶比较简单啊,我们来去写一下啊,那么输入啊,应该有一个什么15到零的一个A啊输入呢,还有一个叫做15到零的一个什么呢B啊输入呢,还有一个叫CI,注意啊,进位没有说你因为是二进制对不对,你二进制的进位啊,只能是零或者是一啊,比如说十进制的进位,十进的进位,如果你两个数相加的话呢,哎,两个数相加,你进位最多就是说也是进一对不对,但如果你要相乘呢,你最多也就只能进个八对不对啊,你也不能进的超过它,这个表示数码的这个数对不对啊,所以在这的话呢,我们也是一样的啊输出啊,输出的结果呢,应该是这个叫做15到零的这个。
19:44
S啊,然后呢,还会有一个什么呢?啊,有一个叫做Co啊,因为呢,我们不排除什么呢,我们不排除呢,后边还会有人呢做什么,就是说哎,我们做的通用一些啊,如果说真的要做个16位的加法器呢,其实是没有CI的,你说两个16位相加要什么CI干什么,对不对?然后呢,Co的话呢,一般是有的,因为要知道它是不是溢出了,有说什么溢出了,你想啊,16位最大值加上16位最大值,它一定用16位表示不了,对不对,所以Co呢,一般情况可以表示什么,表示是不是溢出了,那边是不是溢出了,那么在这儿的话呢,我们来呢,呃,我们就先这样认为吧,啊后边的话呢,我们可以认为它是溢出了,当然也可以认为呢,它是一个高位啊,都一样好,那么在这我们来看,首先呢啊,我们16位加法器会不会设计呢?我不会,但是呢,哎,我先往下来分啊,新建vrlo OK file另存为啊干什么呢?我们再存一个啊RTL存什么?我们存成一个叫做巴比特。
20:44
特的啊,我们存成一个叫做ad巴比特的啊保存,那么巴比特的呢啊,它的这个结构呢,和这个是一模一样的,我们就复制一下,只不过呢,它的每一个相加都是七到零的啊,七到零的啊和七到零的啊,因为呢它呢是八位的对不对,那么上面这个地方呢,应该是什么?应该是八位对不对,那应该是八位好了,那么这样的话呢,我们把这个八位呢,做一个什么,做一个例化,也就是我们例化到我们的16位当中去保存啊例化好,那么这样的话呢,我们来呢,就可以说去做它这个叫做八位的力化了,对吧,也就是说呢,我们先呢把结构搞定啊,比较难的啊,结构想法啊,反而呢,每一位当中设计呢,就可能会简单一些,对不对,好我们往后去做。
21:44
好,那么在这的话呢,我们来写一下是吧,它呢应该是A的七的零,B的七到零,然后呢,它应该是CI啊,注入CI,那么S应该什么,S也应该是七到零,那么这儿呢,注意不是Co啊,因为呢它只是低七位啊,这就学零啊,它是什么?它只是低七位啊,相加会产生个进位对吧?因为我们呢,还有高八位还没加呢,对吧?所以在这儿的话呢,我们先定义一个叫做C-七零啊,就是七到零的一个进位啊,我们这么来标记它啊,七到零的一个进位好了,那么下边的话呢,其实呢,还是一个八位的群加器,对吧?所以我们就干脆的就给它复制一下啊,那么复制的话呢,又不能叫同样的名字,同学们给这个起成一啊,代表的是低位啊,跟这个起个名字叫二代表高位,那么这个相加就应该什么,就应该是高八位相加啊高八。
22:44
相加啊,然后呢,这儿呢注啊注意啊,他应该什么,它应该是C7到零啊,就是说它的第位的进位应该是啊,人家第八位的进位啊,这样的话呢,应该是S多少呢?应该是15到八,那么最终的输出呢,应该什么?应该是Co,那应该是Co,也就是说呢,它最终的啊这个近内应该是Co,那这样的话呢,我们做一个综合分析啊,我们做个综合分析。
23:11
也就是我们说呢,做完综合分析以后啊,做完综合分析以后啊,我们就可以干什么了,哎,我们就可以啊看到啊这两个啊八位的全加器啊,是如何来构成16位全加器的,那是如何来构成16位全加器的,那么呃,它就是一个结构,那么这个结构呢,啊,应该跟我画的呢,没什么区别啊,应该没什么区别。好,我们来看一下啊。好啊,总线分裂这给大家说过了是吧?哎,这就是七到零的加上七到零的加上CI,得出七到零的,得出一个呃,叫做C7到零的值,然后C7到零的值呢,又给了它,然后加上八到零的啊不是这个15到八的,15到八的得出一个最终的Co,以及它呢,还会得出一个什么呢?得出另外那高八位的结果值,然后他俩拼成一个什么呢?16尾的啊,这就是我们啊在这个简易图当中吧,给大家画的这样一个东西啊,画这样东西好了,那么下边的话呢,我们来说,既然做到这儿的时候,你就发现什么呢?就是说只要咱们设计出来什么,只要咱们设计出来八位的悬加器,整个设就出来了,对不对?所以我来设计八位的询加器,那好了,你既然都已经哎知道16的悬加器干什么可以啊,分类成两个八位的,那好了,那对于我们来说干什么我就可以干什么,那就可以把两把这个八位的分成么?分成两个四位的对不对?所以该茨在这儿呢,这个跟这个还是差不多对吧,所以我就打开这。
24:43
这个然后我直接另存为一下。啊,另存文的话呢,直接把它改成斯比特保存啊,这变成斯比特了啊,这边已经变成斯比特了,然后把这改成什么,这改成四。啊,把它改成四啊,然后呢这呢改成什么三到零三到零三到零好了,这样会有这个四比色对吧?然后呢,我们再打开我们原来有的这个巴比特,这个在这儿啊,它没动,然后干什么呢?然后我们是不是就把两个四比特的例化到这个巴比特的里边去啊,但是它利化呢,其实跟这个巴比特例化没什么区别,因为我们叫的名字都一样,对吧?所以干脆我们就复制粘贴一下,然后呢,我们去做一个修改啊,做个修改,比如说呢,在这儿的话应该什么,应该是四比特对不对啊,应该是四比特啊,然后四比特啊,然后呢,这个应该什么,应该是它的三到零啊,加上CI得的结果是三到零,那么这个C呢,应该显示C30啊在这的话,我们来起个名字啊,叫where啊,叫这个C-三零好了,那么也就是说呢,用了低四位的啊,用了低四位的这样的一个呃,全加器啊,添加得了个C30,那么这个呢,称之为个高四位相加啊,高四。
25:56
可想讲啊,这儿的话应该什么?应该是这个叫做七到四啊七到四,那么这儿的结果应该是数C30,然后这儿呢,应该是S的七到四,那最终结果呢,就是Co啊,最终结果就是Co,那么这样的话呢,我们再来进行综合分析一下,也就是说呢,我们来看一下,就是说用了两个八比特的悬加器构成16位跟了16比特的添加器,那我么来看一下,我们在这儿又写了一个八位的悬加器,对不对,那么用什么用的是两个四位的添加器来构成了八类添加器,我们来看一下,根据我们的想法啊,我们来看一看它的连接方式,或者说它的这个这个这个当中的一些呃东西啊,是不是跟我们想的一样,那它应该呢,和这个八位的呢?呃,是类似的啊类似的,我们来看一下阿尔T奥。
26:48
啊,我们打开之后呢,发现每一个这个巴比特里边都有了加号,点开加号啊加号里边你打开什么,就输入是八位的总线分列第三位啊把低四位加低四位加近位得到低四位啊输出Co Co又当成高四位的CI啊高四位加高四位加低四位给过来的一个CI,然后最终得出COO,以及最终得出的啊高四位的和的值啊最终进行拼呃,这个这个综合到一起变成八到零啊是这样的好了,那么对于我们来说的话呢,我们还可以接着再往下走,什么呢?现在不是已经有了四位的询价器了嘛,对不对,所以怎么办呢?我们在file另存为一下啊叫什么呢?叫AD2,其实大家会发现呢,我一句有用的代码都没写啊,其实都是在例化调用,例化调用,其实什么都没写对吧?哎,Ad,然后呢,点击一个保存,那么在这的话给它改成什么,改成两比特啊,就是两比特压器。
27:48
那么这的话就变成变成就是一到零一到零和一到零好了,那么在这儿的话呢,我们干什么?我们再把这个四比特这个打开,然后它应该有了有两个一比特的构成,对吧?我们为了简单起见呢,还是啊从这个位置呢,进行这个叫做复制粘贴,然后去里边去修改啊打开斯比特啊粘贴,那么在这的话,我们先改啊改这个啊两比特全加器啊啊叫做两比特全加器,那么这个地方因为是两比特对吧,所以应该是一到零啊一到零,然后呢,CI啊得出的S是到零的,那么最终这个的输入呢,应该是一到零的啊这样一个进位啊,我们来写一个Y2啊叫做什么叫做CC-幺零,好,那么这样的话呢,我们就会得到一个啊低两位相加啊,然后呢,我们再去得高两位相加,然后高位加高位,最终的这得什么?得到一个三到二三。
28:48
三到二以及什么这地方应该是C10,最终结果呢,应该什么也是C3到二啊三到二好OK,那么这样的话呢,我们就得了什么,我们就得了一个叫做啊这个四比特的全加器啊,是由什么?是由两个两位的啊,两比特的添加器构成的,我们再来去综合分析一下啊,就是说我们这个RTL视图呢,是可以从上层一级一级看到最大层的,它的连接方式非常的清晰啊,非常的清晰,也就是说呢,我们去做的时候呢,一定要学会分模块是吧?那么当我们看完这个正确了以后干什么,我们要干什么去做,这个叫做一位的全加器,对不对啊,一位的全加器,就是把一位的全加器呢?哎,也要在这儿例化两遍,对吧,也就是一位呢,两位的全加器,应该有两个一位的全加器构成啊,两个一位虚甲器构成,我们来看一下RT1视图。
29:43
那应该打开啊,再打开啊,这就变成什么都是两啊,两比特相加啊,低低两位相加啊,高两位相加,再打开这个,呃,它什么呢?再打开这个两位的全加器的时候呢,里边就是空的,发现没有,因为咱们没有写东西,对不对啊,没有写东西好了,那么下边的话呢,我们再往下写啊,那么两位悬压器怎么办?应该有一位的悬压器来构成,对不对,那么一位的悬压器我们有嘛,其实呢,在这的话呢,我们是有的啊,我们是有的,那怎么办呢?我们这么做啊,因为全加器我们不设计了,因为我们已经写过了,对吧?怎么办呢?我们一找到一位的全加器,找到RTL,也就是说我为什么分到RTL里边,因为方便去做移植啊,也就是我们可以直接按住CTRL,把这三个啊,把这三个点位直接复制一下,复制到哪去呢?复制到我们的。
30:33
叫做16比特当中的RTL里边去往里一粘啊粘进去,把这两个粘进去,粘进去以后呢,它还在没在工程当中对不对,所以怎么办呢?把它添加到工程里边啊,这个我们讲过对吧?在工程里边添加文件,然后呢,我们找到RTL,那在这儿呢,也没有必要大家呢去选择,比如说比如说巴比特已经有了,对吧,那我只选这个一半加器和霍门是吧?没必要你就直接全选就行了,因为它呢,如果已经有了的,它不会再次重新添加,它不会添加两个的啊,所以在这儿的话,你们来看一下啊,它还是什么呢?十六八四二一半加器和霍门啊,它没有说已经有了十六八四二,后面会再添加一遍,不会的啊,所以一般情况就全选就完事了,然后在这的话呢,干什么呢,也就说我们有了一位巡压器了,是不是要在这例化一位巡压器啊,所以我们干脆呢,还是再抄一下啊,因为呢,我们的命名方式呢,都是按照我们的想法呢,是基本上是统一的,对吧?所以在这的话呢,我们来进行一个粘贴,好我们把它改成一位的群加器。
31:34
一位的巡价器啊,然后呢,这个地方呢,就应该什么,就应该就是A0了啊,因为只有一位的对吧A0,然后呢,这个地方呢,就是S0,那么这个地方就是C00啊,我们可以认为就是C00啊然后呢,这个地方呢,C00没有定义对不对,我们来定义一个叫做C_零零啊然后呢,这个地方呢,应该是也是伊比特,伊比特这个地方应该什么,应该是A1A1B1C00S1,最终得到Co啊那好了,到这儿的话呢,我们就已经呢设计完了啊,已经设计完了,我们再进行综合分析一下啊,进行综合分析一下,也就是说呢,我们从呢诶最顶层一步一步做到什么,做到了一个已知模块,就是我们的一位全加器啊一位全加,所以我们这个设计当中,你看包了什么,包含了七个点位,包含了七个点位文件啊,那么这样的话,我们就在这个hiray的位置上就能看到是吧?哎。
32:34
一个16位的全加器应该是有两个八位的全加器,每一个八位的加器都是有两个四位的全加器,每一个四位全加器都是由什么两个啊,这个两位询价器,每一个两位询价器都是由两个一位询价器,一位的询价器是由两个半价器和一个R收入货门构成,所以这样的话,到这已经到最底层了啊,已经点不下去了,对吧?我们来看一下RTL,那么在 Rt1视图当中的话呢,我们也可以刚才那种过程对吧?啊八位的群加加啊,这是16的两个八一个八里边是两个四一个四里边是两个二一个二里边是两个一一个一里边是一个半价器,一个半价器和一个25货门,那半价器再点开就是一个雨门,一个异货门,这个就是雨门,异货门,这个就是一个货门,所以说到底了,我们所有的设计都是由什么,都是由一个宇门,一个宇门,一个货门,两个异货门构成的。也就是说就只有这。
33:34
几个门就不断的去连接起来,就能干什么,就能够形一个什么,就能够形成一个16位的一个全加器的结构,那16位全加器的结构,那么我们做是做完了对吧?一共用了32个资源,那么我们做是做完了,那么它对还是不对呢?啊所以在这儿的话呢,我们今天呢,来给他做一个什么验证,我们验证干什?也就验证16个加器就可以了,是吧,我们来S啊,我们来呢,写一个还还没写是吧,还没写TB是吧,新建。
34:06
File。呃,这个有问题了。File另存为。啊,我们在msm当中,我们给它起个名字叫下划线TB。好,那么今天我们在这个TB当中的话呢,我们给大家呢,来讲什么,来讲一些就是仿真当中的一些什么呢,一些小技巧啊,小技巧啊,就是呃,我们用这些小技巧呢,干什么就能够说呃方便我们去做呃一些验证之类的东西啊,好16倍的全加器粘贴啊,然后呢,我们来去做一个点点,那这个例化给大家讲过了是吧,也就是说呢,我们也可以去生成,然后复制粘贴过来,然后我觉得呢,也没什么省什么作用啊,因为他呢,还要乱七八糟再改一堆啊,或者说我们也不是说这个就愿意偷个懒啊,然后呢,呃整过来,那那样的话,我就不去做这个各种括号啊什么对齐了,对吧,我们既然要去做开发做设计,我们就是不怕麻烦啊啊,然后我们来去写一下。
35:22
啊,Reg,那应该是15到零的A啊,Reg啊是15到零的啊B啊,然后呢是reg啊,然后是CI啊,然后呢是呃,Where啊,应该是15到零的S啊然后呢和where啊是我们的Co好,那么在这的话,我们来写一下ABCIS和Co好了,下边我们开始给值了,对吧?那么这个给值呢,我觉得大家现在已经给出什么给出这个经验了,对吧?Repeat啊然后呢,直接就写这个20吧,A end,然后干什么呢?直接就是A等于Dollar r100分号,因为呢,它是一个16位的是吧?它要干什么?它是一个16位的值,那么在这的话呢,大家可以去计算一下,就是16位。
36:22
给的也就是16个幺是最大值对不对?16个幺,那么它能够表示最大值是多少呢?注意啊,16个幺能够表示大值是65536啊是不是65535啊六,因为二的16次幂是65536,那么在这儿的话呢,我们啊,只需要对什么呢?叫做65536去求余就可以了,好,那么B呢,也是一样的啊还有什么,还有个C对不对?那么C就是低位的进位嘛,低位进位的话呢,值除了零就是一嘛,所以就是对二取域,然后呢,就是啊延时20即可啊这就我们做完了这个设计,那么这个这个仿真写完以后呢,很多人就这么去仿真去了,那么我想问个问题啊,你就这么去仿真之后呢,可不可以,当然可以了,但是呢,呃,难度会比较大,比如说为什么难度大呢?我来问个问题啊,假如说你仿真出来了A加B啊,A是一个三两万多的,B是一个3万多的,结果是一个5万多的,但是呢,这个值呢,你知道它对不对吗?就万一你这个当中设计某一步出错了呢,就是它。
37:22
算错了,或者他少算了几个数,那怎么办?有的时候你也不知道,你不知道怎么办呢?在这儿啊,我教大家去做很多TB当中的一些事情,你比如说举个例子啊,现在咱们做什么,现在咱们是用了很多的这个叫做呃,这个这个抑或门啊,或者哪些门啊来构成,来构成了一个全加器,对不对,但是大家要知道啊,加法最简单的,因为我们在这儿的话呢,我们就可以去写加号,加号是可以代替加法器的,那怎么办呢?在这儿我先定义这样一个值,你比如说我定义一个where,定义中啊,定义一个也是15到零的什么呢?我叫TB-S然后呢,我写一个ZTB-S等于什么?就等于A加上B,我就写个加号啊,不就写个加号,那么大家想象一下啊,我们设计这个加法器,不就是代表了一个加法的功能嘛,对不对,所以呢,我就直接呢在这呢,再加上一个CI好了,大家想象一下,如果说发现TBS和S不相等。
38:20
那问题来了,就是咱们做错了,如果TBS和S完全一样,那就证明我们做的是对的,为什么?因为我们做的结果啊,做的这个结果和它加号的结果是一样的,那就证明我们肯定是对的,对吧?那我们如何来证明它的进位对不对呢?啊,如来证明他的进位对不对呢?那么在这儿的话呢,就可能就不太好做啊,因为呢,你也不知道他有没有进位对吧,也就是说呢,他们加完之后啊,比如你两个15位的值相加啊,他们呢,有可能就大于什么呢?16啊,不是两个16位相加就有可能大于16位的,对吧?所以呢,你再用16位的去接收呢,它呢有可能会溢出,溢出了以后它只要低位,所以跟我们的S是一样的,就只要低位嘛,那么高位呢,其实高位肯定什么,如果说我们想象一下它是16位对不对,我们想象成A和B是17位的,那么是不是它高位两个都是零啊。
39:13
它会前面补两个零对不对,那么如果要有进位的话呢,是不是直接就进上去了,对吧?所以在这儿的话呢,我们来做这样一件事儿,什么事儿呢,也就是说呢,我们直接呢在这儿啊改一个字干什么呢?我们先不叫这个TBS啊,我们可以说呢,叫什么叫这个TB啊,叫cos啊TB cos干什么改成叫做这个17位的,那么TB cos的话呢,啊呃,注意啊,它不叫这个cos啊,叫cos就是进位加结果啊,那么这样的话,相加的话,就看什么就得到一个正确的值,因为它是17位的,它俩相加肯定等于这个值,但是的话呢,我们在这儿呢,哎,再来定义两个值,比如说where啊就是什么,就是叫做这个15到零的什么呢?叫做TB-STB-S和什么呢,和我们的叫做TB-Co那这样的话怎么做呢,就是。
40:11
就是TB-S就应该等于TB-cos的。啊,Cos的D16位,也就是说呢,它是一个本位置对不对?ZTB-Co就等于什么,就等于TB-C啊cos的最高位就是它的第16位对不对?好,那么这样的话呢,我们来呢,利用了这样的一种加法的结构啊,然后呢,得出来了TB,也就是说这个TBS和TB Co它的结果一定是正确的啊,它都不会不会错啊,它一定是正确的,而我们要验证一点就是啊,当ABCI等于任意值的时候,S和TBS是不是一样,Co是不是和TB Co一样,如果都一样的话,就证明证明我们做的是对的,如果一旦出现不一样了,就证明什么,证明我们的设计做错了啊所以在这的话呢,给大家来讲了这样的一种呃方法啊,那么这种方法什么呢?我们在去做设计的时候,经常去用啊,经常去用。
41:35
是不是没编译呢,编译一下。那么也就是说呢,呃,我们这个仿真呢,也是比较的这个简单是吧,只不过今天的话呢,又给大家在里边什么呢,这个加了一个什么,加了一个这个叫做啊,这样的一种方式啊,一种方式啊。
42:11
那么这个呢,在后边验证啊,我们会用的很多,特别是做到后边做信号啊和做图像处理的时候啊,我们呃会考虑呢,给大家呢,用两种方法来做,比如说呢,我们用呃产生统一的信号源,我们用ipga输出个结果,然后呢,我们呃在用MATLAB输出个结果,然后我们对比这两个结果啊是不是一样啊,谁的特性会比较好啊,到时候我们会来简单对比一下啊,我们会发现呢,他们两个呢基本上是一致的啊好,我们来看一下啊,这么多数实际上对不对是吧?我们来把名字缩减一下,然后把他们所有的都改什么都改成无符号的十进制。好,我们来看一下啊,什么呢?呃,13604加上24193,加上进位为幺,结果等于37798,你说对不对,我也不知道,你还拿计算器算,太麻烦,怎么办呢?我们就做一件事,就把S往下一拉,把TBS往下一拉,就看这两数是不是一样啊,37798啊,53617啊,这个叫做54904啊,这个48772啊,20348啊四三啊都一样是吧?然我们再来看一下啊,TB Co和Co是不是永远都是同高同低的啊,很明显一模一样对不对,这全是低,这全是高啊,然后呢,我们再来呢看cos,其实TB cos才是对的结果的,为什么?你看这儿来看一下,五万多加上六万多,结果等于四万多,可能吗?肯定不可能,为什么呢?因为呢,你六万五万多加六万多,怎么可能四万多呢,啊在这里有个什么,有个进位对不对,有了个进位啊,有了个进位,所以呢,这个进位。
43:50
的话呢,就是说啊,会有一个正确结果,应该是11万多,这才是对的啊,会有个进位啊,就好像什么意思呢?就好像说呢,你算这个三加八等于几啊,你这个只是本位的结果,对不对?S和TPS只是本位,就三加八也等于三加八就等于一,这是对的啊,这是对的啊,那么你要考虑什么可能进位,它进了一位,进位位代表进了一位代表十对不对,那么在我们这儿来说的话呢,哎,TB Co代表多少呢?它应该代表哎代表的是16位嘛,以进位进的进到17去了,不对,进到17里边代表多少,代表就是二的16次幂啊注意啊,在咱们这里边正好不一样,因为二的零次幂啊,因为第一位代表代表是二的零次幂,对不对,然后第五位代表代表二的四次幂,所以进到17位的代表什么?代表是二的16次幂,所以这样的话呢,你进了个一,就代表二的十六二十六就是65536,所以呢,大家来看一下48772加上6536,它应该等于114308,这个是没有问题的,我们可以算一下。
44:43
计算器啊,应该等于座少,应该等于是48772,呃加上65536啊,等于114308啊,114308啊,这是没错的啊,所以说对我们来说的话呢,哎,我们就知道了啊,就是说呃,如果说你要验证对不对啊,那如果说你要每个数都去验证一下,自己拿计算机算一下,很费劲,所以在这的话呢,我们给出了一种就是说啊,我们直接用正确的啊,直接就是正确的方法啊,直接就是正确的,然后呢,我们去呢,诶,验证我们设计的输出,以及和正确的之间去做什么做个对比。
45:26
啊,就是我们来看一下,它两个一不一样啊,一样的情况下我们就知道呢,它是对的,不一样就证明错了啊,证明错了啊那么在这儿啊,那么呃,在这个model SIM当中的话呢,它也有一种高级用法,什么高级用法呢?你比如说呢,我们都知道什么Co应该什么Co应该是Co呢,应该是这个这个S的一个进位,对吧?也就是说呢,如果说呢,我们SS是15到零对不对,如果说呢,我能把Co嘛,把Co放到哪儿,我把Co放到这个S的高位,比如把Co改成S的16位,那这样的话呢,S是不是就已经是拼到一起,就和呃,T cos是一样的了,所以那怎么做呢?在这我们可以来做一下啊,就是选中S啊,不注意把Co放到前边,S放到下边啊选中S,选中Co啊,选中S选中Co,然后呢,选中两个之后点这有一个wave啊,Wave里边有一个什么呢?有一个第三项叫组合信号啊,组合信号我们点一下啊,在这个组合出来。
46:26
它的最终的名字叫什么?我们叫做cos,然后的话呢,叫这个名字以后,这就选top down,什么都不用管啊,直接点击OK,然后就会出现一个新的cos信号,这个cos信号呢,就什么它就是一个17位的值,你会发现呢,它的零到15就是S的零到15,而它16等于什么?等于Co嘛,所以这样的话,我们把cos右键改成无符号位以后,你会发现这个数和TB cos是完全一模一样,它也会等于啊,十一万四三零八。啊十一万四三零八,所以的话呢,对于我们来说的话呢,啊对于我们来说的话呢,诶就比较的这个方便啊,就比较方便啊是4308啊4308好了,那么呃,对于啊,对于我们来说的话呢,我们这个呢,就先讲到这儿啊这先讲到这儿,所以大家的话呢,一定要去呃注意啊,一定要注意啊好了,那么呃,对于我们来说的话呢,这个16位的一个什么呢?全加器呢,我们就涉及到这儿啊,就是说希望大家能明白什么,明白这样的一个呃结构啊,明白这样的一个结构啊那么呃,对于呢,我们来说的话呢,我们下边还有任务是吧,做什么做个16位的什么16位的减法器,那16位的减器,那好了,那么现在的话呢,呃,大家自己来想一下啊,就或者说我们一起来想一下,你说我要去做一个16位的减法器,我应。
47:58
该怎么做呢?那好了,那我现在先不考虑16位的减法器,我先考虑什么,我先考虑一个一位的减法器啊,我先考虑一个一位的减法器,那么一位的减法器,它因为它没有半减器,对不对,它没有半减器啊,所以怎么办呢?我们就想象一下啊,一位的半减一位的这个全减器,或者一位的减法器应该怎么做呢?应该什么输入有个A,输入有个B,是不是就是A减B,然后干什么,得到一个什么,得到一个结果对不对?
48:28
得一个结果,这是很正常的,但是一定要注意啊,你A减B的时候呢,万一要不够减呢。对不对,万一要不够减怎么办?你不够减就有问题了,对不对?所以要考虑什么,就是我们会不会往前,什么呢?加法是往前进位,那么减法呢,是干什么,是往回。借一位对不对,是不是会有一个借位回来,也就是说我们会不会说,哎从什么呢?哎,就是说从前面啊搞来一个什么呢?搞来一个借位,也就是说我们会输出一个什么什么输出一个借位单元,就是我们借别人一位啊,借别人一位,那么这个借位的话呢,哎,我们先不不管是什么来表示啊,比如说我们用X来表示啊,X来表示也就是说当X等于零的时候,就不借前面的,X等于一的时候,就等于借前面的,啊这是一个借位,好了,那么我们来想一下,是不是就变成这样了,也就是说呢,我们会什么AB。
49:24
它俩相减会得到什么?会得到一个本位的结果和一个X,就是说我们需不需要借前面一个人的一个数,那需不要借前面那个数,那好了,所以就是什么就是abxx,但是呢,一定要注意啊,如果说呢,我们只算什么,只算一位的情况下的话呢,就什么就是AB啊SX,但如果说呢,我们算什么?算的是哎A1A0啊,减去B1B0的情况下,那很好,那么A0A0减去B0就会得到一个S0,然后的话呢,因为它呢,A0减B0,因为都是字母对不对,你也不知道它会不会借位对吧?所以我跟大家讲了,一定会有借位,只不过借,只不过借回来的是零还是借回来的是一而已,对吧?那怎么办呢?所以我们会产生一个X。
50:12
那么这就就完事了,那么对于A1B一来说的话,它是不是这样,就是A1要减去B,还要减去什么,还要再减去X对不对啊,减去就是第一位向它的借位对吧?也就是说呢,A1被借走一个对吧?诶被借走一个,所以的话呢,诶它呢会减去,也就是A1减B1减X,那么它呢,就得这个S1,然后的话,前面呢,就是他还会再往高位再去借他,因为他要万一不够减两个数怎么办,他还要再借对不对,所以真正的一个啊,伊比特的减法器应该什么,就看这个。就什么就是说哎,两个数相减,或者说是这个数减,这个数减,把A减B,它是什么?再减去一个第一位的界位啊,低位的界位,然后呢,得到一个本位,然后呢,再考虑A要减,B减X要不够减怎么办?还要什么输出一个向高位的借位,就是我需要在高位再借回来一个回来,所以这是什么?这我们称之为可以理解为就是一个全减器啊,以称之为叫做一个全减器啊全减器,那好了,我们来考虑一下,如果一位的全减器出来了,那么16位的减法器呢,其实也就出来了,对不对。
51:26
啊,16位的全减器也就出来了,那么今天啊,呃,我讲课我就只讲什么,我就只讲一个,就是这个叫做一位的全减器,我给大家设计出来啊,然后呢,我再设计什么,我再设计一个什么叫做两位的,或者我是一个四位的啊这个减法器出来,然后大家给大家留一个问题,就是16位的大家看怎么来做啊,怎么来做好了,那么在这的话呢,我们来呢,给大家做一个一一位的什么呢?一个减法器出来。
52:03
好,那么我们在这儿给它起个名字啊,叫新建文件夹,叫sub-一比特啊,减法啊,呃,叫subber也可以啊,或者就叫sub也行啊,没问题。啊叫doc好,那么呃,对于伊比特的这个减法器来说的话呢,我来写一下是吧,就是一比特减法器设计报告。伊比特。减法器设计报告一下。说一下好了,那么伊比特的减法器的话呢,它的设计要求是什么呢?哎,设计要求啊,设计要求是什么?哎对于我们来说呢,就是什么?哎输入呢,呃输入啊有啊A啊,或者说我们来举个例子就是什么?就是这个叫做被减数啊为伊比特啊,减数为伊比特啊然后呢,第一位啊,第一位啊会有向向本位的借位输入借位啊输入啊,你低位啊,你低位万一不够减,人家还要从你这来借,借一下对不对,那在这儿呢?哎借位输入啊伊比特啊那么呃输出的话呢,呃输出的话呢,输出就是什么?输出会有这个会有什么输出会有这个本位结果。
53:59
啊,本位结果伊比特啊以及呢,诶向什么,以及向这个高位啊界位啊输出啊伊比特,因为我们要考虑我们是不是要向高位啊去借位,对不对,那么在这的话呢,呃,我就为了方便起见啊,我就把设计要求和我们设计分析写到一起去了,比如说被减数信号就是A啊是一比特的啊减数信号就是B,就是一比特的,那么第一位啊,第一位啊向本位的借位的输入称之什么呢?我们称之为叫做这个啊,像我们刚才所写的叫X呢,叫XY叫Xi,那么本位的结果呢,称之为叫做X,那么像高位的界位称么呢,称为做X,叫做XSO啊就是这样的一个结果啊这样结果那好了,那么根据我们这个呢,就干什么,我们就可以说,哎,写出来一个叫做什么叫做一个非常简单的一个模块,对不对,也就是在这的话呢,我们可以写一个模块啊这个。
54:59
它名字我命名上命名就是sub伊比特啊,所以在这的话呢,我就直接啊给他画一下。
55:05
Sub-一比特。哎,没有颜色呢。啊,选成无颜色了,应该选这个啊好,然后下边的话呢,我们来去。画一下啊。啊,那么它的输入呢,应该有这个。A信号B信号和CI啊,不是和这个Xi信号。好,输入一个A信号啊,然后呢,我们来。有B信号。
56:00
还有这个叫做C啊,叫做Xi信号啊,因为刚写完全加器啊,老脑子里边老是c cii的啊,然后呢,输出的话呢,应该什么,应该是我们的叫做啊S型号啊,就是本位的减法的结果啊,然后呢,我们还有什么,还有就是我们的一个叫做啊。还有什么,还有一个就是叫做这个呃,输出的进位的结果啊,叫XO啊好了,那么那么对于这个应该怎么来做呢?在这的话呢,这个的话呢,如果说呢,我们也可以去写if else,当然呢,比较费劲,对吧,对于这样的比较简单的话,我们怎么办?我们可以直接去列一个什么真值表嘛,啊,我们可以列出来一个真值表啊,就是说关于这个减法器的一个真值表出来。啊,减法器的话应该是五个信号对吧。好,那么在这的话呢,我们来去给他。变窄一点啊,改成。一就差不多了,OK,好,那么AB xis和XO好了,那么最终结果的话呢,A等于什么,A等于零,B等于零,它等于零,那也就是说呢,A是零,减零减零,结果等于零,也不用借位对吧?然后呢,000,也就是这开是一了啊,应该是零减零啊,零减零等于零,再减零等于等于你需要借出来一位,因为二进制嘛,就是十进制当中借一当十用,而二进制当中借一当二用,对不对,所以你需要你需要借一个,然后呢,你就回来二二减一就是一,所以呢,需要一个借位,然后呢是零一。
57:45
零,那么这样的话是一样的对吧?因为是减B和减X3是一样的,所以也是一,它也是一,然后这个呢,就是011,那就是说零减去两个一,你借完之后就是二,对不对?所以呢,你就把两个一就减没了,还是它对不对?那么高位是一两个都是零的时候呢,结果就是零,然后呢,也不用借位对不对?然后呢,高位是一的时候,然后呢,这是零,这是一的时候呢,它呢,结果是零,也不用借位对吧?因为你本身就有一,然后呢,这还有一个一,然后呢,这是这应该是一,这应该是零,那么结果是零,它也是零,最终就是111,那么结果呢,哎,结果应该是幺,那么输出的界位置呢,应该借一个一啊,他需要借一个一啊,大家来看下有没有什么错误啊,有没有什么错啊,这个地方应该是幺啊,写错了啊,呃,我说怎么感觉不对劲呢,应该是四个幺四个零才对啊,也就是说呢,幺减零,减零等于结果等于幺,不用借位啊,应该是这样的,那么呃,通过这个的话呢,我们。
58:46
就干什么,我们就可以得出一个呃,比较简单的一个什么真值表啊,我们可以得出真值表,那么呃,根据这个真值表的结果呢,我们再来分析一下是吧,零减零减零,结果等于零,不用借位,零减去零减去一啊,那么就应该是结果是一,需要借位,零减零啊,零减一减零啊还是一还是一啊,零减一减一,结果是零啊,需要借位啊幺减零减零啊,结果是幺,进位是啊,借位是零幺减零减一啊,结果是零啊,进位是零啊,这个幺减幺减零啊,是零零啊幺减幺减幺啊,结果是幺啊,结尾是幺啊没问题啊,那么这就是一个最终结果,那么这个结果啊,这个结果我们做完以后怎么办呢?我们是不是要把这个真值表给实现一下,那么这个实现的话呢,我们可以去用case语句把它全抄出来,就是我不想化简可以抄出来,这没问题啊,我们。
59:46
原来呢,也可以说呢,我不抄真值表啊,我怎么办呢?我就直接选他,他不一共就有四项嘛,对不对,我把这四项全抄下来也可以啊,也没多也没多少,那么在这儿的话呢,我来给大家全抄一下啊。
60:00
嗯,那么下边的话呢,我们来呢,往下来做一下。应该是我们的RRTLRTL。和我们的。啊,和我们的QPR接啊,然后呢,我们来去启动这个,呃。啊,新建个工程啊,这个cor呢,呃,不光是cor吧,有好多软件都有这个都有这个问题,就是你打开电脑之后,第一次启动它可能比较慢啊,呃,那么后边以后启动可能速度就比较快一些啊。呃,它它嗯叫减法器sub伊比特在这儿QPR接保存啊,他下一步下一步下一步他。呃,2568选中下一步啊,他下一步。
61:11
也就是说我们再建个工程啊,去把这个伊比特的这个减法器我们做一下啊。啊,另存为啊,然后呢,我们来做一个这个叫做呃。RTL是吧,保存好好,那么对于我们来说的话,它的输入呢,应该有这个输入啊,应该有A啊,输入应该有这个B啊,然后输入啊应该有Xi啊输出呢,哎应该有呃叫做S啊输出结果呢,应该有XO好了,那么在这的话呢,我们来呢,在这我直接就抄了啊,所以我我直接就把这一项给抄下来,比如说对于因为我们知道他就是把腰的项拿出来干什么,拿出来去做箱货对不对,那么之前我一直在说我没有去做对不对,我今天不化简,我直接做啊S等于什么A非与上BC与上Xi啊在这我们写一下在S等于它应该等于什么,它应该等于四项的货,所以我先把。
62:27
啊,这个呢,我先给写出来啊,它应该等于四项的货,这是没问题的,然后第二个的话呢,第一个应该什么,它第一个S应该那什么等于是A非B非啊与上Xi啊所以在这的话呢,我们来写一下啊,这个当中应该是括号取反的A。与上括号取反的B,然后再与上Xi啊,这是我们第一项,第二项的话应该什么?应该是A非啊AC啊与上啊B与上非的Xi,也就是说呢,应该是啊括号的非的呃,A,然后。
63:09
与上B,然后再与上啊括号的非的Xi啊,然后再往下啊,下一项应该什么?下一项应该是它,也就是说A与上B非与上Xi FA啊,也就是说这一项是A与上括号啊里边是取反的啊这个B啊,然后呢在与上,然后括号,然后呢是取反的Xi啊然后呢,最后一项呢是什么?最后一项应该是呃,三个都一样是吧?就是A与上B与上Xi好了,那就是A与上B与上Xi好了,写完了,那么呃,再往下边的话呢,我们来写一个Z,那XO是吧?XO等于什么呢?XO的话呢,它也是等于这四项对吧?也就是说它不是等于这四项,它还是等于这四项的货,所以在这的话呢,我先给他拿过来啊,拿过来拿过来以后我们来看。
64:09
看一下,首先第一项呢,第一项和S是相等的,第二项呢,也是和S是一样的啊,这两项都不用变啊,第三项呢不一样啊,第三项不一样,第三项第三项应该是A非啊与上啊这个bxi第四项一样对不对?所以在这的话呢,我们把第三项改成什么?改成AC与上B与上Xi啊第三项改成啊A啊看一下说完就忘了,等于啊,AC与上B与上Xi啊AC啊就是把这个A的非给做出来,然后呢,后边两个都是原变量了啊好,OK,那原变量出来了,那么这样的话呢,我们来做一个综合分析。啊,综合分析,也就是说在这的话呢,我没有去做任何的化简,就是说呢,直接把我们就是做出这个最原始的这个波尔百达市,我给他搞出来了啊,我给他搞出来了啊大家呢,呃,做做的时候呢,呃,你要愿意这么做也可以啊,包括我们写注释的时候,也可以说这是第几项,第几项第几项都可以给他写出来啊,都OK。
65:19
啊,那么这个呢,我们去看RTL视图呢,好像必要性也不大了,对吧,因为你去看RTL视图的话呢,你会发现呢,这个里边的话呢,就是我写的那么多项的一个呃抑或或呀语啊这样就比较麻烦是吧,那怎么办呢?我们干什么,我们直接就去这个给它做什么,做一个呃仿真。呃,Msm,那么这个做仿真的时候呢,呃,有些人说我们可不可以说这个去干什么,呃,再去写这个,呃,就是呃随机数是吧?呃也可以去写啊,但是有很多时候我们为了验证方便啊,我们怎么写的都有啊,我们怎么写的都有啊,在这儿的话,这个我就不写了,因为我有已经有真值表了,对吧?那么在我已经有真值表的情况下呢,我还是尽可能的按照呃,就是这个真值表的顺序,然后我去给他写,然后写完之后呢,我去对这个结果的时候啊,就相对来说可能会容易一些啊,相对说可能会容易一些,只要保证真值表没错,它的结果就不会错啊,我们来点一下RG。
66:46
Sa b r Xi y X so啊少写了一个分号,好那么ABX3SCO,好那么在这我怎么写,我就不用随机数了啊,我就直接用这个咱们最古老的方式了啊,A等于一撇B0啊B等于一撇B0 Xi等于一撇B0,然后延十二十好然后呢,去复制粘贴12345678好OK好下面我们000001010。
67:42
011100101。110和111,也就是我把这八种情况呢,也就都写完了,对吧?哎,都写完了,下面的话我们做一个设置。
68:00
嗯,大家这个写代码的时候啊,呃,现在啊,对于大家来说,不要只仅仅就是重视什么,就是重视这个代码的功能性,一定要什么,一定也要把代码的什么呢,就是说这个对齐啊,啊它的一些标准,比如我这写零和一写一撇B0不都一样嘛,我就愿意写,我就愿意写一个零,这不比你这方便嘛,嗯,我这说一下啊,其实他也没有多方便啊,因为打完之后都是复制粘贴的嘛,对不对,嗯,然后呢,就是最好都按照我们的标准去做啊,就不要养成习惯,很多人说无所谓嘛,我就这么写,我就这么写,到时候我真正去工作,我真正去做的时候,我就改过来了,注意啊,你的习惯很难改啊,很难改啊,所以呢,大家一定要啊,好好的去这个让大家怎么做,大家怎么做啊?我们去做一个仿真啊,看一下这个最终的这个结果对不对。
69:02
啊,我这怎么出现一条蓝线啊。啊XO啊,出现一条蓝线啊,估计是做错了吧,看一下啊。啊,这怎么还有个COO呢,我是不是写什么地方写错了呀?啊,这写错了,这写成Co了啊,应该是XO啊,应该是XO啊应该XO好了,我们把它关掉,再重新来一遍。啊,应该是这个XO啊,我说怎么莫名其妙出现一个COO呢。好,现在就OK了是吧?好了,那么下边我们我们来看一下是吧,也就是说呢,在这我们能看到什么,比如对于XO来说,XO来说是什么,XO来说是这个,呃,一个零三个幺三个零一个幺啊,他能看到是吧?我们来看一下这个啊,XO来说一个零三个幺三个零一个幺,这没问题啊,对于我们X来说是一个零两个幺一个零啊,一个零两个幺一个零和一个幺两个零一个幺,我们先看一个零两个幺一个零。
70:24
啊,一个零两个幺一个零后边是啊后边是一个幺两个零一个幺啊一个幺两个零一个1OK啊比如说跟我们的逻辑都对上了,对吧?哎,都对上了好了,那么此时的话呢,我们就把什么就把一位的什么,一位的减法器我们就做完了,那好下面来想一想,一位的减法器怎么来构成一个位的减法器呢?啊,一位的减法器怎么来构成一个两类的减法器呢?那么在这啊,我们给大家呢,啊来去做一下啊,怎么来怎么来构成,我在这直接画这个图吧。
71:02
这个图看的还正规一些啊,我们来画一下,好,那么直接从这拿吧。啊,比如说这个呢,是一个什么,这个应该是一个啊伊比特,那么伊比特这个呢,我们就会给它起个名字,比如in st1啊,因为它呢会有两个对不对,注意做减法的时候,咱们要按照咱们的想法,你做减法是不是应该怎么做,是不是也应该是。这个第一位先对应该是第位先,所以这个的话入什么入应该就是我们的叫做。啊,输入在这儿啊,应该什么?应该是这个呃,A啊,然后应该是这个叫做一到零啊,输入呢,A是一到零啊然后的话呢,呃,再往下啊,他这还有个输入叫什么叫A的B的啊一到零啊然后呢,它呢应该还有一个输入啊叫做CI。
72:01
啊叫Xi啊叫Xi就只有一位了,对吧,叫Xi好了,那么呃,在这的话呢,我们来呢,呃一定要注意啊,它虽然这连上了,但是这呢,这只有一位啊,只有一位,所以这的话呢,我们来这往这画一下这个什么,这个只有只是一个A0啊,这个地方应该只有一个A0啊,那么再往下边这个地方呢,应该有一个叫做B0。啊B0,然后这个地方呢,就没有了,对吧?呃,一般情况下遇到这种情况我们会怎么画啊?呃,其实像我这种画的呢,好像并不太多啊,并不太多,那怎么办呢?这样吧,我干脆给大家就画成一个我想要的形式得了。OK。好叫做A0啊,因为在这个RT1视图当中的话呢,他们经翅去做交叉,那咱们做交叉就看起来就比较丑啊,所以我们一般情况下,我们是不允许有交叉的啊,不允许有交叉怎么办?那就会会像这种来方式来画。
73:14
啊叫做Xi好,然后的话呢,我们来呢去往后写一下,比如这个位置啊,这个叫做第二比特啊,然后的话,它的输入呢,是有什么啊,也是有这两个值诶。我们把这个往下一点。放到这儿。啊,这个是我们的叫做这个A1B1啊,这地方写错了,应该是A0B0,然后的话呢,第一位相减完之后呢,会有个什么,会有个借位对吧,它会有个借位啊,会有个XO,那么在这儿的话呢,我们给它起一个名字。啊叫X00好,那么它就会有个借位对吧,还有个借位,然后的话呢,他们两个最终呢,就会有个输出啊,这个输出的话呢,呃,应该是我们的啊S0,那就是我们的最终结果的S0,那么下边这个呢,也会有一个啊输出啊,它就是我们那个什么S1嘛。
74:23
的结果就是我们的叫做S1啊S1啊,然后的话呢,我们来呢,再往后边呢,还有一个输出叫什么,就是我们最终的最后边有一个叫XO啊叫XO好了,那么下面的话,我们来画一个总体的模块。好,删除。至于底层。然后给出一个比较浅一点的颜色好OK,然后的话呢,他们前面两个呢,还有输入是吧。
75:01
这一个这一个啊,那么这个入的话应该是一个多位的,所以我们表示成1.5。好OK,那么这个输入呢,应该什么?应该是一个叫做A的啊,中括号的一到零啊,那么下面这个输入呢,就是。呃,B的,因为我在这我不太好画总线分列啊,所以说呢,我就在这儿,就是直接输入A的一到零,B到零,这呢是A0啊,我们在这里可以说把它给加上中括号,这样的话,大家是不是就觉得它是一个总线了,它并不是这个A0啊,这个这样的一个信号,它应该是A的第一位,A的第二位啊,这个地方我们也加上吧,是S的第零位和S的第一位。好,OK,那么这就是一个呃,用了两个一位的减法器来构成了一个呃,两位的减法器的这样一个结果,那么这个对不对呢?我们下边呢,我来给大家做个验证啊,那么我做完这个之后啊,关于这个叫做什么,叫做这个四位的减法器和16位的减法器,我就不做了,大家可以考虑自己去想一想啊,它的接的方式么?它接的方式其实和什么,其实和这个16位全加器的切的方式啊,是如出一辙啊,一模一样啊,一模一样啊指什么?只是说我们去做减法,其实减法和加法的相同处在哪儿?就是说一个是像呃低位啊,过来是有进位,这个是低位,后来过来会有界位,那么这还有一个是像高位有进位,我们是有高位,向高位去借,所以都是什么,都是先算低位。
76:47
朱亚,都是先算低位嘛,就是说低位两个对应算完之后就会出结果,跟高位已经没关系了啊,高位无论怎么的跟我没关系,因为我已经出本位结果,所以本位结果永远是对的啊,那么我产生的借位就要给了你高位,高位要考虑到我借的是零还是借的是一,注意我们一定会借,但我们会借的是零还是是一,这不确定,那这不确定好,那么下边的话呢,我们来呢,写一个两比特的啊减法器。
77:16
那么在这的话呢,我们来写一个吧。啊,叫做sub杠两比特。嗯,叫做doc啊,那么那个减法器的报告呢,直接做到这个伊比特里边去了啊,所以在这就不再做了。啊,叫做msm啊,然后呢,还有这个叫做RTL。还有这个叫做呃,QPR键好,那么在这的话呢,我们来新建个工程。
78:09
B、两比特QPR键。好,那么在这的话呢,我们来去做一个呃,两比特是吧,那么在这做两比特之前呢,我们可以把伊比特先复制过来,那么我们也可以先不着急啊,我们可以先去做这个,呃,这个顶层嘛,因为是top to down嘛,对不对,所以我们先去做这个顶层。好,那么这个顶层的话呢,我们就是良比特啊,然后呢,里边是输入的应该是input,然后是这个叫做一到零的A啊,输入呢,有这个叫做一到零的啊B啊,然后呢,哎啊还有一个输入是吧,输入应该有一个叫做第一位的一个界位,我们叫Xi,然后呢,输出的话呢,有一个叫做本位的结果一到零啊,然后呢是这个叫做本位结果叫X是吧?然后呢,输出的我们还会向高位有个界位叫XO,好那么这样的话呢,我们就已经把它做完了,对吧?然后呢,我们来去进行一个综合分析,那么综合分析期间的话呢,我们去找到我们的伊比特的代码,然后呢把伊比特代码呢复制过来。
79:46
啊,复制过来,复制到两比特的RTL当中,点击粘贴啊,然后的话呢,我们来找到啊,等它综合完成啊,这个综合的话会卡一下啊,然后呢,它的速度可能会比稍微慢一些啊。
80:03
大家做的时候一定要细心啊,呃,就是说现在我们做的设计的话呢,呃还比较小,所以的话呢,就是对大家那些初学者犯的错误呢,就是你一综合可能用个十几秒,20多秒,最多不超过一分钟,咋的也出来了,那么等我们做到后边以后,大家就会发现什么,大家就会发现我们的一个设计可能综合一下可能会上几个小时就点压综合可能会几个小时就过去了,所以在这的话呢,我们希望大家一定要把这个呃,就什么就是说一些小的问题啊,不要这个就是尽可能不要出什么语法错误啊,要不然编译起来你会一直在浪费时间,好那么在这儿的话呢,我们直接把这个一位的这个减法器我们已经搞进来了,对吧,然后呢,我们来呢,去这个,呃,去看一看我们这个连接的方式,对吧,注意啊,减反应什么应该。
81:03
是第一位先减啊,第一位先减啊,一定要注意哎,那么在这的话呢,我们来写应该是什么,应该是A0减去B0以及外部的Xi啊,然后呢,是S0和哎,在这就不是XO啊,应该什么?应该是我们它要向高位的一个进位,在这我们称之为叫X00啊,跟我们的设计报告保持一致啊,我们设计报告里边是不是就叫X00啊。对吧,X00啊,然后呢,我们下边呢,再去写一个好,那么这样的话,这有什么就是第二个啊,然后呢,这就是A1减去B1减去X00啊,因为这是的一个第一位啊,向高位的一个借位,然后最终结果应该是S1,然后呢,以及呢的最终输出应该是XO啊那么呃,在这的话呢,就是说这两个数相减,我们就做完了是吧?我们来进行一个综合分析。
82:11
啊,综合分析。啊,那么综合分析期间呢,我们去干点事啊,就是说新建一个vrlo,然后file另存为一下,然后呢,给它搞到msm当中,因为我们要做它的一个TB,对吧,下划线TB。好保存啊,那么呃,在这儿的话呢,我们来等它完成吧,等它完成以后,我们给大家看一下它的RTL视图啊,那么它呢,应该跟我们这个呃叫做这个呃理想的一个图样啊,应该是相同的啊,应该是相同的,也就是说呢,总线分类啊,A先A0减B0减去Xi得到X0啊,以及得到一个X00啊,然后呢,A1减B1减去X00,得到一个X1,得到一个最终的XO啊是这样的,那好了,那么对于我们来说,来写一个TB对吧?SC那。
83:05
嗯,出现一批秒,好,然后呢,我们在这呢,这个把它给例化过来。粘贴粘贴。好,那么这样的话就是reg b reg Xi和wis啊,这应该是我有两位的啊,我忘了啊,应该是一到。
84:11
呃,零,嗯,一到零,然后这个呢,应该是结果嘛,结果应该也是一到零,然后这个应该是一位的对吧?嗯,还有最终的一个叫做XOXO好OK,那么a Xi,呃,S和XO好了,那么这个的话呢,我们就采用随机数了啊。其实随机数也可以,或者直接列也可以,因为它也没有多少种啊,在这块我们就如果列的话,可能会32种对吧,比较麻烦的这样随机数吧,R PA repeat,然后呢是20 begin begin end啊然后呢,就是A就等于什么呢?哎,等于啊,它Dollar random啊,因为是两位的嘛,两位就是零到三随机数对不对,我们直接给个四啊,然后呢,B的话呢,也是一样的对不对啊B啊B,然后呢,还有Xi Xi的话只有一位对吧?所以在这的话就说零一随机数对吧,然后给个延时20好结束啊,那么呃,我们同样的方法啊,还记不得我们在加法当中的话呢,我们说因为现在是两问题对不对,你一看就知道需不需要借类对吧,也就是说它等于多少啊,比较方便,那么如果说比较高,位数比较多的时候怎么办呢?那就比较费劲了,对吧,那所以怎么办呢,我们还是。
85:42
可以采用一个就是我们之前给大家说的方法,首先呢,我们先说一个啊,对于最简单的来说就是什么?就是where,我们定义一个叫做一一到零的什么呢?叫做这个S啊,然后的话啊叫TBSTB-S然后的伙伴我们写个ZTB-S应该等于什么,就应该等于A减去B减去Xi啊,那么至于这个XO呢?呃,这个X的话呢,其实倒比较不好写了,嗯,有人说为什么不好写了呢?因为呢,呃,它有可能会产生。
86:20
借呗,就是借别人一个,那你借别人一个的话呢,那么怎么来做呢?如果要真的愿意去做的话呢,呃,其实也可以去,呃考虑一下啊,其实也可以去考虑一下,那么那个做起来其实不太容易啊,在这我们就不再想这个问题了,我们就不做它啊,我们到时候自己来分析一下吧,啊,自己来分一下,因为只要看到什么,只要看到A要比B大。啊,A要比B大,那么就不会有结尾,A要比B小,那么A就会有结尾,所以这个呢,还比较容易看啊,所以在这儿的话呢,我们就直接不写那个了啊,因为写那个的话呢,还要想很多东西啊,干脆就不做了。
87:12
好,我们来进行综合分析。啊,这个是我们的一个,呃,就是用一比特的一个呃减法器啊,构成了一个两比特的减法器,那么呃16位的减法器怎么做啊,大家呢,自己去可以去呃考虑啊去研究一下啊考虑去研究一下,这都是可以的啊我这怎么还有一个呢。关掉啊。
88:04
好,那么我们这个接发器OK了是吧,来看一下啊。好,那么来看一下是吧,A是零零,B是零一,还有借位。啊,最终的结果S和XO和TS,所以看起来也比较乱套是吧,所以我们首先先把S和TB和TBS先弄到一起去啊,把S和TPS弄到一起去,来看一下X和TS,就是最后两行嘛,最后两行是完全一模一样的,那这个就OK了,那么对于XO来说,XO来说你就要看什么,你就要看这个A啊,是不是大于BA啊,A和A是零零,B是零一不大于,所以有结尾啊,A是幺幺啊,那么B是零零啊,B是零一也不大于,但注意啊,一定要注意cii啊,也就是说我只说A和B的关系,其实A跟B相等了,也有可能会有结尾,因为还要减去Xi呢啊所以在这儿的话呢,大家一定要去注意一下啊,大家一定要注意一下,就是大家这个自己分析吧,我觉得呢,也比较容易啊,就是大家自己去分析一下,不要说波形出来了对不对,什么都不知道,所以你想做什么,我想做是个减法器对不对,那你就看一看零零减去零一减去这个这个这个这个值啊,减去这个进位的。
89:15
值它需不需要借位,他借完位之后它的值应该多少,所以他借完位之后会会等于多少,你自己可以去算一下啊,这个都是自己可以算出来的,所以希望大家的话呢,一定要去,呃,认认真真的去做一下,那么关于16位的减法器啊,关于16位的减法器,那我在这就不用讲了啊,我就不给大家讲,大家自己去考虑,那么呃,这是一个问题,那么在在咱们讲完这个减法器之后呢,我们还有一个东西要去做,那么那个呢,我其实也想讲,只讲一半多了,我也不想讲,呃,所以呢,在这儿的话呢,我们稍微预留点时间,我们给大家呢提出一个想法啊,什么想法呢?呃。就是这个呢,我们在后边会着重来讲,但是今天的话只是给大家来说一个非常简单的问题啊,就是说呃,在这画吧,就是说我们今天讲,我们今天讲的是减法器对不对,就是说A,我先说不知道,不管多少位啊,比如X位的是吧,X位的A减去X倍啊,X位的B啊,然后呢,这应该怎么来做,其实大家来想象一下啊,就是在,那么在什么呢?在这个数字电路当中,我们在讲这个数字电路的时候,我们就说了,就是呃,能不能说不要减法,就是我们考虑的时候就是什么就不要减法,因为呢,辩论当中呢,都去做加法比较容易,你老做法干什么,但是我们刚才就硬生生把减法器给做出来了,其实呢,也是利用针值表做这种电路结构,对吧?那么其实我们现在做什么,我们是不是已经做完加法器了,对吧,就是我们已经做完加法器了,那么我们虽然做完加法器了,对吧?那么我们想做减法器怎么做呢?注意我们可以认为没有减法。
90:53
有人说那我就要做减法怎么办?所以呢,我们在这的话呢,因为A减B嘛,注意这是个减号而已,我们减号拿掉,其实就是A和B之间的一个操作,对吧,那好了,那这样的话就是说A加B也是中间是个加号,就是A和B之间的操作对不对,那现在我们要怎么做A减B,那我们可不可以说认为是是A加B这种就是A加上什么加上负B对吧。
91:18
所以在这的话呢,我们知道干什么,就是如果说我们加法器设计完了,我真的就想算A减B怎么办?所以首先的话呢,我们能不能够利用加法器算结果呢?当然可以,当然是可以的,是没有任何问题的,但是有一个问题的问题,问在哪,就是说负B应该怎么来表示,那就是负数怎么来表示啊,比如说负三。啊负五,那当然了,我们是负B,那也就是说这个B如果是负数的话,应该怎么来表示,如果你要能把B的负数啊,就是它的补码算出来啊,就是B如果是负数,它的补码算出来,其实呢,你把加法记上一安算来,结果就是减法啊是一模一样的,算完之后就是减法啊是一样的,所以呢,大家的话呢,这个呢,要做一个思考题,大家只需要思考一下就可以了啊,不需要去做过足研究,只需要知道啊,只需要知道就可以啊,知道就可以好了,那么这个多位的减法器啊,我不讲了啊,我只讲了一个两位的,那么这个呢,就大家的一个思考啊,大家呢,接着往下去做延伸。
92:27
那么当我们讲完了这个加法器啊,做完了这个减法器,我们都做完了,那么我们今天呢,还有一个任务。什么呢?就是做一个16位的比较器啊,16位的一个比较器,那么呃,对于这个比较器来说的话呢,我们应该怎么做呢?什么叫比较器呢?其实说白了就是比如说我们知道什么,就是我在开始给讲,就等于号A和B是吧,和B相等啊,就输出高电平,A和B不相等,输出低电平结束了啊,大于比较器是吧?A和BA大于B,输入高电平小于不不大于,因为还有个等于对吧,A不大于B,就输什么输入低电平,那么还有什么小于比较器是吧,大家也懂了是吧?大于等于比较器是吧?小于等于比较器对吧?所以都有啊,那么对于我们来说,我们就做一个非常什么,我们做一个非常全面的一个比较器,怎么做呢?就是输入数A。
93:30
说数B。啊,输入数A,输入数B啊,然后呢,我们在这呢,有一个节有一个比较器,这是我们要做的一个比较器啊,我们要做的一个比较器,那么我们这比较器会有三个线输出,就是第一根线输出就是A大于B啊A大于B,就如果它为腰,就是A大于B,第二根线呢,就是说如果它为腰就证明AB相等,如果有第三根线为腰,就证明A小于B,比如说我们会有这样一个结果,我们会有这样的一个,呃,输入啊是16位的啊A16位的,B是16位的,然后输出呢,会有三根线,只有三根啊,因为他没有说,呃,没有说哪两位想对比怎么怎么样,那好了,那么经过我们前面做了那么多,大家来考虑一下,如果说让咱们做一个16位的比较器的情况下,那么你会怎么来做啊,你会怎么来做,那么首先我们老规矩对吧,干什么呢?我们来做一个一位的比较器。
94:28
一位的比较器怎么做呢?不就是A和B,然后呢,输出结果就是相等,比如说我们的呃,大于,大于我们用B格来表示吧,大就是A大于B啊呃,Big,然后呢,等于就是用E来表示EQUL,然后那个小于用small来表示吧,就小嘛,对不对,我这是现小的啊,Small来表示好了,那么也就是说呢,现在来看呢,就是AA,如果要如果,因为都是一位的嘛,就是A它们俩相等就是啊,就是A大于B,那么就是B,那么A大于B,只有一种情况,就是A是一,B是零嘛。
95:07
只有另一种情况啊,A是一,B是零嘛,所以就是big嘛,所以那B等于什么,B其实就等于这个A是一,B是零,那就是A与上BC就是B格嘛,那么对于相等就是一相等什么?就是它俩相等的时候就是一不相等,那那就它就是零对不对,就当然怎么办,它俩就是同货呗,它俩同或起来就是什么,就是一个相等,那么小呢,那就是A等于零,B等于一,那就什么就是这个A等于零嘛,就是AC与上B嘛,就出来small了,所以呢,单个比特非常简单啊,单个比特非常简单,那么我们来想象一下啊,那么这个单个比特能做大吗?啊,因为我们要的结果,你比如说我说个两位的,比如说A1A0和B1B0,我们来去做对比,你会先对比哪一位啊。你会先对比低位吗?那低位得到的结果,比如低位相等,低位相等又能说明什么?也不能说明特大,相等也不能说明什么。
96:09
啊,那所以说就是干什么,那我那我们就把所有的位都对比出来,如果所有的位都相等,就认为相等,这是一种方法,那我再问一个问题,那。那如果说有的位相等,有的位不相等了,那有时候肯定不相等了,那我问你有的位大,有的位小,那你应该说大还是小呢?其实你也不好说,那么在这儿我们来想一个问题,是不是应该这样的,对于比较器来说,它是不是应该这样来对比啊,就是说低位其实是不重要,我们说低位先往后放一放,也就是说你比如说啊,比如说比如说我们的这个325和684去做对比,其实你五大于四有必要有有有想的想法嘛,其实你要说比他大有没有意义,我也不能说没有意义,但是我只能说你看的时候,什么应该先看高位对不对,我已经六都大于三了。就是你后边爱是啥是啥吧,跟我没关系啊,六大于三的时候,结果就已经是我比你大了,就是684已经大于325了,后边什么不重要,对不对?那么什么情况下会看到后位呢?就说当前面相等的时候,就前面相等,也就是说高位相等,我的这一位才有比较的意义,高位都高位都比人小了,或者高位都比人大了,你就不要比了,再比也没有意义了,高位都大了,那就已经大了,高位都小了,那就已经小了,那就本位就没有意义了,对不对?所以我们做事情的时候呢,你不能只看本位对不对,你得看什么,看高位对吧,也就是说高位是大了小了还是相等,然后呢,我们啊给出一个大了小了相等,其实我们给出的大了小了相等,其实也不是最终结果应该什么,应该是给了下一位啊,就是下一位把我们的比较的结果啊,当成一个高位的结果,再往后以此类推,所以说呢,我们比较器什么比较器应该是从高位开始对比,一直往低位走。
97:58
啊,从高位开始一直往低位走,所以呢,这个呢,正好和什么,正好和我们所讲的这个什么,哎,所讲的这个叫做。
98:09
这个这个这个呃,这个叫做呃,减法器也好,减法器也好,它正好反过来啊,因为减法器和减法器都是从低位开始,往前进位,往前借位,而比较结果什么?比较结果应该是先比较高位啊,高位相等了,低位才有对比的必要,高位都不相等,低位你就不用对比了,没什么对比了,你说高位我都告诉你啊,我都告诉你16位,第16位的时候,A都已经A是一,B是零了。那你第15位有什么对比的必要吗?其实没有了,我就告诉你,我就告诉你高位已经大了,你就不要,你就不要对比了,你就直接告诉低位已经大了,大了,大了大大了,最后就最终结果大了就结束了啊,所以说这个呢就比较简单,那么这样的话呢,对于单比特的比较器来说,它就不是A和B相对比,还有什么就说它会给出一个进来I,我们称叫I big,我们是不叫o big o啊O啊,那么这就会什么I相等,那么I相等就代表什么,就高位相等呗,然后再输入一个什么叫I啊small是吧,就是就是这个高位是小的啊,那么这一个o small,所以这样的话呢,就比较简单对吧,也就比较简单了啊,那好了,那么下边的话呢,这个的话呢,呃,我来给大家呢,来做一下,那么这个的话呢,我就不做这个呃,波尔百达式了,也不做什么其他东西了,我们就直接呢给大家来去写逻辑了啊。
99:33
就是我连报告也不做了啊,因为时间的原因啊,我就报告我也不做了啊,我就直接给大家写一个啊,我们直接以什么来写呢?我们直接以这个。这个我直接这样做吧,我直接做一个,这个叫做,呃,我不做16位了啊,我做一个,呃,同样我做一个两位的吧,或者做一个四位,那么做个四位的吧,刚才做了个两位的,那么做个四位的叫comp对吧?Comp_四比特啊,我们来做一个四比特啊,来做一个四比特的一个比较器。
100:10
Doc。RTL。那么我们去做设计的时候呢,大家就会发现什么,大家就会发现啊,就是对于一些复杂的设计的时候,我们不会说去考虑干什么,不会说去考虑说直接把针织表全给列出来,然后去做出波尔表达式,那样难度太大了啊,我们都是什么,就考虑它能不能分解成小模块,然后分成小模块,分解到最后的时候,我们再考虑用一些呃真值表啊,或者用一些case语句啊来实现,所以做ipga呢,呃,它的代码或者很多地方呢,对于我们目前来说,它其实都不难,只要你能够去理解它的结构啊,或者说为什么这么来想等等这一堆东西,那么就会简单很多啊,斯比特。呃,QPR。
101:26
新建ROK file另存为。RTL保存好,那么在这儿的话呢,我们来呢,是同样的方法啊,四比特嘛,你的四比特的话呢,我们就可以说啊输入啊,三到零的A,输入三到三到零的big啊,然后再输入就是什么,就是I big,输入啊叫做呃I啊,Equal啊相等啊然后呢,输入叫做I small啊,然后呢,输出称之为叫做欧big啊也就是说我们也不确定呢,呃这四位是不是就是最最后那四位对吧?
102:34
所以在这的话呢,我们都要去输出啊,叫做O相等eqq u al,那么还有一个叫做out BOO,叫做o small,好,那么得完这个结果以后怎么办呢?我们就知道啊应该什么,它应该有两个。啊,两个啊,四比特的比较器来构成的,所以我们新建啊,或者我们不写也行,我们直接在这附在就是这个呃,另存了一些啊,给它存成这个良比特就行了啊良比特然后保存,然后把它改成二好,然后我们再打开这个四个的啊,然后呢,我们把这个两个的这个例化到这个四个这个里边啊,两个的例化到四个里边,然后呢,得出一个结果一。
103:30
啊,这个两个这没修改是吧,两个应该是一到零啊啊两个应该是一到零啊,我这怎么还剩了个三到零呢啊两比特的比较器嘛,它应该是这个呃,一到零啊,那么呃,再去这个做对比的时候就一定要知道啊,他到底是嗯怎么回事啊,到底是怎么回事儿啊等等这一切东西啊,一定要明白好那么这个这儿呢,注意比较级的话应该什么,应该先比较的是高位啊,所以在这一定要写A的是三到二啊,它应该比较是先比较高位啊。
104:30
啊,比较器应该是先比较高位,所以在这呢是三到二,然后呢,这的话呢,输入输入距应该是高位过来的IB。好看啊。看好了,那么这个地方呢,就输出一个o big对吧,在这我们来定义一个where,那比如说我们的叫做big big-三二啊,然后呢,我们的we。叫equ,哎大写了呢,叫equ a_三二啊,然后呢,是这个VR啊,叫做这个s Mar_三二好了,也就是说呢,这个值就是说第三位第二位的对比的结果啊,这就是对比的结果,这是对比的结果好了,然后的话呢,我们来呢去把这个呢进行一个复助粘贴,粘贴然后的话,这的话呢,就是说这变成了一到啊这改成二啊一到零,然后一到零好了,那么所以呢,他们的结果呢,就是低位的比较的结果,他应该首先要知道什么,要首先知道要高位的结果是不是相等了啊然后呢,这个地方呢,应该什么,它应该就是最后的一个输出了是吧,应该最后的OB big。
105:56
啊和我们的。O equal是吧,然后呢,还有一个O。
106:04
好搞定啊,那么这样的话呢,我们来呢,去写一个什么,我们可以综合分析一下啊,综合分析也就是这个呢,是先做什么,这个是先做的是高位啊,因为呢,比较器就啊先比较高位啊,根据外部的输入条件先比较高位,然后得出一个我们诶高位一直到我这边的时候啊,到底是谁大还是谁小啊,那么然后呢,再把这个结果呢,给到低位上去啊,给到低位上去啊,所以这样的话呢,就是一步一步的是高位先对比给到低位啊低位啊利用高位的结果,然后去做啊在这我们来看一下它的这个RT图。啊,就是说先对比三到二,再对比一到零啊,然后呢,三到二的对比的结果给到一到零去,然后一到零的话呢,在里边做对比啊,那么在这儿的话呢,我们再来去写这个,呃,两米特的比较器,那么两米四的比较器的话呢,肯定是有两个一位的比较器,所以在这儿的话呢,等会儿啊,我应该把这个直接另存为一下。
107:08
然后呢,改成叫做伊比特的,然后保存啊,然后呢,我们把它改成伊比特的。好,伊比特的好,那么呃,这样的话呢,我们下边呢,就该怎么做呢,就是说把伊比特的啊,我们去利化到哪儿呢,我们去利化到这个两比特里边去啊,但是呢,因为我们的结果是这个这个利化方式是一样,对不对,所以我们就把这个利化呢,直接给它抄过来。或者说我们从这抄过来。啊,复制啊到两比特里边去粘贴,那么这个的话呢,我们说也是先对比高位对吧,它是一到零对吧?所以它应该什么?应该是啊先对比高位,就是A1B1啊然后呢,输入是这个三个值,然后输出的话呢,应该什么?应该是高位对吧?高位应该就是幺幺对吧?因为它只有两位了对吧,幺幺啊幺幺啊,然后把这个big啊就是。
108:11
第一位到第一位嘛,就是说我们都给一个标号来标记一下啊,然后呢,这个的话呢,就变成变成就是A0B0,把它输入呢,应该是这个啊1111和这个幺幺啊,最终输出好了,那么这样的话呢,我们就做了什么,我们就做了一个,哎,把这个。呃,啊,这写错了,这应该是伊比特,这样的话就自己调用自己了啊,应该是两比特,是包含在伊比特啊伊比特。这儿忘了,这忘了改这个名字了,应该是伊比特,伊比特比较齐啊。我们给它停下来重新跑一下,有可能他会自己调用,自己就会无限重复了啊,就会一直编译到最后直接崩掉了。啊,这应该是伊比特啊,就是两比特里边利化的是伊比特,我刚才直接从斯比特里边复制过来的啊,忘了去改那个位置了啊,我们现在改了一下。
109:16
啊,然后呢,我们一会儿呢,我们去写一下它的一个逻辑就OK了,好了,我们来看一下RTL视图。好,那么这样的话就是说打开啊,里边都有什么高位先对比得到给到低位啊,低位对比完之后给到外边去,对吧?好,那么下边的话就剩什么,就剩一位的比较器了,一位比较器怎么做呢?一位的比较器的话呢,我们来呢,呃,注意啊,我们这里边啊,不要去写大于号小于号等于号,因为你写大于号,小于号等于号,你相当你就直接写就完了,对吧?我们就是说去讨论清楚它的内部逻辑是什么样子的,所以怎么做呢?在这儿啊,我们就要一步一步一步一步的来去写了什么,怎么写呢?我们先说这个OB big啊,我们先说OB的值,那么按照我们的逻辑来说,我们来写一个always语句it星号begin and,好,首先第一件事判断,判断谁呢?判断I big是不是等于一撇B1,也就是说呢?如果是I bigg,也就是说I bigg等于一,也就是说在高层的时候,都不知道在什么时候A都已经大于B了。其实你这。
110:26
B va和B的关系已经无所谓了,对不对,所以直接就输出OBB格就等于一撇B1就行了,好了,那么下面再判断,如果说呢?哎,如果说I big不等于一。啊,IB不等于一,那如果说I要是不等于一的话,就证明什么,就证明高位啊,不是比人小就是和它相等对不对,不是比人小就是和它相等,那么下边的话呢,我们再接着再判断啊判断,比如我们判断什么I small。哎,S Mar是不是等于一撇B1,如果说比人小了,那OBB格直接不用看了,这就等于一撇B0嘛,高位都比零小了,阵位就直接等于零就好了,那么在else呢,这个在else的时候呢,我们其实呢,就已经不用再判断了,说如果说它不相,如果说我们高位不比它大,然后又不比它小,那我们一定是跟人相等了,那如果跟人一定相等的情况下啊,一定一定都跟人相等的,对吧,一定都跟人相等的情况下,那好了,那就是认为高位相等的,就看我发挥了对吧,那就是说我这一位比他大,那就是OB就比他大,我这位比他不大,没有人家大,那就是没有人家大呗,就在这儿的话呢,就干什么,哎,就要去啊,我们为了不用大于号小号怎么做呢?就欧big等于什么?哎,就等于我们的这个,呃呃,因为我们说OB格如果说它俩上面相等的话,那么这边如果想输入相等啊,或者输入大于,那就只有A等于一,B等于零。
111:59
零对不对,所以A等于一,就是A啊与上啊括号的B等于零嘛,就是非B嘛,啊就OK了啊,只有这一种情况啊,只有这种情况好了,那么下边我们来说always it括号能没有括号啊看,然后呢,Begin and好了,那么下边的话呢,我们来看这个相等啊,判断还是老规矩,判断判断什么呢?就判断这个高位啊,是不是这个I,这个啊是不是等于一撇B1啊,如果高位A都比B大了,那么这个你就直接输出这个qqu AR你就直接就可以输出就是一撇B0了,因为高位都比人高位的时候,A都比B大了,这一位对不对,无所无所谓了,我就告诉人家不想等就行了,那如果说不大,那我们就看什么呢?就看这个高位是不是比它小,那如果高位要比它小了呢?那还是老规矩,你也不可能相等啊。
112:59
那么还是一撇B0好了,那如果既不大又不小,就证明什么,就证明高位是相等的,那所以说只要我这一位相等,我就可以告诉别人啊,咱们无包括我在内,前面都是相等的,那怎么办呢?就是O啊,EQ ual,就什么就说他会只要是它们两个相等,那么结果就相等了,所以说呢,就是同或,但是我们没有同或符号怎么办?我们知道它和什么呢?它和异或是取反的,所以我们就写A亦或上B好,那么还有最后一个就是小于对不对?
113:35
好,那么判断啊括号然后呢,就是什么,就是我们的叫做这个呃,这个这个这个呃叫做这个。I big啊,是不是等于一撇B1啊,如果说高位都比人大了,那么我们的o small就等于什么,就等于一撇B0,然后else啊,再判断啊,高位是不是就已经小了啊,这个s ma ma2是不是等于一片B1啊,如果高位都比人小,那就直接输出小就行了,这一位都不用去做对比了,不用想那么多了,是吧?好,那如果说高位是相等的呢?啊,那高位相等的那就是说要看什么,要看的就是我们本位的情况,那么本位的情况只有什么?只有A等于零,B等于一的情况下,所以呢,在这的话呢,就是A等于零,然后呢,是B等于一的情况下才会输出小,所以就这样,那么有些人说呢,说你在这儿的话呢,你看你都用了这些用什么用了这些等于号,比如咱们的等于比较级还没做出来的,你就已经用了这个等号了,是吧,待会来说一下啊。
114:51
呃,我就这么来写了啊,呃,大家知道就可以了啊,其实我们在这讲也可以不用它,那怎么做呢?我们就可以去用什么用,就是说因为一共也就是32种情况,我们可以把这32种情况全都什么列出来,然后呢,我们也可以干什么,我们也可以说呢,呃去做一个直接就去写一个什么,呃波尔百达式啊,也可以把这种情况,因为呢,呃这种其实就是什么,其实就这种就是一个嵌套,对吧,我在这只写一个啊,比如说这个欧big,欧big等于什么呢?我们在这儿我写个相等的,比如说then欧big等于什么啊,欧big等于什么等于就是我们也可以去写逻辑门,我们也可以判断,比如说欧big,呃等于啊,这个I big啊,如果I big要等于一啊,如果I big要等于一,我们问号,如果I big要等于一的话,O big只等于一撇B1了,那么如果I big要是不大于一呢?呃,I big要是这个不不是一呢?就看什么I。
115:53
啊I,然后呢,如果是imo。等不等于一呢?如果等于一就是一撇B0,如果它要也不相等的,那就是A与上括号的取反的B,嗯,其实这个和上面那个没什么区别啊,你也可以这么来写,那么门店路呢,你也可以来写啊,那么在这儿我就不写那么多了啊,我就直接就告诉大家,就是我们就用这种逻辑来写了啊,都一样啊,大家做出真知表,也可以做出波尔表达式来,都一样啊。好了,在这儿我们来进行一个综合分析。
116:24
啊,综合机会报错啊,呃,没有把它改成RG,刚想起来我们给他停掉。啊,然后呢,我们来去呃综合啊这个一下,然后我们来写一个TB,然后我们来看一看啊,他会不会呃出现啊我们想要这些问题,然后呢,在这儿来做的话呢,呃,一定要注意啊,如果说我们啊都去做什么,如果说我们呃来去做随机数啊,就是说我们在写之前我们来考虑一下啊嗯,你说有没有可能更就是这个高位给过来的时候,它是既大于又相等又又又小于呢?有没有可能呢?其实如果在实际情况下是根本不可能了,因为不可能说两个数相对比啊,高位又相等又大于,那是不存在对不对,但是呢,如果说我们要去做测试的时候,拿来看一下,因为这就是一个最高顶层对不对,如果说你的I big啊,这个这三个值,你随机给值的时候,它就有可能会把这三个什么,把三这三个给成都是幺。
117:37
这是有可能的,或者三个都是零,这也有可能啊,这也有可能,那么此时的话呢,我们来去呢,分析一下,说如果三个都是幺的情况下呢,那么我们来看一下,因为我们在写逻辑的时候,我们有优先级,因为用的if else嘛,它有优先级,优先级什么优先级就是先判断大不大,如果一判断大了,就直接就认为大了,所以就意味着如果说三个都是腰的情况下,认为什么,就认为说就是先首先先按照什么,首先先按照啊。
118:05
高位已经大了的情况啊,我们就不会判断等于不等,因为我们首先都是先判断大不大,对不对,是这样的啊,那么如果说呢,哎,这个它是这个零,它们等于和小于都是幺的情况下呢,就是什么就会首先呢,先去看什么,就是它是不是小,如果小了啊,就认为啊就已经是小了啊,就已经是小了,就等于不等于我们就不看了,所以呢,等于的优先级是最低的啊,那如果三个呢?啊,如果三个都是零的,那么如果三个都是零的话,我们默认什么,我们三个都是零的话,我们默认高位是相等的,因为在这的话,它不等于一,它也不等于就默认就是相等的,所以在这的话呢,大家一定要注意啊,到时候说比如给随机数啊,我给出来,给出来是什么值,输出的结果怎么感觉乱七八糟的,比如说我给了三个都是大的,就比如我这个大的小的,等于都给的都是幺,那么你会按照哪个来计算呢?注意啊,你会按照哪个来计算,你不要问我啊,因为你你的代码是你自己写的对不对,所以你应该知道啊,所以你应该知道。
119:05
啊,那么在这儿的话呢,我们来呢,给它做一个仿真。我们来做一个四比特的一个仿真啊,当然我们也来验证一下我们那种说法啊,啊,这个仿真可能还比较。端口还比较多啊,这是一比特,我们要四比特。
120:05
我们在这我这验证的时候呢,我就做一个简单的吧,我就不做那么复杂的了,大家可以去做一个复杂的啊,我这就做一个简单的啊呃,做个什么呢?我就认为直接高位就是相等啊,我就认为直接高位就是相等,然后呢,我们来去,呃做一下什么呢?就是做一下这个,呃就是对比一下,就只对比这四位啊高位就认为相等就可以了,因为我们在做设计的时候,其实如果说你最终确定就是16位和16位相对比,其实没有高位对吧?在这块我们来写一下啊reg叫三到零的AG。三到零的啊,下边我不写了啊,就是AB高位呢不大一撇B0,高位呢相等一撇B1啊高位呢不小一撇B0啊我们这边来写啊,然后呢,Where OB big y o eqal small少写了一个L好OK,然后呢,我们o big o big啊这个嗯和这个small好OK,那么我们写完之后呢,我们也为了方便起见是吧,我们在这写个这个啊就where啊TB下划线这个啊,Where tbqal啊然后where TB,嗯么?
121:45
然后呢,我们来写一个Z啊TB_B等于什么?就等于A是不是大于BZ啊TB啊,它是不是等于A,是不是等于B。啊大看TB啊,它是不是等于A小于B,也就是说我们直接就用这个大于等于小于号来去看我们做的结果对不对是吧?然后呢,下边的话呢,我们来看一下啊,Begin end,然后我们来写呢,Repeat啊,然后写一个20BEGIN啊,End,然后给给值A等于啊,Dollar r啊带分号啊,因为是四位对吧,四位的话就是零到15呗,零到15话就是对16取余啊然后呢,延时20,然后这个是B啊没有这个是吧?啊就是B啊就是说会给出两个随机数都是零到15的,好了,下面我们来做个仿真。
123:01
呃,我们这个呢,和昨天讲的呢,其实呢,呃,就是差不多啊,就是说关于什么,就是关于这个,呃。就是层次化,所以今天讲的全部层次化,那么今天讲完这层次化以后呢,呃,我们希望大家呢,把这个层次化的设计方法,设计设计流程都搞明白啊,然后呢,去理解一些什么,就比如说呃,我们一定要去理解,就不要不要把这个知识面给悬空了,比如说我们现在对于我们大家现在来说,我们就可以认为什么,我们就可以认为就是我们知道的最底层的啊,我们知道的最底层的设计,什么最底层的设计就是晶体管,Mo斯管啊,至于晶体管MOS管怎么来的,我们现在先不讨论,我们就说它是最小单位,然后呢,这些管就可以构成门电路,然后呢,我们的门店路呢,又可以构成我们平常所说的加法器、减法器,比较器,或者说译码器,我们都可以构成了,然后后边我们就做开发的时候呢,我们就开始用什么,就用这些加法器,减法器啊,这个这个各种各样的一些就是译码器来去做复杂电路,所以大家一定要知道,就是我们做的所有的东西都是可以实现的,没有。
124:11
没有凌空啊,都是说从地最底层一步一步起来的啊好,那在这我们来看一下是吧。把这个big和这个big放到一起,相等,相等放到一起,Small small放到一起啊,然后大家干什么,大家就可以来对比一下啊,是不是这个big和这啊相等啊,这个相等的是不是两个小一样啊,Small和small是不是一样啊,所以呢,希望大家一定要知道,那么在这的话,大家是不是看到有一个呃,小的一个就是输下来一个这个东西啊,那么这个呢,就是你放大之后,它好像也不会放大啊,它就是一个显示的问题吧,我感觉,所以这个呢,我们就不用关心它啊,不要关心它好了,那么这个的话呢,我们就做完了啊,这个我们做完了,所以下边希望大家干什么呢?希望大家呢,就是自己去考虑一下啊,我发现大家这个波形图可能看的不是很清楚啊,所以这个的话呢,我到时候还得考虑考虑看,怎么样能让大家把这一部分看的相对来说比较清楚一点啊,清楚一点,然后呢,呃,这个到时候再说吧,我到时候研究一下啊,我觉得这个看的不是清楚,可能就比较的费劲啊。
125:20
这会比较费劲一点,我看一下啊。嗯。这个到时候我研究一下吧,我看研究一下怎么把这个呃给大家变一些东西,然后让大家能够看的清楚一点啊,要不然的话呢,可能就呃看的不太清楚,可能就觉得以这个分析不清楚这个波形啊,到时候我来看一看吧,我看看怎么来调一下,然后调完之后呢,到时候后边的话呢,我把这个放放看怎么弄,弄大一些,大家能看得清楚一些啊好了,那么呃,这个大概就这样啊,这就是我们今天要讲的这个内容,那么呃,我们给大家留的问题还不少,那么今天下边还要再需要留一个问题,就是大家考虑一下什么呢?就是两个比较复杂的设计,哪两个呢?就是呃怎么来做出16位的乘法器和16位的除法器怎么来实现,那么呃。
126:17
大家呢,去理解一下啊,就是考虑考虑啊,乘法器除法器怎么做,那么呃,关于这个就是除法器的设计啊,可能在这个面试的时候啊,就是可能问的会比较多,有的时候会问一下,就是说因为这个确实相对比较难一些啊,咱们到时候呢,重点去讲一下这个乘法器和除法器啊呃,今天呢,大家就这样,大家来看看有什么问题啊,没有的话呢,就咱今天就这样啊,然后呢,这个明天后天休息,那么呃,大家也看到了啊,我们的呃,我讲的东西相对说比较细,然后呢,速度也相对说比较慢一些,但是希望大家的话呢,呃,多去练习啊,然后举一反三一下,然后呢去把它多练习练习啊,分析明白好了,大家来看看有没有什么问题啊,没有的话,就咱们今天就这样。
127:06
没有就说个没有好吧,然后别到我这个,别到最后就我自己在这讲了是吗。嗯。呃,TB利化的时候。一撇B0跟上面的不一样,什么地方是这个吗?还是什么地方,哪个文件里面。是这样吗?这的话没有什么不一样的地方,这不就是一撇B0吗?一撇B0什么意思?就是说就是我这儿接了个信号,这个信号就一直为零,这接了个信号就一直为一,这接了个信号就一直为零,就是直接接了一个信号,这个信号就是零或者一,或者说就像比如说这接了个VCC,这接了个基ND一样啊,就直接就给了一个固定值,这是可以的,那这是可以的,然后呢,因为我们给大家来讲了我们的设计什么呢?就是说这个,呃,输入的这些啊,这个大于等于和小于这个什么就是高位对吧,就是说在我们本身之前的高位是不是相等啊,是不是大于是不是小于,所以我们做比较器的时候呢,就是一般情况我们做两个数相比较,对不对,咱们哪有高位啊,所以我但是你没有高位的话,又不能去做扩展,对吧,因为我做事要做的全面一点,为了扩展我们做出了高位是不是相等,所以我们在做的时候呢,就是说高位啊,如果说我们就是做四位的,那没有高位,那没有高位,那就不能说。
128:32
和它这个信号都不写,所以怎么办呢?我们直接干什么,直接就是默认高位是相等,它不就只看我们第四位了吗,对不对。OK啊,其他人还有没有问题。啊,分析分析分析,想一想啊,咱们讲的呃也还不是特别多啊,然后呢,越往后边讲的越多一点啊,然后呢,呃,就是咱们的速度呢,呃就是我给之前昨天给大家说了是吧,我们今天的话呢,按照正常来说,应该把这个呃就是组合逻辑都讲完,然后呢,我们应该说下一周开始这个讲这个寄存器啊时一逻辑,但是呢,我们也就落了一天啊,也不着急,后边的话我再看一看啊,就是我们把进度赶一赶,或者说我哪天加天课啊,把这个给咱加回来啊,这都无所谓啊,只是给大家说一下大家的进度的这问题,然后呢,嗯,大家的话呢,把这个代码啊都好好的练习一下啊,都好好的分析一下啊,然后呢,大家把前面的所有的设计一定要都做了啊,一定要都做了,然后做完之后呢,自己去分析分析啊,别到时候都不练习啊,不练习就可能就会到最后啊,你什么都不知道,或者说呢,你只是听我白话了一下,到最后呢。
129:50
一问你只能说个大概,让你自己动手做什么都做不出来啊,那就不好了啊,好了,没问的是吧,没问题,那咱就今天就就这样好吧。然后明天后天呢,咱们休息,然后把我说这几个问题呢,好好想一想啊,好好想一想,OK,那咱就这样。
我来说两句