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

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1814|回复: 3

[求助] 关于存储单元的操作请教

[复制链接]
发表于 2013-12-27 10:07:45 | 显示全部楼层 |阅读模式

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

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

x
在下面的代码中,men声明如下:reg[7:0]men[255:0];我想把men左移,但是下面的代码是错误的



  1. always@(posedge clk)
  2.         if(rable==1'b1 && wable==1'b0)
  3.                 begin
  4.                 men[0] <= din;
  5.                 men <= {men[254:0],men[0]};
  6.                 Addr <= Addr + 1'b1;
  7.                 end
  8.                 else if(rable==1'b0 && wable==1'b1)
  9.                         begin
  10.                         isOut <= men[Addr];
  11.                         Addr <= Addr - 1'b1;
  12.                         end
  13.                         else if(rable==1'b1&&wable==1'b1)
  14.                                 begin
  15.                                 isOut <= men[Addr];
  16.                                 men[0] <= din;
  17.                                 men[255:0] <= {men[254:0],men[0]};
  18.                                 end


复制代码
请问怎么修改这个代码呢?求大神帮忙啊
 楼主| 发表于 2013-12-27 15:53:24 | 显示全部楼层
自己顶一个,求大神帮我。。。。
发表于 2013-12-27 18:24:22 | 显示全部楼层
你这个用的是二维数组,语法有问题。大概就下面这样写,没有测试。

module test (
                        clk,
                        rable,
                        wable,
                        din,
                        isOut
                );

input clk;
input rable;
input wable;
input din;
output isOut;

reg isOut;
reg[7:0]men[255:0];
reg[255:0]Addr = 0;
always@(posedge clk) begin
        if(rable==1'b1 && wable==1'b0)begin
                                men[0][0] <= din;
                                men[0][255:0] <= {men[0][254:0],men[0][0]};
                                Addr <= Addr + 1'b1;
                end
                else if(rable==1'b0 && wable==1'b1)begin
                                isOut <= men[0][Addr];
                                Addr <= Addr - 1'b1;
                end
                else if(rable==1'b1&&wable==1'b1)begin
                                isOut <= men[0][Addr];
                                men[0][0] <= din;
                                men[0][255:0] <= {men[0][254:0],men[0][0]};
                end
        end
endmodule
发表于 2013-12-28 09:41:16 | 显示全部楼层
3楼正解,比我的代码好啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-11-24 17:27 , Processed in 0.020637 second(s), 8 queries , Gzip On, Redis On.

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