完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
设置一个读指针,一个写指针,一个读信号,一个写信号。
然后来写信号时,把数据存入写指针对应的地址。然后写指针加1,达到地址极限后复位指针地址 如果来读信号,就把读指针对应的地址的数据取出来,然后读指针+1,达到地址极限后复位指针地址 中间自己加一个空信号满信号的判断就可以了。
最佳答案
|
|
|
|
asuyyy 发表于 2018-6-13 13:52 谢谢,指针的话是只要用parameter定义一个地址大小,然后就可以了,还是要结合其他一些东西啊? |
|
|
|
我的代码大概是这样的。
Write_en_posedge是写完了一次数据的上升沿。 每次写完就+1,因为我的Sram地址是0~255999, 所以每次写到255999的时候就会复位到0, 如果你是要取500~2000的地址存东西。 就把复位的 w_addr[17:0] = 18'b00_0000_0000_0000_0000 改成 w_addr[17:0] = 18'd500 好了。同时计算到2000的时候复位 直接套用我的代码应该是不适合你的。 我只是提供一个思路给你。 always@(posedge Sysclk or negedge Rst_n) if(!Rst_n) w_addr = 19'b000_0000_0000_0000_0000; else if(Write_en_posedge && w_addr[17:0] == 18'd255999)begin w_addr[17:0] = 18'b00_0000_0000_0000_0000; w_addr[18] = ~w_addr[18]; end else if(Write_en_posedge) w_addr = w_addr + 1'b1; |
|
|
|
好的好的,非常感谢 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
834 浏览 0 评论
371 浏览 0 评论
1094 浏览 0 评论
382 浏览 0 评论
FPGA零基础学习系列精选:半导体存储器和可编程逻辑器件简介
1018 浏览 0 评论
1454 浏览 36 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-4-24 23:15 , Processed in 0.334353 second(s), Total 41, Slave 35 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号