完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
你好,
继续这条消息: http://forums.xilinx.com/t5/Digi ... or/m-p/383681#M3607 我要将数据矩阵存储在FPGA而不是LUT的块存储器中作为内存! 因为基于我编写的代码中的上述链接,它使用LUT作为内存而不是fpga的块内存。 所以它的容量很低.....我需要更多的空间来存储像素数据。 能否指导我如何在块存储器中写入和读取矩阵? 谢谢 |
|
相关推荐
12个回答
|
|
这是适用于128 * 128图像的正确BRAM:
pumpkin_BRAM your_instance_name(.clka(CLK_OUT2),//输入clka .wea(wea),//输入[0:0] wea .addra({2'b0,ram_trd,addr_test}),//输入[15:0] addra .dina(color_reg),//输入[23:0] dina .clkb(CLK_OUT2),//输入clkb .addrb({2'b0,bgnd_vcount [6:0],bgnd_hcount [6:0]}), // input [15:0] addrb .doutb(r1_test_dout)// output [23:0] doutb); 在原帖中查看解决方案 |
|
|
|
嗨,
你的图像/视频分辨率是多少? 你需要多少记忆? 如果空间不够,你的意思是所有的Luts都被占用了吗? 你使用的是哪种设备? 如果你通过corgen生成内存,你可以选择块内存,你尝试过但仍然不够吗? 问候, Vanitha。 -------------------------------------------------- -------------------------------------------请在发布前进行谷歌搜索, 您可能会找到相关信息。请留下帖子 - “接受为解决方案”,如果提供的信息有用且回复,请给予赞誉 |
|
|
|
感谢您的回复。
你的图像/视频分辨率是多少? 当我使用此命令在LUT中写入内存时:memory [adim-1:0] [bdim-1:0] 我要显示640 * 480分辨率的图像和LUT内存,我可以显示标准图像,大小不超过74 * 74。 这是基于LUT的内存代码,可以在屏幕上显示正确的图像: 总是@(posedge CLK_OUT2)开始记忆[addr_test] [ram_trd] = color_reg; // Led] end always @(posedge CLK_OUT2)// pclk begin r1_test_dout = memory [bgnd_hcount] [bgnd_vcount]; 结束 你需要多少记忆? 你使用的是哪种设备? 640 * 480 * 3 = 921600 我的设备是spartan-6 XC6SLX45,最大2,088 Kb块内存。 如果空间不够,你的意思是所有的Luts都被占用了吗? 图像128 * 128是的! 将使用超过128%的LUT。 另外,我没有使用chipcope IP core o reelase占用LUT的数量。 如果你通过corgen生成内存,你可以选择块内存,你尝试过但仍然不够吗? 是的,我做到了。 但它没有在屏幕上显示正确的图像。 这意味着它不算作矩阵。 在屏幕上,只有行增量和列的数量是常量,而它是不正确的。 我不知道应该如何处理块内存? 这是我写的块内存。 BRAM(.clka(CLK_OUT2),//输入clka .wea(wea),//输入[0:0] wea .addra({ram_trd,addr_test}),//输入[13:0] addra .dina(color_reg),//输入[23:0] dina。 clkb(CLK_OUT2),//输入clkb .addrb({bgnd_hcount,bgnd_vcount}),//输入[13:0] addrb .doutb(r1_test_dout)//输出[23:0] doutb); |
|
|
|
嗨,
如果您的屏幕分辨率为640X40,并且您有3种颜色,每种颜色需要8位 650X480 * 24 = 7200kb,但您的设备(Spartan-6 LX45T)只有401Kb(分布式RAM)+ 2088Kb(BRAM),所以我认为这还不够。 要么选择2088Kb的帧大小,要么选择DDR等外部存储器。 问候, Vanitha。 -------------------------------------------------- -------------------------------------------请在发布前进行谷歌搜索, 您可能会找到相关信息。请留下帖子 - “接受为解决方案”,如果提供的信息有用且回复,请给予赞誉 |
|
|
|
是的,对不起,我弄错了。
对于640 * 480,我必须使用DDR2,这是项目的下一步。 但现在我应该在fpga的块内存中保存大小为128 * 128的图像。 事实上,在第一步我应该将图像数据保存在块内存中,然后在下一步中将数据保存在DDR2中。 现在我的问题是关于块存储器中的写矩阵并且像矩阵一样读取它们。 |
|
|
|
嗨,
这可以通过地址映射来实现,例如你有128像素和128行BRAM配置了24位写入/读取数据。 内存将有14个地址线,你可以映射(7 downto 0)用于pxel寻址和(13 downto 8)用于行寻址 如果你必须访问(32,32)像素,那么你需要发出的地址是“0011111”& “0011111”。 希望这可以帮助 问候, Vanitha。 -------------------------------------------------- -------------------------------------------请在发布前进行谷歌搜索, 您可能会找到相关信息。请留下帖子 - “接受为解决方案”,如果提供的信息有用且回复,请给予赞誉 |
|
|
|
我已经完成了,你可以在我的第二篇文章中看到BRAM代码。
adr_test和ram_trd是水平和垂直线的计数器。 在屏幕上,我看到的图像就像你从左右两侧推动图像,图像从正方形变为线条,但颜色正确! |
|
|
|
好,我觉得你很清楚。
另外我认为已确认640X480无法存储在BRAM / Dist RAM中。 那么请您在这篇文章中详细说明您需要的其他信息,以便我们能够为您提供帮助。 问候, Vanitha。 -------------------------------------------------- -------------------------------------------请在发布前进行谷歌搜索, 您可能会找到相关信息。请留下帖子 - “接受为解决方案”,如果提供的信息有用且回复,请给予赞誉 |
|
|
|
是你的指导。
我需要在FPGA的块存储器中存储128 * 128的图像。 我用coregenerator来生成BlockRam,你可以在我的第二篇文章中看到BRAM。 这篇文章的目标:为什么它没有在屏幕上显示正确的图像? 它只显示垂直线。我认为问题是关于我对BRAM的处理方式,但我写的就是你写的东西。 真的我对这个问题感到困惑! |
|
|
|
问题已解决。
非常感谢您的指导。 这是BRAM的正确端口映射。 问题在于读取内存部分。 也是图像32 * 32。 BRAM(.clka(CLK_OUT2),//输入clka .wea(wea),//输入[0:0] wea .addra({4'b0,ram_trd,addr_test}),//输入[13:0] addra .dina(color_reg),//输入[23:0] dina .clkb(CLK_OUT2),//输入clkb .addrb({4'b0,bgnd_vcount [4:0],bgnd_hcount [4:0]}),/ / input [13:0] addrb .doutb(r1_test_dout)// output [23:0] doutb); |
|
|
|
嗨,
如果您在屏幕上看不到正确的图像,则可能是您的计时/时间或其他问题。 您可以在BRAM读取路径中插入一个chipcope并检查写入的数据是否正确读取。 在BRAM,Hsync和Vsyn生成后,您有哪些后续模块? 问候, Vanitha。 -------------------------------------------------- -------------------------------------------请在发布前进行谷歌搜索, 您可能会找到相关信息。请留下帖子 - “接受为解决方案”,如果提供的信息有用且回复,请给予赞誉 |
|
|
|
这是适用于128 * 128图像的正确BRAM:
pumpkin_BRAM your_instance_name(.clka(CLK_OUT2),//输入clka .wea(wea),//输入[0:0] wea .addra({2'b0,ram_trd,addr_test}),//输入[15:0] addra .dina(color_reg),//输入[23:0] dina .clkb(CLK_OUT2),//输入clkb .addrb({2'b0,bgnd_vcount [6:0],bgnd_hcount [6:0]}), // input [15:0] addrb .doutb(r1_test_dout)// output [23:0] doutb); |
|
|
|
只有小组成员才能发言,加入小组>>
2458 浏览 7 评论
2851 浏览 4 评论
Spartan 3-AN时钟和VHDL让ISE合成时出现错误该怎么办?
2313 浏览 9 评论
3399 浏览 0 评论
如何在RTL或xilinx spartan fpga的约束文件中插入1.56ns延迟缓冲区?
2492 浏览 15 评论
有输入,但是LVDS_25的FPGA内部接收不到数据,为什么?
1963浏览 1评论
请问vc707的电源线是如何连接的,我这边可能出现了缺失元件的情况导致无法供电
636浏览 1评论
求一块XILINX开发板KC705,VC707,KC105和KCU1500
494浏览 1评论
2041浏览 0评论
768浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-23 22:29 , Processed in 1.767033 second(s), Total 97, Slave 81 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号