zoukankan      html  css  js  c++  java
  • ROM的一种写法

     
    module mr_rom_pll_valuemask_8bpc #(
    parameter NUMBER_OF_MIF_RANGE = 6,
    parameter ROM_DEPTH_FOR_EACH_MIF_RANGE = 7,
    parameter ROM_SIZE = 32,
    parameter TOTAL_ROM_DEPTH = 42, // 6*7
    parameter ADDR_WIDTH = 6 // alt_clogb2(42)
    ) (
    input wire clock,
    input wire [ADDR_WIDTH-1:0] addr_ptr,
    output wire [ROM_SIZE-1:0] rdata_out
    );
     
    reg [ROM_SIZE-1:0] ROM [0:TOTAL_ROM_DEPTH-1];
    wire [ROM_SIZE-1:0] DATAA = {ROM_SIZE{1'b0}};
    wire [ADDR_WIDTH-1:0] RADDR;
     
    initial begin
    // FIELD_VALMASK
    // ROM OFFSET 0 (25MHz - 50MHz)
    ROM[0] <= 32'h00000F0F; // m 30
    ROM[1] <= 32'h00010000; // n 1
    ROM[2] <= 32'h00000303; // c0 6
    ROM[3] <= 32'h00001E1E; // c1 60
    ROM[4] <= 32'h00001E1E; // c2 60
    ROM[5] <= 32'h00000010; // cp
    ROM[6] <= 32'h00000100; // bw
    // ROM OFFSET 1 (51MHz - 70MHz)
    ROM[7] <= 32'h00000A0A; // m 20
    ROM[8] <= 32'h00010000; // n 1
    ROM[9] <= 32'h00000202; // c0 4
    ROM[10] <= 32'h00001414; // c1 40
    ROM[11] <= 32'h00001414; // c2 40
    ROM[12] <= 32'h0000000B; // cp
    ROM[13] <= 32'h000000C0; // bw
    // ROM OFFSET 2 (71MHz - 100MHz)
    ROM[14] <= 32'h00000505; // m 10
    ROM[15] <= 32'h00010000; // n 1
    ROM[16] <= 32'h00000101; // c0 2
    ROM[17] <= 32'h00000A0A; // c1 20
    ROM[18] <= 32'h00000A0A; // c2 20
    ROM[19] <= 32'h00000010; // cp
    ROM[20] <= 32'h000000C0; // bw
    // ROM OFFSET 3 (101MHz - 170MHz)
    ROM[21] <= 32'h00000404; // m 8
    ROM[22] <= 32'h00010000; // n 1
    ROM[23] <= 32'h00000404; // c0 8
    ROM[24] <= 32'h00000808; // c1 16
    ROM[25] <= 32'h00000808; // c2 16
    ROM[26] <= 32'h00000010; // cp
    ROM[27] <= 32'h000000C0; // bw
    // ROM OFFSET 4 (171MHz - 340MHz)
    ROM[28] <= 32'h00000202; // m 4
    ROM[29] <= 32'h00010000; // n 1
    ROM[30] <= 32'h00000202; // c0 4
    ROM[31] <= 32'h00000404; // c1 8
    ROM[32] <= 32'h00000404; // c2 8
    ROM[33] <= 32'h00000010; // cp
    ROM[34] <= 32'h000000C0; // bw
    // ROM OFFSET 5 (85.25MHz - 150MHz) - 2.0
    ROM[35] <= 32'h00000404; // m 8
    ROM[36] <= 32'h00010000; // n 1
    ROM[37] <= 32'h00000101; // c0 2
    ROM[38] <= 32'h00000202; // c1 4
    ROM[39] <= 32'h00000202; // c2 4
    ROM[40] <= 32'h00000010; // cp
    ROM[41] <= 32'h000000C0; // bw
    // Set the rest to all zeros
    ROM[42] <= 32'h00000000;
    ROM[43] <= 32'h00000000;
    ROM[44] <= 32'h00000000;
    ROM[45] <= 32'h00000000;
    ROM[46] <= 32'h00000000;
    ROM[47] <= 32'h00000000;
    ROM[48] <= 32'h00000000;
    ROM[49] <= 32'h00000000;
    ROM[50] <= 32'h00000000;
    ROM[51] <= 32'h00000000;
    ROM[52] <= 32'h00000000;
    ROM[53] <= 32'h00000000;
    ROM[54] <= 32'h00000000;
    ROM[55] <= 32'h00000000;
    ROM[56] <= 32'h00000000;
    ROM[57] <= 32'h00000000;
    ROM[58] <= 32'h00000000;
    ROM[59] <= 32'h00000000;
    ROM[60] <= 32'h00000000;
    ROM[61] <= 32'h00000000;
    ROM[62] <= 32'h00000000;
    ROM[63] <= 32'h00000000;
    end
     
    // write is unused
    wire [ADDR_WIDTH-1:0] ADDRA = {ADDR_WIDTH{1'b0}};
    wire WEA = 1'b0;
    always @ (posedge clock)
    begin
    if (WEA) begin
    ROM[ADDRA] <= DATAA;
    end
    end
     
    assign RADDR = addr_ptr;
     
    reg [ROM_SIZE-1:0] RDATA;
    always @ (posedge clock)
    begin
    RDATA <= ROM[RADDR];
    end
     
    assign rdata_out = RDATA;
     
    endmodule

  • 相关阅读:
    【原创】cs+html+js+css模式(一):初识新模式
    【原创】cs+html+js+css模式(三):RemoteCallHandler详解
    删除表数据
    【原创】cs+html+js+css模式(二):webconfig中的设置
    silverlight动画
    rdlc报表表达式应用(字符串和转换)
    Accordion控件制作下拉面板菜单(静态数据)
    silverlight三种布局
    Sys.UI.DomElement
    Accordion控件动态数据绑定案例
  • 原文地址:https://www.cnblogs.com/zhongguo135/p/7683836.html
Copyright © 2011-2022 走看看