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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 7314|回复: 8

[求助] 关于一段实例引用的代码错误问题

[复制链接]
发表于 2010-3-14 22:37:50 | 显示全部楼层 |阅读模式

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

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

x
原始资料是参考“华为VERILOG-HDL电路设计指导” PDF文件里最后个同步FIFO的例子 但是自己编写时实例引用报错“Error (10153): Verilog HDL Function Call or Function Declaration error at fifo.v(28): identifier "read_allow" is not a function” 这样一堆 貌似引用RAM出现错误啦
往指教下哪里语法出现错误了 谢谢了啊!!

顶层模块定义的是:
module fifo(fifo_rst,clock,read_en,write_en,read_data,write_data,full,empty,fcounter);
parameter               data_width = 8;
parameter               addr_width = 9;
input                   fifo_rst;
input                   clock;
input                   read_en;
input                   write_en;
input  [data_width-1:0] write_data;
output [data_width-1:0] read_data;
output [addr_width-1:0] fcounter;
output                  full;
output                  empty;
reg    [data_width-1:0] read_data;
reg                     full;
reg                     empty;
reg    [addr_width-1:0] fcounter;
reg    [addr_width-1:0] read_addr;
reg    [addr_width-1:0] write_addr;
wire   read_allow =(read_en&&!empty);
wire   write_allow =(write_en&&!full);
dualram u_ram(read_clock(clock),
              write_clock(clock),
              read_allow(read_allow),
              write_allow(write_allow),
              read_addr(read_addr),
              write_addr(write_addr),
              read_data(read_data),
              write_data(write_data),
              );
............................................后面是FIFO的描述

RAM定义的是:
module dualram(read_clock,write_clock,read_allow,write_allow,read_addr,write_addr,read_data,write_data);
parameter dly =1;
parameter ram_width  =8;
parameter addr_width =9;
parameter ram_depth  =512;
input                    read_clock;
input                    write_clock;
input                    read_allow;
input                    write_allow;
input  [ram_width  -1:0] write_data;
input  [addr_width -1:0] read_addr;
input  [addr_width -1:0] write_addr;
output [ram_width  -1:0] read_data;
reg    [ram_width  -1:0] read_data;
reg    [ram_width  -1:0] mem [ram_depth -1:0];
发表于 2010-3-15 22:36:56 | 显示全部楼层
找本基本的verilog语法书看下,调用模块时,是怎么样调用的.
发表于 2010-3-16 09:07:12 | 显示全部楼层
模块例化的时候语法错误,楼主既然已经知道了可能的错误,就自己先试试看了。
发表于 2010-3-16 10:55:30 | 显示全部楼层
例化的时候点去哪了?
发表于 2010-3-16 15:11:57 | 显示全部楼层
wire   read_allow =(read_en&&!empty);

把这个分两步实现试试,先定义,然后再进行赋值。
发表于 2010-3-16 15:14:27 | 显示全部楼层
4楼说的对,应该是dualram u_ram(.read_clock(clock),
              .write_clock(clock),
              .read_allow(read_allow),
              .write_allow(write_allow),
             . read_addr(read_addr),
             . write_addr(write_addr),
             . read_data(read_data),
             . write_data(write_data),
              );
 楼主| 发表于 2010-3-17 11:18:53 | 显示全部楼层
哦哦哦~~主程序的点我到查书时注意到了也用个小程序测试了下也不行 怪了 原来子模块没注意到哦 惭愧惭愧了 谢谢了啊
发表于 2010-3-22 21:17:16 | 显示全部楼层
顶一下!
发表于 2014-8-21 09:59:31 | 显示全部楼层
解决了,多谢各位
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

X

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

GMT+8, 2025-6-23 13:47 , Processed in 0.026931 second(s), 11 queries , Gzip On, MemCached On.

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