基于PLD的嵌入式系統(tǒng)外存模塊設(shè)計(jì)
#(a[15..0]= =Address_F_W)! ALE)
READY信號(hào)的產(chǎn)生落后ALE下降沿5ns,造成READY信號(hào)產(chǎn)生無(wú)效,解決這個(gè)問(wèn)題的唯一方法是提前生成READY信號(hào)。實(shí)際中有效地址是在ALE下降沿鎖存后產(chǎn)生的,這也是READY信號(hào)產(chǎn)生表達(dá)式中最后一項(xiàng)的來(lái)源,但是考慮到地址的產(chǎn)生應(yīng)該發(fā)生在ALE下降沿之前,以保證鎖存到正確的地址。因此大膽設(shè)想讓READY信號(hào)的產(chǎn)生不再受ALE的控制,只要總線上產(chǎn)生地址就可以作出判斷,從而提前生成READY信號(hào)。但這樣的做法破壞了同步時(shí)序,而且異步生成READY信號(hào)容易產(chǎn)生冒險(xiǎn)現(xiàn)象。通過(guò)分析,可以發(fā)現(xiàn)異步生成
READY信號(hào)并不會(huì)帶來(lái)任何不穩(wěn)定因素,因此修改READY信號(hào)如下:
ready=!(((a[15..0]>=H0200)(a[15..0]=H1EFF))
#((a[15..0]>=H2000)(a[15..0]=H8FFF))
#(a[15..0)= =Address_F_R)
#(a[15..0]= =Address_F_W)
即去掉了對(duì)地址有效信號(hào)ALE的判斷。修改后系統(tǒng)工作穩(wěn)定、正常。修改后對(duì)Hash ROM的讀寫時(shí)序如圖7所示,而對(duì)RAM讀寫的時(shí)序依舊是圖6,目的達(dá)到??紤]到插入一個(gè)等待周期后大大增加了讀寫時(shí)間,因此將AT29C1024-70JC換成廉價(jià)的AT29C1024-12JC(有效數(shù)據(jù)建立時(shí)間為120ns)[3],系統(tǒng)依然能夠穩(wěn)定工作。通過(guò)使用,證明這種存儲(chǔ)器設(shè)計(jì)方案是可行的。
評(píng)論