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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: nono2000

[求助] 请问 Verilog 高手语法与ModelSim 问题?

[复制链接]
 楼主| 发表于 2012-12-19 14:44:53 | 显示全部楼层
本帖最后由 nono2000 于 2012-12-19 14:46 编辑



所以不加 RST或是 c16默许值也没关系.但是我目前是c16  <= ~c16; 这个问题阿?
c16  <= ~c16 為什麼ModelSim 動不了,ISE 與 Quartus 实际动作都正常? ModelSim 也没说语法错误阿?

发表于 2012-12-19 15:01:37 | 显示全部楼层
回复 11# nono2000
实际中上电的时候总有个固定值。
仿真时必须要有初始条件,否则结果未知,if else的写法隐藏着初始化条件,否则加复位信号吧。
 楼主| 发表于 2012-12-19 15:56:21 | 显示全部楼层


回复  nono2000
实际中上电的时候总有个固定值。
仿真时必须要有初始条件,否则结果未知,if else的写法 ...
chen.terry 发表于 2012-12-19 15:01



这样的语法 ModelSim 也不行?
always @(posedge CLK)                                                                  
begin                                                                                    
  c33[0]   <= (c33[1:0]==2'b00);                                                         
  c33[2:1] <= c33[1:0];                                                                  
end
发表于 2012-12-19 20:51:16 | 显示全部楼层
多看点基本语法书挺好
 楼主| 发表于 2012-12-20 03:15:39 | 显示全部楼层


多看点基本语法书挺好
cg_1842446741 发表于 2012-12-19 20:51



目前是 Verilog 版本问题,以前的基本语法不可以,现在已经改了.
发表于 2012-12-20 09:14:23 | 显示全部楼层


这样的语法 ModelSim 也不行?
always @(posedge CLK)                                               ...
nono2000 发表于 2012-12-19 15:56




    大哥,verilog描述的是硬件,别用软件方法写代码
发表于 2012-12-20 09:26:29 | 显示全部楼层
1. module中把C16声明为reg类型的。
2. testbench中给C16赋初值:
initial                                                
begin                                                  
    C16 = 0;
end
发表于 2012-12-20 10:03:53 | 显示全部楼层


但是为什么我改成这样ModelSim就可以?C16 也不用给任何值?
  if (c16 == 1'b1)
      c16
nono2000 发表于 2012-12-19 14:21




    这正说明你在modelsim中没有为c16赋初值。c16初值不定时,条件(c16 == 1'b1)不成立,c16<=1'b0语句执行了,以后c16就有确定值了。但是c16<=~c16语句永远不会产生确定的值。软件设计语言C/C++中的变量的某位,非0即1。但是HDL中有0、1、x、z。
 楼主| 发表于 2012-12-20 13:22:27 | 显示全部楼层


但是c16<=~c16语句永远不会产生确定的值。软件设计语言C/C++中的变量的某位,非0即1。但是HDL中有0、1、x、z。
加油99 发表于 2012-12-20 10:03



所以ModelSim仿真与实际是不一样的,实际 c16<=~c16 只有"0"与"1"状态,不会有 x`z.状态.
那么ModelSim仿真软体就不准了.
发表于 2012-12-20 13:40:13 | 显示全部楼层


所以ModelSim仿真与实际是不一样的,实际 c16
nono2000 发表于 2012-12-20 13:22




    你说的不正确。ModelSim是为了保证你设计的代码的健全,设计可预知。电子电路中有些电平处于临界状态,有时是0,有时是1。例如:某系统(器件)0~1.7v为低电平‘0’,2.5~5v为高电平'1'。当你输入2.0v电压时,就是临界状态。你这次开机是0,下次开机就可能是1。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-12-23 05:54 , Processed in 0.037011 second(s), 6 queries , Gzip On, Redis On.

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