本發(fā)明涉及FPGA技術(shù)領(lǐng)域,尤其涉及一種FPGA片內(nèi)SRAM的時序處理方法、片內(nèi)SRAM及FPGA。
背景技術(shù):
SRAM(Static Random Access Memory,靜態(tài)隨機(jī)存取存儲器)是一種具有靜止存取功能的內(nèi)存,不需要刷新電路即能保存它內(nèi)部存儲的數(shù)據(jù),對于提高系統(tǒng)性能非常有幫助。SRAM從高層次上可以劃分為兩個大類:同步型和異步型。同步SRAM采用一個輸入時鐘來啟動所有數(shù)據(jù)處理(例如讀、寫、取消選定等),而異步SRAM則并不具備時鐘輸入,且必須監(jiān)視輸入以獲取來自控制器的命令,一旦識別出某條命令,異步SRAM將立即加以執(zhí)行。
FPGA片內(nèi)SRAM采用同步SRAM,具有兩種基本格式:直通型和流水線型。二者之間的差異在于,直通型SRAM僅在輸入端具有寄存器,當(dāng)?shù)刂泛涂刂戚斎氡徊东@且一個讀操作被啟動時,數(shù)據(jù)將被允許“直接流”至輸出端,此時輸出端口帶有鎖存器,輸出端口的狀態(tài)在輸入端口再次執(zhí)行讀操作之前保持不變,結(jié)構(gòu)框圖如圖1所示;而流水線型SRAM同時擁有一個輸入寄存器和一個輸出寄存器,結(jié)構(gòu)框圖如圖2所示。
直通型SRAM和流水線型SRAM各有優(yōu)缺點(diǎn),兩種類型SRAM讀操作時的輸出時序圖如圖3所示,直通型SRAM采用鎖存器輸出模式,捕獲到地址輸入和控制輸入且一個讀操作被啟動時,數(shù)據(jù)直接輸出,數(shù)據(jù)輸出和地址輸入在同一個時鐘周期,輸出沒有初始延遲,但是時序路徑比較長,路徑延時比較大,其中時鐘觸發(fā)沿到數(shù)據(jù)輸出的延時為Tco1,限制了系統(tǒng)的最高工作頻率;而流水線型SRAM采用寄存器輸出模式,捕獲到地址輸入和控制輸入且一個讀操作被啟動時,數(shù)據(jù)將在下一個時鐘周期被輸出寄存器捕獲并輸出,數(shù)據(jù)輸出相對于地址輸入有一個時鐘周期的初始延遲,但是由于在時序路徑上插入了輸出寄存器,可以減少路徑延時,其中時鐘觸發(fā)沿到數(shù)據(jù)輸出的延時為Tco2,明顯地,Tco2<Tco1,從而可以提高系統(tǒng)的最高工作頻率。
通常情況下,當(dāng)對初始延遲的重要性考慮超過對持續(xù)帶寬的考慮時,往往優(yōu)先采用直通型SRAM;當(dāng)需求較高帶寬而對初始延遲不是很敏感時,常常優(yōu)先采用流水線型SRAM。
在實(shí)現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在如下技術(shù)問題:
FPGA片內(nèi)SRAM采用流水線型SRAM,能夠獲得更好的時序性能,提高系統(tǒng)的最高工作頻率,但在執(zhí)行讀操作時輸出會增加一個時鐘周期的初始延遲,在一些對初始延遲敏感的應(yīng)用場合會受到限制。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供的FPGA片內(nèi)SRAM的時序處理方法、片內(nèi)SRAM及FPGA,能夠消除FPGA片內(nèi)SRAM采用傳統(tǒng)流水線型SRAM執(zhí)行讀操作時輸出存在的一個時鐘周期的初始延遲,同時不影響原有的時序性能。
第一方面,本發(fā)明提供一種FPGA片內(nèi)SRAM的時序處理方法,所述方法包括:
地址譯碼器對輸入的地址信號進(jìn)行邏輯譯碼,選中所述地址信號指向的存儲器陣列中的存儲單元,以使被選中的存儲單元經(jīng)讀寫控制電路與輸入寄存器、輸出寄存器接通;
讀寫控制電路確定對所述被選中的存儲單元執(zhí)行讀操作或?qū)懖僮鳎?/p>
當(dāng)對所述被選中的存儲單元執(zhí)行讀操作時,輸出寄存器在時鐘信號的下降沿將數(shù)據(jù)讀出。
可選地,所述方法還包括:
當(dāng)對所述被選中的存儲單元執(zhí)行寫操作時,輸入寄存器在時鐘信號的上升沿將數(shù)據(jù)寫入。
第二方面,本發(fā)明提供一種FPGA片內(nèi)SRAM,包括地址譯碼器、存儲器陣列、讀寫控制電路、輸入寄存器和輸出寄存器,其中,
所述地址譯碼器,用于對輸入的地址信號進(jìn)行邏輯譯碼,選中所述地址信號指向的存儲器陣列中的存儲單元,以使被選中的存儲單元經(jīng)讀寫控制電路與輸入寄存器、輸出寄存器接通;
所述讀寫控制電路,用于確定對所述被選中的存儲單元執(zhí)行讀操作或?qū)懖僮鳎?/p>
所述輸出寄存器,用于當(dāng)對所述被選中的存儲單元執(zhí)行讀操作時,在時鐘信號的下降沿將數(shù)據(jù)讀出。
可選地,所述輸入寄存器,用于當(dāng)對所述被選中的存儲單元執(zhí)行寫操作時,在時鐘信號的上升沿將數(shù)據(jù)寫入。
第三方面,本發(fā)明提供一種FPGA,所述FPGA包括上述FPGA片內(nèi)SRAM。
本發(fā)明提供的FPGA片內(nèi)SRAM的時序處理方法、片內(nèi)SRAM及FPGA,當(dāng)對SRAM執(zhí)行讀操作時,輸出寄存器在時鐘信號的下降沿被觸發(fā),捕獲并輸出數(shù)據(jù),與現(xiàn)有技術(shù)相比,能夠消除FPGA片內(nèi)SRAM采用傳統(tǒng)流水線型SRAM執(zhí)行讀操作時輸出存在的一個時鐘周期的初始延遲,實(shí)現(xiàn)數(shù)據(jù)輸出和地址輸入的同步,從而滿足一些應(yīng)用電路的需要。
附圖說明
圖1為現(xiàn)有直通型SRAM的結(jié)構(gòu)框圖;
圖2為現(xiàn)有流水線型SRAM的結(jié)構(gòu)框圖;
圖3為現(xiàn)有直通型SRAM和現(xiàn)有流水線型SRAM讀操作時的輸出時序圖;
圖4為本發(fā)明一實(shí)施例FPGA片內(nèi)SRAM的時序處理方法的流程圖;
圖5為本發(fā)明一實(shí)施例FPGA片內(nèi)SRAM的結(jié)構(gòu)框圖;
圖6為本發(fā)明一實(shí)施例FPGA片內(nèi)SRAM讀操作時的輸出時序圖;
圖7為本發(fā)明一實(shí)施例FPGA片內(nèi)SRAM的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
本發(fā)明實(shí)施例提供一種FPGA片內(nèi)SRAM的時序處理方法,如圖4所示,所述方法包括:
S11、地址譯碼器對輸入的地址信號進(jìn)行邏輯譯碼,選中所述地址信號指向的存儲器陣列中的存儲單元,以使被選中的存儲單元經(jīng)讀寫控制電路與輸入寄存器、輸出寄存器接通;
S12、讀寫控制電路確定對所述被選中的存儲單元執(zhí)行讀操作或?qū)懖僮鳎?/p>
S13、當(dāng)對所述被選中的存儲單元執(zhí)行讀操作時,輸出寄存器在時鐘信號的下降沿將數(shù)據(jù)讀出。
可選地,所述方法還包括:
當(dāng)對所述被選中的存儲單元執(zhí)行寫操作時,輸入寄存器在時鐘信號的上升沿將數(shù)據(jù)寫入。
具體地,如圖5所示,地址譯碼器一般分成行地址譯碼器和列地址譯碼器兩部分。行地址譯碼器將輸入的地址信號Address的若干位譯成某一條字線的輸出高、低電平信號,從存儲器陣列中選中一行存儲單元;列地址譯碼器將輸入的地址信號Address的其余幾位譯成某一根輸出線上的高、低電平信號,從字線選中的一行存儲單元中再選中1位(或多位),使這些被選中的存儲單元經(jīng)讀寫控制電路與輸入寄存器、輸出寄存器接通,以便對這些存儲單元進(jìn)行讀操作或?qū)懖僮?。同樣地,列地址譯碼器將輸入的地址信號Address的若干位譯成某一條字線的輸出高、低電平信號,從存儲器陣列中選中一列存儲單元;行地址譯碼器將輸入的地址信號Address的其余幾位譯成某一根輸出線上的高、低電平信號,從字線選中的一列存儲單元中再選中1位(或多位),使這些被選中的存儲單元經(jīng)讀寫控制電路與輸入寄存器、輸出寄存器接通,以便對這些存儲單元進(jìn)行讀操作或?qū)懖僮鳌?/p>
具體地,如圖5所示,讀寫控制電路用于確定對所述被選中的存儲單元執(zhí)行讀操作或?qū)懖僮?。?dāng)讀寫控制信號Write/Read讀有效時,執(zhí)行讀操作,將存儲單元里的數(shù)據(jù)送到輸出寄存器,在時鐘信號CLK的下降沿來到時,輸出寄存器被觸發(fā),輸出數(shù)據(jù),輸出時序圖如圖6所示;當(dāng)讀寫控制信號Write/Read寫有效時,執(zhí)行寫操作,加到輸入寄存器的數(shù)據(jù)Data_in在時鐘信號CLK的上升沿來到時被寫入存儲單元中。另外讀寫控制電路還受Control信號控制,當(dāng)Control信號有效時可以對SRAM執(zhí)行讀操作或?qū)懖僮?,否則不能對SRAM執(zhí)行讀/寫操作。
本發(fā)明實(shí)施例提供的FPGA片內(nèi)SRAM的時序處理方法,當(dāng)對SRAM執(zhí)行讀操作時,輸出寄存器在時鐘信號的下降沿被觸發(fā),捕獲并輸出數(shù)據(jù),與現(xiàn)有技術(shù)相比,能夠消除FPGA片內(nèi)SRAM采用傳統(tǒng)流水線型SRAM執(zhí)行讀操作時輸出存在的一個時鐘周期的初始延遲,實(shí)現(xiàn)數(shù)據(jù)輸出和地址輸入的同步,從而滿足一些應(yīng)用電路的需要。
本發(fā)明實(shí)施例還提供一種FPGA片內(nèi)SRAM,如圖7所示,所述SRAM包括地址譯碼器71、存儲器陣列72、讀寫控制電路73、輸入寄存器74和輸出寄存器75,其中,
所述地址譯碼器71,用于對輸入的地址信號進(jìn)行邏輯譯碼,選中所述地址信號指向的存儲器陣列72中的存儲單元,以使被選中的存儲單元經(jīng)讀寫控制電路73與輸入寄存器74、輸出寄存器75接通;
所述存儲器陣列72,由許多存儲單元排列而成,在地址譯碼器71和讀寫控制電路73的控制下,既可以寫入數(shù)據(jù),又可以將存儲的數(shù)據(jù)讀出;
所述讀寫控制電路73,用于確定對所述被選中的存儲單元執(zhí)行讀操作或?qū)懖僮鳎?/p>
所述輸出寄存器75,用于當(dāng)對所述被選中的存儲單元執(zhí)行讀操作時,在時鐘信號的下降沿將數(shù)據(jù)讀出。
可選地,所述輸入寄存器74,用于當(dāng)對所述被選中的存儲單元執(zhí)行寫操作時,在時鐘信號的上升沿將數(shù)據(jù)寫入。
本發(fā)明實(shí)施例提供的FPGA片內(nèi)SRAM,當(dāng)對SRAM執(zhí)行讀操作時,輸出寄存器在時鐘信號的下降沿被觸發(fā),捕獲并輸出數(shù)據(jù),與現(xiàn)有技術(shù)相比,能夠消除FPGA片內(nèi)SRAM采用傳統(tǒng)流水線型SRAM執(zhí)行讀操作時輸出存在的一個時鐘周期的初始延遲,實(shí)現(xiàn)數(shù)據(jù)輸出和地址輸入的同步,從而滿足一些應(yīng)用電路的需要。
需要說明的是,所述輸出寄存器75可以通過SRAM編程、Flash編程、熔絲、反熔絲等方式配置成旁路狀態(tài),此時本發(fā)明實(shí)施例提供的FPGA片內(nèi)SRAM采用直通型SRAM,同樣地,所述輸出寄存器75也可以配置成在上升沿觸發(fā),此時本發(fā)明實(shí)施例提供的FPGA片內(nèi)SRAM采用傳統(tǒng)的流水線型SRAM。也就是說,本發(fā)明實(shí)施例提供的FPGA片內(nèi)SRAM中的輸出寄存器75有三種工作方式:旁路、上升沿觸發(fā)和下降沿觸發(fā),可以根據(jù)實(shí)際需要進(jìn)行配置,擴(kuò)大了所述FPGA片內(nèi)SRAM的使用范圍。
本發(fā)明實(shí)施例還提供一種FPGA,所述FPGA包括上述FPGA片內(nèi)SRAM。
以上所述,僅為本發(fā)明的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)利要求的保護(hù)范圍為準(zhǔn)。