在线咨询 切换到宽版
eetop公众号 创芯大讲堂 创芯人才网

 找回密码
 注册

手机号码,快捷登录

手机号码,快捷登录

搜全文
查看: 3516|回复: 8

[求助] verilog对寄存器组写操作出现问题

[复制链接]
发表于 2015-5-4 11:09:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×
reg [7:0] mem[63:0] //64个寄存器构成寄存器组,里面包含了2个异步FIFO下面我对这个寄存器组进行写操作
例如
always @(negedge resetn or posedge tx_wclk) //这是对TX_FIFO所对应的寄存器组进行写操作
    begin
        if(!resetn)
        begin
            for(i=0;i<63;i=i+1)
            mem <= 8'b0;
        end
        else if(tx_wreq && !tx_wfull)
        mem[tx_waddr] <= tx_wdata;
    end

always @(posedge rx_wclk or negedge resetn) //这是对RX_FIFO所对应的寄存器组进行写操作
    begin
        if(!resetn)
        begin
            for(i=0;i<63;i=i+1)
            mem <= 8'b0;
        end
        else if(rx_wreq&&!rx_wfull)
        mem[rx_waddr] <= rx_wdata;
    end


这里我能确保tx_waddr和rx_waddr不会指向相同的地址单元,但编译时显示对mem多驱动赋值,我想把这两块合成一块来避免这个错误,但试了很多都无法解决,因为TX_FIFO和RX_FIFO是两个独立的模块,tx_clk和rx_clk可能同时跳变,即可能同时对2个FIFO进行写操作,这里不知道该怎么办了,求助~~
 楼主| 发表于 2015-5-5 11:12:24 | 显示全部楼层
回复 2# goswami

我这里的想法是先创建一个寄存器组,比如说深度64的,我自己通过外部配置,想要把0~28作为RX_FIFO,29~63作为TX_FIFO(打个比方),也就是说我的RX_FIFO的写指针和读指针只会在0~28间变化,而TX_FIFO的读写指针只会在29~63间变化,这样看上去就是2个FIFO了,感觉应该不会存在所说的一个FIFO两个读写口的问题,请教如何解决?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-5-5 14:37:01 | 显示全部楼层
回复 4# goswami

我的目的是为了实现这个表所示的功能,通过对spi_thr(SPI端口)的编写来动态改变RX_FIFO和TX_FIFO的深度,因为这两个FIFO是需要做成ASIC的,所以不能做成固定的2个FIFO,就想通过分别对这2个FIFO的读写指针的范围进行控制来实现,就是这里想不明白,请前辈看下
   
  

Spi_thr

  
  

RX

  
  

TX

  
  

0000

  
  

4

  
  

60

  
  

0001

  
  

8

  
  

56

  
  

0010

  
  

12

  
  

52

  
  

0011

  
  

16

  
  

48

  
  

0100

  
  

20

  
  

44

  
  

0101

  
  

24

  
  

40

  
  

0110

  
  

28

  
  

36

  
  

0111

  
  

32

  
  

32

  
  

1000

  
  

36

  
  

28

  
  

1001

  
  

40

  
  

24

  
  

1010

  
  

44

  
  

20

  
  

1011

  
  

48

  
  

16

  
  

1100

  
  

52

  
  

12

  
  

1101

  
  

56

  
  

8

  
  

1110

  
  

60

  
  

4

  
  

1111

  
  

64

  
  

0

  
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条


手机版| 小黑屋| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-9-15 07:25 , Processed in 0.018164 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表