集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
楼主: VVC

初学verilog,碰到问题不知道怎样解答

[复制链接]
ATA 发表于 2010-6-28 12:53:08 | 显示全部楼层
这个问题我也遇到过,我用的ISE6.3编译的,是编译没有错误,但是防真的时候出现警告,不能出现波形,感觉程序也是没有问题 的,只要修改一下testbench就可以了。<br>
initial //<br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;begin<br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;a=0;<br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;b=0;<br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;#100 a=0; b=1;<br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;#100 a=1; b=1;<br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;#100 a=1; b=0;<br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;#100 $stop; //&amp;Iuml;&amp;micro;&amp;Iacute;&amp;sup3;&amp;Egrave;&amp;Icirc;&amp;Icirc;&amp;ntilde;&amp;pound;&amp;not;&amp;Ocirc;&amp;Yacute;&amp;Iacute;&amp;pound;&middot;&amp;Acirc;&amp;Otilde;&amp;aelig;&amp;Ograve;&amp;Ocirc;&plusmn;&amp;atilde;&amp;sup1;&amp;Ucirc;&amp;sup2;&igrave;&middot;&amp;Acirc;&amp;Otilde;&amp;aelig;&amp;sup2;&uml;&amp;ETH;&amp;Icirc;&amp;iexcl;&amp;pound;<br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;end<br>
改成:<br>
initial&nbsp; &nbsp;&nbsp;&nbsp;begin<br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;a=0;<br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;b=0;<br>
end <br>
<br>
initial begin<br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;#100 a=0;<br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;b=1;<br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;#100 a=1; <br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;b=1;<br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;#100 a=1; <br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;b=0;<br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;#100 $stop; <br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;end<br>
endmodule<br>
感觉好象没有任何变化,但是这样稍作改动以后就可以防真了。<br>
我就是这样弄的,因为也是刚刚学习,和你一样的例子。<br>
具体是为什么我也不是很清楚了。<br>
就是在a 和b初值的时候要注意以下,就好了。
FFT 发表于 2010-6-28 13:21:33 | 显示全部楼层
如果把两个文件放到一个目录下的话,include那句就可以不要.另外我看你的注释有中文吧.中文注释一般都会引起一些奇怪的问题. 你试一下.
CHA 发表于 2010-6-28 14:20:42 | 显示全部楼层
建议改用modesim。
FFT 发表于 2010-6-28 16:11:08 | 显示全部楼层
我没有加`include "./compare.v" 这句话,在Modelsim下仿真没有问题
 楼主| VVC 发表于 2010-6-28 16:54:45 | 显示全部楼层
这个问题很简单啊,你把两个文件放在同一个目录下,其中一个又include另一个,编译的时候compare相当于编译了两次,把include去掉就没问题了
longt 发表于 2010-6-28 16:57:24 | 显示全部楼层
1.如果把compare.v and comparetest.v写在一个文件里,不用写`include //写了就出现楼主的错误了,去掉就通过了<br>
2.若是分成两个文件来写,我做的实验:把compare.v文件名起为b(即在workspace中显示为b.v),把comparetset.v起名为c(即显示为c.v),当写`include "./compare.v"就出现了** Error: D:/prictice/c.v(2): Cannot open `include file "./compare.v".这样的错误,若改成`include "./b.v"就通过了。
VVIC 发表于 2010-6-28 17:32:46 | 显示全部楼层
Verilog是一个泛性的HDL,其描述不仅仅限于电路层次,还可进行行为级描述,仿真测试环境构建和运行及结果显示控制也可由Verilog语言描述,也不仅仅适用于QuartusII环境。所述例子前一模块是电路主体模块,后一模块是测试仿真的描述。在QuartusII环境中,调用第三方工具(如Modelsim)时,后一模块才能用到,如果仅使用QuartusII集成环境,可以只用前一模块建立工程,然后按照第二模块的时序要求,建立WAVEFORM文件进行functional 或timming仿真即可。
CHANG 发表于 2010-6-28 17:51:49 | 显示全部楼层
你肯定在current dictory下有个叫compare.v的东西,那句话是说在当前目录有这个东西
usb 发表于 2010-6-28 18:48:06 | 显示全部楼层
不知道是什么问题,我也是刚学的,不好意思啊~
 楼主| VVC 发表于 2010-6-28 20:15:44 | 显示全部楼层
我也做这个了,但是不能仿真。不知道为什么?
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

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

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2024-12-25 01:11 , Processed in 0.062195 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表