vhdl如何定义数组?

2019-03-25 07:37发布

用RAM 的IP核进行读写操作,要用数组将写进ram的值存储下来,下面是代码,编译不通过,出现Error (10476): VHDL error at testRam.vhd(61): type of identifier "datain" does not agree with its usage as "integer" type是我的输入的数据和地址都应该换成整数输入么?

TYPE matrix_index is array (31 downto 0) of std_logic_vector(31 downto 0);

SIGNAL men_data: matrix_index;

begin
       
        process(clock,rst)
                begin
               
                if(clock='1'and clock'event) then
                        if(rst='1')then
                                count <=(others=>'0');
                        else
                                if wren='0'then
                                                count <= count +1;
                                end if;
                        end if;
                end if;

                if(clock='1'and clock'event) then
                        if(rst='1')then
                                datain<=(others=>'0');
                                address1<=(others=>'0');
                        else
                                if wren='1'then                                   --写有效
                               
                                        datain<=datain+1;
                                        address1<=address1+1;
                                        men_data(datain)<=datain;
                                else                        --读有效 读出某个地址上的数据
                                        address1<=men_data(count);
                                end if;
                        end if;
                end if;
        end process;


此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
5525
1楼-- · 2019-03-25 14:28
huangfujing
2楼-- · 2019-03-25 16:40
本帖最后由 huangfujing 于 2016-5-17 20:47 编辑
5525 发表于 2016-5-16 21:37
推荐参考
http://www.rfwireless-world.com/source-code/VHDL/read-write-RAM-vhdl-code.html大神,问一下,ram这个可以选取地址读出相对应的数据么?
5525
3楼-- · 2019-03-25 19:15
RAM必须能支持读数据,只能写不能读这个RAM没意义啊。

下面就是根据地址,选择数据输出
data_out <= ram1_1(conv_integer(r_add));

一周热门 更多>