FPGA A3P030构建双口RAM失败 应该怎么办??
想用周立功公司的A3P030(就是那个99元的开发板) 3万门 ,构造个双口RAM应该没问题吧?但是我用libero老是提示
不懂他所谓的This design has one or more instances of RAM4k9什么意思
望高手指点下!!!
另外希望有libero教程的能共享下,谢谢,那软件用的很郁闷,但别的又不支持... 怎么传不上图片呢???
只能手写我的错误提示:
Error:CMP600:This design has one or more instances of RAM4k9 macro
which is not supported for the device in use
难道这款太垃圾了?? 这个芯片支持双口RAM吗? 如何获知它支不支持?他的用户手册上也没有提啊 This design has one or more instances of RAM4k9
估计没有RAM4K9这个模块。 AFS 600的可以开双口RAM的 应该是你的器件不支持,看下出错的help。。。。
ACTEL的开发平台真麻烦。。 回复四楼:
“没有RAM4K9这个模块”什么意思?
我是用他的SmartGen即catalog一栏中设置的,怎么改变RAM4K9这个模块??
不是很懂,感谢指教! 也就是你这个器件比较烂,没有RAM4K9这个模块,也就是说你不能用RAM4K9这个模块来做双口RAM了,不过还是可以用逻辑资源来做双口ram的。 回复六楼:
libero的错误不能定位,晕......它只是提示出错,但什么错误它不提示,对错误不能定位......
另外请教下,推荐款FPGA,性价比比较高的,基本性能:能构造2K的RAM,速度较高48M以上吧 用逻辑资源来做双口ram的?
刚刚接触FPGA,很多还是不懂。所谓的使用逻辑资源是否是自己构造?能给个例子借鉴下否? module simple_dual_port_ram_single_clock
#(parameter DATA_WIDTH=8, ADDR_WIDTH=6)
(
input [(DATA_WIDTH-1):0] data,
input [(ADDR_WIDTH-1):0] read_addr, write_addr,
input we, clk,
output reg [(DATA_WIDTH-1):0] q
);
// Declare the RAM variable
reg ram;
always @ (posedge clk)
begin
// Write
if (we)
ram <= data;
// Read (if read_addr == write_addr, return OLD data). To return
// NEW data, use = (blocking write) rather than <= (non-blocking write)
// in the write assignment. NOTE: NEW data may require extra bypass
// logic around the RAM.
q <= ram;
end
endmodule ibrary ieee;
use ieee.std_logic_1164.all;
entity simple_dual_port_ram_single_clock is
generic
(
DATA_WIDTH : natural := 8;
ADDR_WIDTH : natural := 6
);
port
(
clk : in std_logic;
raddr : in natural range 0 to 2**ADDR_WIDTH - 1;
waddr : in natural range 0 to 2**ADDR_WIDTH - 1;
data : in std_logic_vector((DATA_WIDTH-1) downto 0);
we : in std_logic := '1';
q : out std_logic_vector((DATA_WIDTH -1) downto 0)
);
end simple_dual_port_ram_single_clock;
architecture rtl of simple_dual_port_ram_single_clock is
-- Build a 2-D array type for the RAM
subtype word_t is std_logic_vector((DATA_WIDTH-1) downto 0);
type memory_t is array(2**ADDR_WIDTH-1 downto 0) of word_t;
-- Declare the RAM signal.
signal ram : memory_t;
begin
process(clk)
begin
if(rising_edge(clk)) then
if(we = '1') then
ram(waddr) <= data;
end if;
-- On a read during a write to the same address, the read will
-- return the OLD data at the address
q <= ram(raddr);
end if;
end process;
end rtl; 谢了,我试一把! A3P030的资源和定位都跟EPM240差不多,没有集成RAM模块的吧 牛人,啥都会 TMS320C6713DSPEMIF接口与FPGA双口RAM接口设计ourdev_716805ILZU77.pdf(文件大小:248K) (原文件名:TMS320C6713DSPEMIF接口与FPGA双口RAM接口设计.pdf)
页:
[1]