微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 一个奇怪的信号重定义问题

一个奇怪的信号重定义问题

时间:10-02 整理:3721RD 点击:
我用了40个Altera提供的双口RAM做了一个RAM组,在写入时用case语句给要写入的RAM赋值,但是编译时说'address2_a' already exists; must not be redefined as a named block,问题是我只定义了一个address2_a寄存器啊。
部分源代码是:
LineRam line2(
    address2_a,
    address2_b,
    clk,
    data2_a,
    data2_b,
    wren2_a,
    wren2_b,
    q2_a,
    q2_b);
其中地址数据读写允许是寄存器型,输出数据是线网型。
case(iaddress_a[9:5])
                    1:
                        begin
                            address1_a<=iaddress_a[4:0];
                            data1_a<=idata_a;
                            wren1_a<=1;
                           
                            address21_a<=iaddress_a[4:0];
                            data21_a<=idata_a;
                            wren21_a<=1;
                        end
                    2:
                        begin:
                            address2_a<=iaddress_a[4:0];
                            data2_a<=idata_a;
                            wren2_a<=1;
                            address22_a<=iaddress_a[4:0];
                            data22_a<=idata_a;
                            wren22_a<=1;
                        end
iaddress_a是模块的输入地址,高5位用来区别是哪一个RAM,低5位是要写入的地址。
谢谢各位。

检查一下模块例化的名称是否与所定义信号名称重名

终于发现问题了,begin后面多了个:,困扰了我一天。谢谢啊

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

网站地图

Top