请教 BLOCK RAM问题

如果用原语,类似于RAMB16,来实例化Block RAM, 一次是不是只能实例化一个Block RAM?
如果我要用16个这样的Block RAM,怎么办?地址是怎么确定的?
刚刚开始接触XILINX的东西,很多东西不明白,希望大家帮忙解答一下,谢谢啦
我也来说两句 查看全部回复

最新回复

  • beelzebub (2008-10-28 11:01:25)

    16个RAMB16级连?
    用高4bit地址做选择控制
  • scsunjia (2008-10-28 19:02:05)

    直接用ip核来配置,比较简单。
  • shaweikang1984 (2008-10-28 20:02:49)

    用那么多~~
  • nnnmao (2008-10-28 20:06:54)

    用IPCORE GENERATOR,确实比较简单呀~~~哈哈,谢谢大家啦~~
  • nnnmao (2008-10-30 10:14:21)

    如果不用IP CORE来做,指定用原语,怎么做?是自己定义高几位的地址,然后利用这些地址做片选信号吗?这样的话,还要写一个多路选择器,是不?
  • lovystory (2008-10-30 10:24:37)

    用原语直接搭建也一样,但是用IP core应该效果是一样的。
  • yss2008 (2008-10-30 10:37:51)

    正好看看,我也不明白
  • tanyulan (2008-10-30 14:10:44)

    可以用generate 语句生成
    例如你的RAM叫ram1的话
    ram1_generate:
    for i in 0 to 15 generate
    就可以生成16个相同的RAM了
  • nnnmao (2008-11-02 22:09:01)

    谢谢LS。
    不过我还是不太明白,这样我生成的16个RAM是独立的吧,地址线还是要自己写的?
  • nnnmao (2008-11-03 09:42:41)

    写了这么一段,不知道对不对,只是道语法检查是没错
             generate
             genvar i;
                            for(i=0;i<=15;i=i+1)
                                            begin: for_name
                                                            RAMB16_S9_S18 RX_RAM(
                                                            .DOA(),
                                                            .DOB(dob),
                                                            .DOPA(),
                                                            .DOPB(dopb),
                                                            .ADDRA(addra),
                                                            .ADDRB(addrb),
                                                            .CLKA(clk),
                                                            .CLKB(clk),
                                                            .DIA(datain),
                                                            .DIB(16'h0000),
                                                            .DIPA(pin),
                                                            .DIPB(2'b00),
                                                            .ENA(ena),
                                                            .ENB(enb),
                                                            .SSRA(1'b0),
                                                            .SSRB(1'b0),
                                                            .WEA(1'b1),
                                                            .WEB(1'b0)
                                                    );

                                            end
             endgenerate
    但是生成的是16个RAM吗?如果我要用16个中的某一个RAM,比如写一个MUX16,怎么调用每个RAM的输出?
  • nnnmao (2008-11-03 09:43:21)

    谢谢大家啦