chapter 14 時(shí)序邏輯
14.3 改進(jìn)交通燈控制器,修改表所示的交通燈控制器FSM亩钟,使其在某一個(gè)方向上變?yōu)榫G燈之前乓梨,使得兩個(gè)方向都變?yōu)榧t燈,持續(xù)一個(gè)周期径荔。給出新得FSM得狀態(tài)表和狀態(tài)圖
狀態(tài) | 下一個(gè)狀態(tài) | 輸出 | |
---|---|---|---|
carew = 0 | carew = 1 | ||
GNS | GNS | YNS | 100 001 |
YNS | GEW | GEW | 010 001 |
GEW | YEW | YEW | 001 100 |
YEW | GNS | GNS | 001 010 |
要使得變?yōu)槁窡糁埃瑑蓚€(gè)方向下變?yōu)榧t燈脆霎,可以發(fā)現(xiàn)原表格只有當(dāng)一個(gè)狀態(tài)變?yōu)辄S燈之后总处,下一個(gè)狀態(tài)才會(huì)時(shí)一個(gè)方向?yàn)榫G燈,另外也給方向?yàn)榧t燈睛蛛,現(xiàn)在修改為下一個(gè)狀態(tài)為兩個(gè)方向設(shè)置為紅燈鹦马,之后的狀態(tài)才是一個(gè)紅燈一個(gè)綠燈
狀態(tài) | 下一個(gè)狀態(tài) | 輸出 | |
---|---|---|---|
carew = 0 | carew = 1 | ||
GNS | GNS | YNS | 100 001 |
YNS | REW,RNS | REW,RNS | 010 001 |
REW,RNS | GEW | GEW | 001 001 |
GEW | YEW | RNS | 001 100 |
YEW | REW,RNS | REW,RNS | 001 010 |
REW,RNS | GNS | GNS | 001 010 |
14.4 改進(jìn)交通燈的控制器,為14.3中改進(jìn)的交通燈控制器選擇一個(gè)狀態(tài)分配忆肾,并導(dǎo)出計(jì)算下一個(gè)狀態(tài)和輸出的邏輯函數(shù)荸频。給出下雨給狀態(tài)變量和輸出變量的卡諾圖,以及FSM的門級(jí)示意圖
為了識(shí)別兩個(gè)方向?yàn)榧t燈之后客冈,下一個(gè)狀態(tài)哪個(gè)方向應(yīng)該輸出綠燈旭从,哪一個(gè)狀態(tài)應(yīng)該輸出紅燈,新增加兩個(gè)狀態(tài)场仲,分別為上一個(gè)狀態(tài)為YNS和悦,下一個(gè)狀態(tài)為兩個(gè)方向紅燈,以及上一個(gè)狀態(tài)為YEW渠缕,下一個(gè)狀態(tài)為兩個(gè)方向紅燈鸽素,具體編碼如下表所示。
狀態(tài) | 編碼 |
---|---|
GNS | 000 |
YNS | 001 |
RNS亦鳞,REW | 011 |
GEW | 010 |
YEW | 110 |
RNS馍忽,REW | 100 |
根據(jù)當(dāng)前狀態(tài)計(jì)算出下一狀態(tài)真值表如下圖所示,一個(gè)方向?yàn)榫G燈或者為黃燈燕差,另外一個(gè)方向必為紅燈
狀態(tài) | carew | 下狀態(tài)(ns2ns1 ns0) | 備注 |
---|---|---|---|
000 | 0 | 000 | 南北方向綠燈遭笋,carew=0 |
000 | 1 | 001 | 當(dāng)前狀態(tài)ns上為綠燈,carew=1 |
001 | 0 | 011 | 當(dāng)前狀態(tài)為NS方向上為黃燈徒探,下一狀態(tài)全紅燈坐梯,carew = 0 |
001 | 1 | 011 | 當(dāng)前狀態(tài)為NS方向上為黃燈,下一狀態(tài)全紅燈刹帕,carew = 1 |
011 | 0 | 010 | 上一狀態(tài)NS方向?yàn)辄S燈吵血,下一狀態(tài)EW為綠燈谎替,carew = 0 |
011 | 1 | 010 | 上一狀態(tài)NS方向?yàn)辄S燈,下一狀態(tài)EW為綠燈蹋辅,carew = 1 |
010 | 0 | 110 | 上一狀態(tài)兩個(gè)方向?yàn)榧t燈钱贯,下一狀態(tài)EW為黃燈,carew = 0 |
010 | 1 | 110 | 上一狀態(tài)兩個(gè)方向?yàn)榧t燈侦另,下一狀態(tài)EW為黃燈秩命,carew =1 |
110 | 0 | 100 | 上一狀態(tài)EW方向上為綠燈,下一狀態(tài)為全紅燈褒傅,carew=0 |
110 | 1 | 100 | 上一狀態(tài)EW方向上為綠燈弃锐,下一狀態(tài)為全紅燈,carew=1 |
100 | 0 | 000 | 上一狀態(tài)為EW方向上為黃燈殿托,下一狀態(tài)為NS為綠燈霹菊,carew=0 |
100 | 1 | 000 | 上一狀態(tài)為EW方向上為黃燈,下一狀態(tài)為NS為綠燈支竹,carew=1 |
可得到真值表ns2
c ns2\s1s0 | 00 | 01 | 11 | 10 |
---|---|---|---|---|
00 | 0 | 0 | 0 | 1 |
01 | 0 | 0 | 0 | 1 |
11 | 0 | 0 | 0 | 1 |
10 | 0 | 0 | 0 | 1 |
ns2 = s0' * s1
同理可以得到ns1的真值表如下所示
c ns2\s1s0 | 00 | 01 | 11 | 10 |
---|---|---|---|---|
00 | 0 | 1 | 1 | 1 |
01 | 0 | 0 | 0 | 0 |
11 | 0 | 0 | 0 | 0 |
10 | 0 | 1 | 1 | 1 |
ns1 = s2' * (s0 + s1)
可得到ns0的真值表如下
c ns2\s1s0 | 00 | 01 | 11 | 10 |
---|---|---|---|---|
00 | 0 | 1 | 0 | 0 |
01 | 0 | 0 | 0 | 0 |
11 | 0 | 0 | 0 | 0 |
10 | 1 | 1 | 0 | 0 |
ns0 = (s1' * s2') * (s0 + c)
可以得到輸出變量的邏輯函數(shù)如下所示旋廷。
gns = s0' * s1' * s2'
yns = s0 * s1' * s2'
rns = s1 + s2
gew = s0' * s1 * s2'
yew = s0' * s1 * s2
rns = (s0‘ * s1)'
可以的到邏輯圖如下所示。經(jīng)驗(yàn)證設(shè)計(jì)符合要求
chapter 16數(shù)據(jù)通路的時(shí)序邏輯
16.8. 斐波那契數(shù)列礼搁,畫出使用數(shù)據(jù)通路電路計(jì)算16位斐波那契數(shù)列的框圖饶碘,在每個(gè)周期內(nèi),電路輸出下一位斐波那契數(shù)(復(fù)位后從0開始)馒吴。當(dāng)下一個(gè)數(shù)字大于16時(shí)扎运,電路應(yīng)該發(fā)出指示信號(hào)
每個(gè)周期,順序輸出0饮戳,1绪囱,2,3莹捡,5鬼吵,8,13.....當(dāng)復(fù)位信號(hào)來的時(shí)候篮赢,恢復(fù)輸出從0開始齿椅,電路如下所示。
寄存器a保存當(dāng)前計(jì)算的結(jié)果启泣,寄存器b保存上一次計(jì)算的結(jié)果涣脚,下一次的結(jié)果通過兩次寄存器的值相加給出,要是超出16位寥茫,則vfo為1.
控制信號(hào):當(dāng)為上升沿時(shí)遣蚀,寄存器a的結(jié)果打到b,寄存器a的結(jié)果為上一次兩個(gè)寄存器相加的結(jié)果,要是兩個(gè)寄存器都是初始態(tài)0,則寄存器a的結(jié)果為1,當(dāng)發(fā)生復(fù)位時(shí)煮仇,res為1舞痰,兩個(gè)寄存器的值都將會(huì)被清0缘滥。
經(jīng)過驗(yàn)證,電路可以得到預(yù)期的結(jié)果,產(chǎn)生斐波那契數(shù)。