新聞中心

        EEPW首頁 > EDA/PCB > 設計應用 > 一種基于FPGA 的嵌入式塊SRAM 的設計

        一種基于FPGA 的嵌入式塊SRAM 的設計

        作者: 時間:2011-03-14 來源:網絡 收藏

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

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

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

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

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

        不同數據位寬的地址使能

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

          S_1有效:DI0>可分配到16片中的任何一片上。

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

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

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

          S_16 有效:DI0∶15>剛好分配到16片上,每片1 位數據。

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

          3.2.2 譯碼控制

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

        64 選1 行譯碼

        圖2 64 選1 行譯碼

          列譯碼相對較復雜,首先將列地址分為兩組,一組用于片選譯,一組用于片內譯碼。片選地址由ADDR11∶8>組成,片內譯碼由ADDR7∶6>組成。

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

        片選譯碼

        圖3 片選譯碼

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

         片內譯碼

        圖4 片內譯碼

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)


        關鍵詞: FPGA SRAM 嵌入式

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 威远县| 兰考县| 石屏县| 康定县| 凉城县| 莒南县| 兴仁县| 丘北县| 进贤县| 靖江市| 习水县| 濮阳市| 祁阳县| 大安市| 探索| 眉山市| 新郑市| 靖宇县| 崇州市| 闵行区| 广州市| 三门县| 聂拉木县| 肇源县| 稷山县| 祁门县| 龙里县| 大姚县| 嘉义县| 牙克石市| 浦县| 布尔津县| 哈尔滨市| 桐乡市| 厦门市| 奉化市| 霍林郭勒市| 陈巴尔虎旗| 淮北市| 台安县| 广灵县|