多串口單一中斷源的芯片設(shè)計(jì)
3.1 頂層模塊頂層模塊在各模塊設(shè)計(jì)之前作為統(tǒng)籌規(guī)劃整個(gè)程序,是設(shè)計(jì)過程中再繼續(xù)完善和修正的重要部分。在頂層模塊里根據(jù)不同的地址輸入,選擇標(biāo)志或者數(shù)據(jù)的傳送。為了更好地將兩次操作區(qū)分開來使編程更加容易,論文中還設(shè)計(jì)了一個(gè)標(biāo)志寄存器rd_check_counter,在不同的操作來時(shí),它的值不同。
3.2中斷控制模塊
中斷控制模塊要完成置標(biāo)志位,定時(shí)輸出中斷信號(hào)和向單片機(jī)傳送標(biāo)志位信息等功能。模塊接收端有中斷請(qǐng)求到來,中斷控制模塊即將相應(yīng)收發(fā)器的標(biāo)志位置 1,在數(shù)據(jù)被讀取之后,又立刻將標(biāo)志位清 0 [3]。
3.3收發(fā)器模塊收發(fā)器模塊結(jié)構(gòu)圖如圖 2b。在接收方面,收發(fā)器模塊實(shí)現(xiàn)接收數(shù)據(jù),并將數(shù)據(jù)串轉(zhuǎn)并,儲(chǔ)存到寄存器里等待單片機(jī)的讀取。在發(fā)送方面,收發(fā)器將單片機(jī)數(shù)據(jù)總線送過來的并行數(shù)據(jù)串行輸出[4]。
數(shù)據(jù)接收時(shí)數(shù)據(jù)經(jīng)過格式轉(zhuǎn)換后便被放入 8字節(jié)的緩存里面,該緩存在每次數(shù)據(jù)存入后就啟動(dòng)計(jì)數(shù)器,當(dāng)過一段時(shí)間還沒有新的數(shù)據(jù)存入時(shí),收發(fā)器即可以向中斷控制模塊提出中斷請(qǐng)求并且等待單片機(jī)對(duì)數(shù)據(jù)的讀取。發(fā)送數(shù)據(jù)時(shí),收發(fā)器接收到單片機(jī)送來的數(shù)據(jù)并將其存儲(chǔ)起來,在串行數(shù)據(jù)發(fā)送設(shè)備準(zhǔn)備好的情況(txrdy為 1)下再進(jìn)行格式轉(zhuǎn)換并發(fā)送,無論接收還是發(fā)送串行數(shù)據(jù)都是通過外部時(shí)鐘進(jìn)行計(jì)數(shù)控制的[5]。
3.4地址寄存器模塊 . 本文引用地址:http://butianyuan.cn/article/173271.htm
地址鎖存模塊在 ale信號(hào)(單片機(jī)地址鎖存允許信號(hào))到來時(shí)將地址低 8位鎖存起來,并送給中斷控制和上層模塊使用[6]。
3.5芯片端口
上述幾個(gè)模塊合成后的芯片外觀及其端口特征描述如下圖 3所示: 1、set_mode(0,1):兩位信號(hào)輸入引腳,用于模式的選擇,模式 1和模式 2分別用 01和 10來選擇。2、ale:地址鎖存允許信號(hào)輸入引腳,與單片機(jī)的 ale相連,在 ale下降沿的時(shí)候?qū)⒌刂返?8位鎖存到地址鎖存模塊。3、clk:時(shí)鐘信號(hào)輸入引腳,時(shí)鐘的頻率定為串行數(shù)據(jù)傳輸頻率的 4倍,如串行通信的波特率是
9600bps,則 clk的頻率是 9600×4=38400Hz。
4、cs:芯片總片選信號(hào)輸入引腳,低電平有效。
5、rd,wr:單片機(jī)向芯片讀寫的控制引腳,低電平有效。
6、rxd1,rxd2,rxd3,rxd4:串行輸入引腳。
7、INT0:中斷信號(hào)輸出引腳,下降沿有效。
8、odd_check1_o,odd_check2_o,odd_check3_o,odd_check4_o:送給單片機(jī)的奇偶校驗(yàn)標(biāo)志信號(hào)輸出引腳。
9、rdfull:數(shù)據(jù)緩沖器標(biāo)志信號(hào)輸出引腳,該信號(hào)用‘1’和‘0’表明是否有收發(fā)器的緩存了數(shù)據(jù)尚未被提取。
10、rdrdy1,rdrdy2,rdrdy3,rdrdy4:引腳分別用于表明各個(gè)收發(fā)器是否正忙,從該收發(fā)器開始接收數(shù)據(jù)到數(shù)據(jù)被單片機(jī)讀取整個(gè)過程,其相應(yīng)的rdrdy引腳輸出‘1’。
11、txd1,txd2,txd3,txd4:串行數(shù)據(jù)輸出引腳。
12、tdempty:該引腳輸出為‘1’時(shí)表明芯片已沒有正在發(fā)送或者是將要發(fā)送的數(shù)據(jù)。
13、txrdy1,txrdy2,txrdy3,txrdy4:分別為收發(fā)器 1、2、3和 4可否進(jìn)行發(fā)送控制輸入端,輸入為‘1’表示可以進(jìn)行串行數(shù)據(jù)的發(fā)送。
14、d_inout(7:0):雙向數(shù)據(jù)總線。應(yīng)與單片機(jī) p0口相連。
15、addr_h(7:0):地址高 8位。
4程序的綜合及仿真
4.1 設(shè)計(jì)綜合及實(shí)現(xiàn)
本設(shè)計(jì)綜合使用的工具是 Xilinx公司的 XST,它是內(nèi)嵌在 ISE7.2i里面的。綜合過程將把軟件設(shè)計(jì)的 HDL描述與硬件結(jié)構(gòu)掛鉤,是將軟件轉(zhuǎn)化為硬件電路的關(guān)鍵步驟 [7-9]。本設(shè)計(jì)綜合時(shí)選用的芯片是Spartan-ⅡE系列的xc2s100e。
綜合工具生成網(wǎng)表文件后,就可以實(shí)現(xiàn)設(shè)計(jì),實(shí)現(xiàn)的步驟有:轉(zhuǎn)換(將多個(gè)設(shè)計(jì)文件合并為一個(gè)網(wǎng)表),映射(將網(wǎng)表中的邏輯符號(hào)(門)整合到物理元件中),布局布線(將元件放到器件中,并將它們連接起來,同時(shí)提取出時(shí)序數(shù)據(jù),并生成各種報(bào)告)。
4.2 綜合布線結(jié)果及分析
圖 4為資源利用結(jié)果圖表,由圖可見,slices的占用量為 722個(gè),占該芯片 slices總數(shù)的 60%。slice registers的使用數(shù)量為 591個(gè),占該芯片總數(shù)的 24%。4輸入查找表的使用總量是 915個(gè),占該芯片查找表總數(shù)的 38%。
4.3 布線后仿真
本文中所舉出的測(cè)試均為布線后的仿真測(cè)試,該仿真的仿真延時(shí)文件包含的延時(shí)信息最全,不僅包含了門延時(shí),還包含了實(shí)際布線延時(shí),所以布局布線后仿真最準(zhǔn)確,能夠較好的反映芯片的實(shí)際工作情況。
評(píng)論