微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 关于存储单元的操作请教

关于存储单元的操作请教

时间:10-02 整理:3721RD 点击:
在下面的代码中,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

复制代码

请问怎么修改这个代码呢?求大神帮忙啊

自己顶一个,求大神帮我。

你这个用的是二维数组,语法有问题。大概就下面这样写,没有测试。
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

3楼正解,比我的代码好啊

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top