- 注册时间
- 2012-11-7
- 最后登录
- 2020-4-8
- 阅读权限
- 100
- 积分
- 10
- 精华
- 0
- 帖子
- 1775
  
|
欢迎来到九江论坛网--江西九江市生活交流社区!
请记住我们的网址 www.ganzw.com
先把代码貼出来,一段很簡单的代码
module asyn_ram
#(parameter DWIDTH=4,//data width
AWIDTH=10)//address width
(
input wr_clk,
input[DWIDTH-1:0] wr_data,
input wr_en,
input[AWIDTH-1:0] wr_addr,
input rd_clk,
output [DWIDTH-1:0] rd_data,
input rd_en,
input[AWIDTH-1:0] rd_addr
);
reg[DWIDTH-1:0] rw_mem [2**AWIDTH-1:0];//define the memory
reg[AWIDTH-1:0] raddr;
always@(posedge wr_clk )
begin
if(wr_en) begin
rw_mem[wr_addr]<=wr_data;
end
end
always@(posedge rd_clk)
begin
if(rd_en) begin
raddr<=rd_addr;
end
end
assign rd_data=rw_mem[raddr];
endmodule
复制代码
在quartus中综合后的RTL视图是这样的:
这个和我的逻辑对不上呢,读时钟不是驱动数据的输出的
在technology map viewer中是这样的
这个是在FPGA中实际生成的,应该是对的,可是RTL为什么是错的呢?有朋友知道原因吗?
|
|