打印
[Actel FPGA]

zlg《EDA实验与实践》中原代码编译出现错误

[复制链接]
2769|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
52mcu|  楼主 | 2008-1-17 22:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/* freqtest.v -8位十进制频率计顶层文件*/

......

//8位十进制模块:由8个十进制计数模块构成
cnt10 u1(.clock(freq_input),.rst(rst),.cin(1'b1), .cout(cout1),.dout(pre_freq[3:0]));
.....

上句编译时出现如下错误,如何解决?????
Error (10663): Verilog HDL Port Connection error at freqtest.v(64): output or inout port "dout" must be connected to a structural net expression

相关帖子

沙发
zlgactel| | 2008-1-18 12:23 | 只看该作者

答复

你好,请具体说明哪个实验例程下的哪个文件出错,方便我们为你解答

使用特权

评论回复
板凳
zlgactel| | 2008-1-18 13:10 | 只看该作者

程序问题

   你应该是使用我们的EDA实验箱吧?里面的程序都是经过验证的,除非是你自己修改了程序或自己写的程序可能会出现问题,对于1楼的问题,看下错误的描述有可能是dout的变量类型设置的不正确,你检查下该变量的类型,是wire、reg还是其他的,需要与你程序中使用时相对应。

使用特权

评论回复
地板
52mcu|  楼主 | 2008-1-18 18:38 | 只看该作者

该实验来自于《EDA实验与实践》

中的EDA基础实验,第102页 3.11节8位十进制频率计 代码在104,105页

reg[31:0]pre_freq; //脉冲计数寄存器

module cnt10(clock,rst,cin,cout,dout);//十进制计数器
input clock;//计数时钟
input cin;//进位输入
input rst;// 复位信号
output cout;//进位输出
output[3:0]dout;//计数输出
reg[3:0]counter; //寄存器

使用特权

评论回复
5
52mcu|  楼主 | 2008-1-22 23:48 | 只看该作者

问题这样解决了???


reg[31:0]pre_freq; //脉冲计数寄存器
把书中的以上原句改为:wire [31:0]pre_freq; 
再编译就可以了。

quartusII 帮助原文:

For example, you cannot connect an output or inout port to a constant or to a variable, e.g. a reg.

问题虽解决了,但还是很郁闷,这是经过测试的程序。我直接编译就不行,难道与编译环境有关?????

使用特权

评论回复
6
luole700| | 2008-1-23 23:27 | 只看该作者

不可能

输入和双向口不能声明为寄存器型,在1995 2001里面都是一样的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

157

主题

292

帖子

0

粉丝