打印

ModelSim-Altera仿真时出现的问题。

[复制链接]
2033|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
swfc_qinmm|  楼主 | 2011-3-16 22:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 swfc_qinmm 于 2011-3-16 22:14 编辑

今天再做一个BCD码转GRAY码的实验时,用ModelSim-Altera进行门级仿真时,出现了如下图所示的现象:
下载 (44.77 KB)
2011-3-16 21:41


下载 (44.48 KB)
2011-3-16 21:41


一:想请教大家图中红色标记类似于“毛刺”(不知道这样叫合不合适)的东东是怎么产生的?是不是我的逻辑设计有误?如何解决该问题呢?
二:我在仿真时软件还出现了warning,不知道该如何解决,麻烦大家给解释一下。
下载 (33.16 KB)
2011-3-16 21:41


谢谢大家了!
**********************************代码*********************************
附上代码:
`timescale 1ns / 1ps
module  BCD2GRAY( SysClk, SysRst_n, BCD, GRAY );
parameter WIDTH = 4;
input    SysClk, SysRst_n;
input [WIDTH-1:0] BCD;
output [WIDTH-1:0] GRAY;
assign GRAY = (BCD >> 1) ^ BCD;
endmodule
*******************************激励文件*********************************
激励:
`timescale  1ns / 1ps
module BCD2GRAY_TEST();
parameter WIDTH = 4;
reg     SysClk, SysRst_n;
reg  [WIDTH-1:0] BCD;
wire [WIDTH-1:0] GRAY;
initial
begin
SysClk = 1'b1;
forever
  #25 SysClk = ~SysClk;
end
initial
begin
SysRst_n = 1'b1;
#50 SysRst_n = 1'b0;
#150 SysRst_n = 1'b1;
#1000000;
$stop;
end
reg  [WIDTH-1:0] Cnt;
always @ ( posedge SysClk )
begin
BCD = {$random} % 15;   //产生输入数据
end
BCD2GRAY BCD2GRAY_INST(
      .SysClk(SysClk),
      .SysRst_n(SysRst_n),
      .BCD(BCD),
      .GRAY(GRAY)
      );
endmodule

相关帖子

沙发
swfc_qinmm|  楼主 | 2011-3-16 22:11 | 只看该作者
1# swfc_qinmm
用的是Altera的板子,发到这个版块,希望大家别介意哦。谢谢了!
:handshake

使用特权

评论回复
板凳
atua| | 2011-3-17 09:12 | 只看该作者
因为你设计的是纯组合逻辑,所以会出现你看到的毛刺,用时钟打一下就可以了
wlf文件是用来保存仿真结果的,如果你不关心这个警告可以不理,否则还是仔细看看modelsim的手册吧

使用特权

评论回复
地板
dan_xb| | 2011-3-17 10:00 | 只看该作者
这个没事的,下一个周期采样的时候采的是好的

使用特权

评论回复
5
swfc_qinmm|  楼主 | 2011-3-17 10:05 | 只看该作者
本帖最后由 swfc_qinmm 于 2011-3-17 10:28 编辑

3# atua
谢谢您的回复!您说的用时钟打一下是什么意思?是不是D触发器?我也经常看到有些资料提到“用时钟打一下”,不知什么意思,能否给个例子?:handshake
第二个问题知道怎么解决了:右键选中message,点击View Verbose Message即可。

使用特权

评论回复
6
swfc_qinmm|  楼主 | 2011-3-17 10:29 | 只看该作者
4# dan_xb
没事?不会吧,按照上面的hdl描述,结果有些不对哦。

使用特权

评论回复
7
atua| | 2011-3-18 08:42 | 只看该作者
就是把组合逻辑的输出经过D触发器用时钟进行采样的意思,简单来讲,如果一个时钟节拍的周期大到足以避开那部分不稳定的状态区(毛刺),那么D触发器的输出就可以保证是确定值,这也是所谓同步设计的思想
至于逻辑功能是否正确,那就要看组合逻辑部分的设计是否正确了

使用特权

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

本版积分规则

3

主题

179

帖子

2

粉丝