《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于FPGA 的嵌入式塊SRAM 的設計
基于FPGA 的嵌入式塊SRAM 的設計
OFweek電子工程網</span>
摘要: 文章中提出了一種應用于FPGA的嵌入式可配置雙端口的塊存儲器。該存儲器包括與其他電路的布線接口、可配置邏輯、可配置譯碼、高速讀寫電路。在編程狀態下,可對所有存儲單元進行清零,且編程后為兩端口獨立的雙端存儲器。當與FPGA其他邏輯塊編程連接時,能實現FIFO等功能。
關鍵詞: FPGA 嵌入式 SRAM 存儲器
Abstract:
Key words :

  1 引言

  對于邏輯芯片的嵌入存儲器來說,嵌入式SRAM 是最常用的一種,其典型的應用包括片上緩沖器、高速緩沖存儲器、寄存器堆等。除非用到某些特殊的結構,標準的六管單元(6T)SRAM 對于邏輯工藝有著很好的兼容性。對于小于2Mb 存儲器的應用,嵌入式SRAM 可能有更好的成本效率并通常首先考慮。

  Xilinx 公司SRAM型FPGA 主要由配置存儲器、布線資源、可編程I/O、可編程邏輯單元CLB、塊存儲器BRAM 和數字時鐘管理模塊組成。它包含了分布式RAM,位于CLB中。每個CLB包含了16 × 1bit的SRAM結構。BRAM的加入既增加了RAM的容量,也可構成大型LUT,更完善了CLB 的功能。

  2 BRAM塊劃分

  現代數字系統對存儲器容量的存儲速率要求越來越高,讀訪問時間就是一個重要參數,它是從地址信號的出現到存儲在該地址上的數據在輸出端出現的時間延遲。提高BRAM 讀取速度的一個有效辦法是減小位線和字線上的總負載電容,這可以通過減少連接在同一字線和位線上的存儲單元數目來實現,即采用存儲陣列分塊技術。本電路采用設計多個BRAM的方法,每個BRAM都有自己的譯碼電路、敏感放大器和數據通道,各個BRAM 獨立工作,每個BRAM 的讀取時間得到了大大提高。

  3 BRAM塊設計

  3.1 BRAM與布線資源接口

  FPGA 中每個BRAM塊都嵌在內部連線結構中,與BRAM 直接相連的有RAMLINE、VLONG 和GLOBAL。左邊32根RAMLINE提供BRAM的地址輸入,也可以提供控制信號(CLK、WE、ENA、RST)的輸入。左邊兩組16 根RAMLINE 一起布線提供BRAM雙端口的數據輸入,右邊兩組RAMLINE提供BRAM雙端口數據輸出通道。4 根GLOBLE全局時鐘線優化用作時鐘輸入,提供較短的延遲和最小的失真。VLONG也被專門用作BRAM中WE、ENA、RST的控制輸入。RAMLINE 為BRAM專有布線,如從水平方向的SINGLE、UNIHEX、BIHEX通過可編程開關矩陣PSM 把信號輸送到RAMLINE 上,進而送到BRAM 用作地址、數據。而BRAM 的輸出也通過RAMLINE最終送到HLONG上。

  

  圖1 BRAM周圍布線

  相鄰BRAM 的RAMLINE 也可通過三態門連到下一級的RAMLINE,于是整列中的BRAM 可共享RAMLINE 上的數據。每個BRAM與FPGA其他電路的相連主要通過水平方向的4 組主要互連線完成。

  3.2 BRAM內部設計

  BRAM為真正的雙端口RAM,兩個端口完全獨立,每個端口可以配置為讀寫端口,并可以把BRAM配置成特定的數據寬度。

  3.2.1 可配置數據位寬實現方法

  配置邏輯中三位控制信號WIDTH_SEL《0∶2》連到BRAM中,同時對地址寬度、數據寬度進行控制。

  由于BRAM可以實現1、2、4、8、16 位的任意位寬,所以地址總線寬度、數據總線寬度都必須滿足其中任意一種模式下的要求。于是設計時使地址總線寬度為各種模式下的最大值,即1位時的地址寬度《11∶0》,其他模式下可使不用的地址位使能無效,進而獲得所需的地址位。數據總線寬度也設置為各種情況下的最大值,即16 位時的數據寬度《15∶0》,其他情況下選擇有用的數據位進行存儲。

  表1可見WIDTH_SEL《0∶2》對地址使能的控制,主要在于對地址《11∶8》的控制,其他位地址《7∶0》則一直有效。

  表1 不同數據位寬的地址使能

  

  由WIDTH_SEL《0∶2》另外譯碼產生一組數據控制信號,分別為S_1、S_2、S_4、S_8、S_16 控制數據如何分配到位線上。這當中* 根位線實行了分片,每片4 根:

  S_1有效:DI《0》可分配到16片中的任何一片上。

  S_2有效:DI《0∶1》可分配到《0∶1》、《2∶3》、《4∶5》?任何相鄰兩片上,每片1 位數據。

  S_4有效:DI《0∶3》可分配到《0∶3》、《4∶7》、《8∶11》、《12∶15》任何相鄰四片上,每片1 位數據。

  S_8 有效:DI《0∶7》可分配到《0∶7》或《8∶15》 8片上,每片1 位數據。

  S_16 有效:DI《0∶15》剛好分配到16片上,每片1 位數據。

  至于上述究竟存儲到哪些片上以及具體存儲到片內哪根位線上則由列譯碼控制。

  1 引言

  對于邏輯芯片的嵌入存儲器來說,嵌入式SRAM 是最常用的一種,其典型的應用包括片上緩沖器、高速緩沖存儲器、寄存器堆等。除非用到某些特殊的結構,標準的六管單元(6T)SRAM 對于邏輯工藝有著很好的兼容性。對于小于2Mb 存儲器的應用,嵌入式SRAM 可能有更好的成本效率并通常首先考慮。

  Xilinx 公司SRAM型FPGA 主要由配置存儲器、布線資源、可編程I/O、可編程邏輯單元CLB、塊存儲器BRAM 和數字時鐘管理模塊組成。它包含了分布式RAM,位于CLB中。每個CLB包含了16 × 1bit的SRAM結構。BRAM的加入既增加了RAM的容量,也可構成大型LUT,更完善了CLB 的功能。

  2 BRAM塊劃分

  現代數字系統對存儲器容量的存儲速率要求越來越高,讀訪問時間就是一個重要參數,它是從地址信號的出現到存儲在該地址上的數據在輸出端出現的時間延遲。提高BRAM 讀取速度的一個有效辦法是減小位線和字線上的總負載電容,這可以通過減少連接在同一字線和位線上的存儲單元數目來實現,即采用存儲陣列分塊技術。本電路采用設計多個BRAM的方法,每個BRAM都有自己的譯碼電路、敏感放大器和數據通道,各個BRAM 獨立工作,每個BRAM 的讀取時間得到了大大提高。

  3 BRAM塊設計

  3.1 BRAM與布線資源接口

  FPGA 中每個BRAM塊都嵌在內部連線結構中,與BRAM 直接相連的有RAMLINE、VLONG 和GLOBAL。左邊32根RAMLINE提供BRAM的地址輸入,也可以提供控制信號(CLK、WE、ENA、RST)的輸入。左邊兩組16 根RAMLINE 一起布線提供BRAM雙端口的數據輸入,右邊兩組RAMLINE提供BRAM雙端口數據輸出通道。4 根GLOBLE全局時鐘線優化用作時鐘輸入,提供較短的延遲和最小的失真。VLONG也被專門用作BRAM中WE、ENA、RST的控制輸入。RAMLINE 為BRAM專有布線,如從水平方向的SINGLE、UNIHEX、BIHEX通過可編程開關矩陣PSM 把信號輸送到RAMLINE 上,進而送到BRAM 用作地址、數據。而BRAM 的輸出也通過RAMLINE最終送到HLONG上。

  

  圖1 BRAM周圍布線

  相鄰BRAM 的RAMLINE 也可通過三態門連到下一級的RAMLINE,于是整列中的BRAM 可共享RAMLINE 上的數據。每個BRAM與FPGA其他電路的相連主要通過水平方向的4 組主要互連線完成。

  3.2 BRAM內部設計

  BRAM為真正的雙端口RAM,兩個端口完全獨立,每個端口可以配置為讀寫端口,并可以把BRAM配置成特定的數據寬度。

  3.2.1 可配置數據位寬實現方法

  配置邏輯中三位控制信號WIDTH_SEL《0∶2》連到BRAM中,同時對地址寬度、數據寬度進行控制。

  由于BRAM可以實現1、2、4、8、16 位的任意位寬,所以地址總線寬度、數據總線寬度都必須滿足其中任意一種模式下的要求。于是設計時使地址總線寬度為各種模式下的最大值,即1位時的地址寬度《11∶0》,其他模式下可使不用的地址位使能無效,進而獲得所需的地址位。數據總線寬度也設置為各種情況下的最大值,即16 位時的數據寬度《15∶0》,其他情況下選擇有用的數據位進行存儲。

  表1可見WIDTH_SEL《0∶2》對地址使能的控制,主要在于對地址《11∶8》的控制,其他位地址《7∶0》則一直有效。

  表1 不同數據位寬的地址使能

  

  由WIDTH_SEL《0∶2》另外譯碼產生一組數據控制信號,分別為S_1、S_2、S_4、S_8、S_16 控制數據如何分配到位線上。這當中* 根位線實行了分片,每片4 根:

  S_1有效:DI《0》可分配到16片中的任何一片上。

  S_2有效:DI《0∶1》可分配到《0∶1》、《2∶3》、《4∶5》?任何相鄰兩片上,每片1 位數據。

  S_4有效:DI《0∶3》可分配到《0∶3》、《4∶7》、《8∶11》、《12∶15》任何相鄰四片上,每片1 位數據。

  S_8 有效:DI《0∶7》可分配到《0∶7》或《8∶15》 8片上,每片1 位數據。

  S_16 有效:DI《0∶15》剛好分配到16片上,每片1 位數據。

  至于上述究竟存儲到哪些片上以及具體存儲到片內哪根位線上則由列譯碼控制。

  3.2.2 譯碼控制

  行譯碼采用了常用的3-8 譯碼器,3-8 譯碼器內由與門組成。第一級用兩個3-8 譯碼器,輸入端接入行地址ADDR《5∶0》,第二級用64 個與門把第一級譯碼進一步譯出來,可實現64 行中選出1 行。

  

  圖2 64 選1 行譯碼

  列譯碼相對較復雜,首先將列地址分為兩組,一組用于片選譯,一組用于片內譯碼。片選地址由ADDR《11∶8》組成,片內譯碼由ADDR《7∶6》組成。

  片選地址譯碼由地址和地址使能組成,而地址使能則是由WIDTH_SEL《0∶2》配置決定的。

  

  圖3 片選譯碼

  譯碼所得的A《11∶8》_DEC《0∶15》即可實現片選存儲。當配置為1 位時,4 位地址均有效,譯出的16位中只有1 位有效,只能選擇16 片中的1 片。當配置為2 位時,ADDR《11》使能無效,譯出16位中有連續2 位有效,能選擇16 片中連續2 片。當配置為4 位時,譯出16 位中有連續4 位有效,能選擇16 片中連續4 片。配置為8 位就能選擇16 片中的上8 片或下8 片。配置為16 位,4 個地址均無效,譯出的16 位全有效,16 片全選。經過了片選的一級譯碼,列譯碼還需經過第二級的片內譯碼。

  

  圖4 片內譯碼

  A《11∶8》_DEC與A7 譯碼均為低有效,A6譯碼為高有效。之所以能夠用或門譯碼,是因為沒被譯碼的一對BL 和BLN 位線上的數據是不會被寫入存儲單元的,如A7《0》為1,A《11∶8》_DEC為1,BL《0》與BLN《0》均為1,即使字線打開了,它們也是不會被寫入存儲陣列的。而被譯碼選中的一對位線,BL與BLN 互補,它們上的數據即可被寫入存儲單元。

  3.2.3 位線充電電路

  對位線的充電共有兩對充電管和一對上拉管,寬長比在設計上也是有講究的。上拉管一直開啟,為倒比管。柵極接平衡管的M1 和M2 時序要求較高,因為它們的寬長比較大,為主要充電管。在BRAM總使能信號ENA和時鐘CLK有效時工作,進行預充電。在CLK 下降沿,M1 和M2 短暫關閉可執行讀操作。M1、M2和平衡管都在Pre1_BL信號控制下工作。

  Pre1_BL 需在數據線與位線之間的開關管打開時關閉,不影響數據的讀操作。Pre1_BL信號受到數據線與位線的開關管控制信號A 的約束,圖4 的結構即可避免Pre1_BL與A的時序沖突,在A有效時,Pre1_BL無效,且當A 關閉時,Pre1_BL 延遲開啟。

  而M3 和M4 管則由Pre2_BL信號控制,Pre2_BL由BRAM全局信號ENA、CLK 和WE 一起控制。由于BRAM 在進行寫操作時,也可鏡像地輸出寫入的數據,即也做了讀操作。為了更好地在寫入時也讀出,且滿足頻率要求,有必要增加這一充電管。

  

  圖5 Pre1_BL 信號產生電路

  

  圖6 位線充電電路

  4 BRAM應用

  作為隨機存取存儲器,BRAM 除了實現一般的存儲器功能外,還可實現不同數據寬度的存儲,且可用作ROM,以實現組合邏輯函數。當初始化了BRAM后,一組地址輸入就對應了一組數據的輸出,根據數據和地址的對應關系,就能實現一定的函數功能,BRAM 之所以能實現函數邏輯,原因是它擁有足夠的存儲單元,可以把邏輯函數所有可能的結果預先存入到存儲單元中。如實現4 × 4 二進制乘法器:

  

  即由地址來查找數據,如同LUT。在FPGA 中,還可用BRAM來實現FIFO中的存儲體模塊,CLB實現控制邏輯,設計緊湊,小巧靈活。

  

  圖7 4 位乘法器

  5 結論

  如今系統越來越高級,數字電路也高度集成,存儲器也越來越多地應用于嵌入式芯片中。本文設計了一種應用于FPGA 的嵌入式存儲器結構,符合一般的雙端SRAM 功能,且具有FPGA 功能塊的可配置選擇,靈活性很高。

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
一区二区久久久久久| 国产在线麻豆精品观看| 亚洲国产精品第一区二区| 国产视频亚洲精品| 欧美在线高清| 欧美在线1区| 国内外成人免费激情在线视频网站| 久久久99免费视频| 久久精品一区| 亚洲国内精品在线| 欧美日韩国产系列| 亚洲欧美日韩国产精品| 亚洲免费在线精品一区| 国产日韩欧美高清| 久久国产一区二区| 亚洲第一精品福利| 亚洲精品一线二线三线无人区| 欧美日韩综合在线| 午夜久久99| 久久精品免视看| 国内激情久久| 欧美波霸影院| 中文国产成人精品久久一| 一区二区三区视频观看| 国产色产综合产在线视频| 欧美在线视频a| 久久精品午夜| 一本色道久久综合亚洲二区三区 | 欧美一区二区三区啪啪| 久久精品毛片| 日韩视频第一页| 国产一区二区三区高清在线观看 | 久久人人97超碰精品888| 亚洲精品国精品久久99热一| 一区二区三区**美女毛片| 国产精品男女猛烈高潮激情| 久久久久久久激情视频| 日韩视频在线观看免费| 亚洲在线免费观看| 亚洲高清自拍| 欧美视频中文在线看| 久久精品女人的天堂av| 99精品国产高清一区二区| 亚洲欧美日韩爽爽影院| 亚洲国产人成综合网站| 国产精品一区二区在线观看不卡| 久久亚洲综合色| 亚洲香蕉成视频在线观看| 欧美一级大片在线观看| 亚洲三级电影在线观看 | 国产日本欧美一区二区三区在线| 牛人盗摄一区二区三区视频| 亚洲在线日韩| 91久久久久久国产精品| 亚洲免费一在线| 一区二区三区国产| 亚洲精品日本| 91久久在线播放| 亚洲高清久久网| 伊人久久av导航| 激情久久婷婷| 国内精品久久久久久久影视蜜臀| 国产欧美日韩在线播放| 国产精品日韩久久久久| 国产精品麻豆欧美日韩ww| 欧美日韩亚洲另类| 欧美日韩在线免费| 欧美涩涩网站| 欧美视频网址| 欧美日韩一区在线| 欧美日韩国产限制| 欧美日韩一区二区三区四区五区| 欧美日韩国产精品成人| 欧美精品尤物在线| 欧美激情视频网站| 欧美国产日韩免费| 欧美电影打屁股sp| 欧美精品久久一区| 欧美日本在线| 欧美日韩国产成人精品| 欧美午夜www高清视频| 欧美视频精品一区| 国产精品久久久久久久久动漫| 国产精品久久久久久久久久久久久久| 国产精品国产三级国产专播精品人| 欧美婷婷久久| 国产女人精品视频| 国产一区二区三区在线观看免费| 国产一区二区成人| 在线观看国产成人av片| 亚洲精品一区二区在线| 99国产精品99久久久久久粉嫩| 一本久久精品一区二区| 亚洲一二三级电影| 亚洲欧美在线视频观看| 久久国产色av| 亚洲欧洲日产国码二区| 一本色道久久| 亚洲欧美日韩中文视频| 久久九九精品| 欧美黄在线观看| 欧美性生交xxxxx久久久| 国产精品亚洲综合一区在线观看| 国产午夜亚洲精品不卡| ●精品国产综合乱码久久久久| 亚洲精品久久视频| 亚洲一区999| 亚洲盗摄视频| 国产精品99久久99久久久二8| 国产丝袜一区二区三区| 亚洲精品久久久久中文字幕欢迎你 | 欧美福利一区二区三区| 欧美韩日亚洲| 国产精品成人免费视频| 国产麻豆综合| 一色屋精品亚洲香蕉网站| 91久久久国产精品| 亚洲视频免费观看| 久久国产毛片| 一片黄亚洲嫩模| 久久精品99国产精品| 欧美国产精品专区| 国产精品一区二区三区成人| 在线观看欧美亚洲| 亚洲午夜高清视频| 久久精品国产亚洲精品| 一区二区三区不卡视频在线观看| 性做久久久久久| 欧美国产视频在线| 国产精品一区一区| 亚洲激情在线观看| 午夜精品久久久久久久99热浪潮| 亚洲三级电影在线观看| 小辣椒精品导航| 欧美黄色免费网站| 国产婷婷97碰碰久久人人蜜臀| 亚洲精品婷婷| 欧美在线看片a免费观看| 亚洲性xxxx| 麻豆91精品91久久久的内涵| 国产精品人成在线观看免费 | 亚洲国产成人tv| 亚洲自拍电影| 欧美国产亚洲视频| 国产日韩亚洲欧美综合| 99精品视频免费全部在线| 亚洲国产91色在线| 欧美亚洲免费| 欧美视频中文一区二区三区在线观看| 国内视频一区| 亚洲欧美日韩国产一区二区三区 | 久久精品国产欧美激情| 欧美三级在线视频| 亚洲国产高清在线| 久久国产精品久久精品国产 | 国产精品久线观看视频| 亚洲欧洲精品一区二区三区不卡| 性色av一区二区怡红| 亚洲欧美激情一区二区| 欧美日本免费| 91久久精品久久国产性色也91| 欧美在线观看视频一区二区| 亚洲欧美日韩中文播放| 欧美日韩久久不卡| 亚洲欧洲在线一区| 91久久久精品| 蜜臀av性久久久久蜜臀aⅴ四虎| 国产情人节一区| 亚洲一区二区av电影| 亚洲视频 欧洲视频| 欧美久久婷婷综合色| 亚洲国产高清视频| 亚洲国产日日夜夜| 久久久久高清| 国产一二三精品| 性视频1819p久久| 久久久精品日韩| 国产日韩欧美综合精品| 香蕉精品999视频一区二区| 亚洲欧美一区二区三区久久| 国产精品久久久久久久久久尿| 日韩午夜免费| 亚洲一区二区三区在线视频| 欧美日韩伦理在线| 一区二区国产日产| 亚洲影院在线观看| 欧美午夜不卡在线观看免费 | 久久精品女人| 快播亚洲色图| 依依成人综合视频| 亚洲国产一区视频| 欧美freesex8一10精品| 亚洲激情专区| 中文av一区特黄| 国产精品久久久999| 午夜精品久久久久久久久久久久| 久久精品国产精品| 激情综合五月天| 亚洲精品小视频在线观看| 欧美人与性动交a欧美精品|