verilog HDL 仿真错误

原创 2015年11月19日 14:43:16

学习xilinx FPGA,自己学习编写一个计数器的verilog HDL的程序,在仿真激励上编写始终不过,总报语法错误,郁闷啊。下面贴出这个程序,以便自己今后记住:

module cnt_4bit(q, clear,clock
    );
input  clear,clock;
output[3:0]  q;
 
reg[3:0]  q;
 
 
 
always @(posedge clear or negedge clock)
begin
if(clear)
q = 4'd0;
else
q = (q + 1) % 16;
end
 


endmodule


test bench的激励程序:

`timescale 1ns / 1ps


////////////////////////////////////////////////////////////////////////////////
// Company: 
// Engineer:
//
// Create Date:   14:00:26 11/19/2015
// Design Name:   cnt_4bit
// Module Name:   E:/xilinx/study/project2/mux2_1/tb_cnt_4.v
// Project Name:  mux2_1
// Target Device:  
// Tool versions:  
// Description: 
//
// Verilog Test Fixture created by ISE for module: cnt_4bit
//
// Dependencies:
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
////////////////////////////////////////////////////////////////////////////////


module tb_cnt_4;


// Inputs
reg clear;
reg clock;


// Outputs
wire [3:0] q;


// Instantiate the Unit Under Test (UUT)
cnt_4bit uut (
.q(q), 
.clear(clear), 
.clock(clock)
);


initial begin
// Initialize Inputs
clear = 0;
clock = 0;


// Wait 100 ns for global reset to finish
//#100;
        
// Add stimulus here

//clock = 1'b0;

always 
#5 clock = ~clock;


begin
clear = 1'b1;
#15   clear = 1'b0;
#180 clear = 1'b1;
#10 clear = 1'b0;
#20 $finish;
end



end
initial 
$monitor($time,"output q = %d",q);
      
endmodule

书写完成就报错误:

ERROR:HDLCompiler:806 - "E:/xilinx/study/project2/mux2_1/tb_cnt_4.v" Line 53: Syntax error near "always".

找了半天没找出错误原因。郁闷!!


苦解:不知什么原因,配对begin....end修订激励程序

module tb_cnt;


// Inputs
reg clear;
reg clock;


// Outputs
wire [3:0] q;


// Instantiate the Unit Under Test (UUT)
cnt_4 uut (
.q(q), 
.clear(clear), 
.clock(clock)
);


initial begin
// Initialize Inputs
clear = 0;
clock = 0;


// Wait 100 ns for global reset to finish
//#100;
        
// Add stimulus here
//clock = 1'b0;
end

always #5 clock = ~clock;

initial begin
clear = 1'b0;
#15   clear = 1'b0;
#180 clear = 1'b1;
#10 clear = 1'b0;
#20 $finish;
end
initial 
$monitor($time,"output q = %d",q);
      
endmodule


终于迎来了光明,第一例程序终于活了。仿真结果如图。





Linux下Verilog仿真过程(二)

上一篇
  • cxc19890214
  • cxc19890214
  • 2014年11月02日 17:02
  • 1404

Linux下Verilog仿真过程(一)

1》编写测试模块fa_seq.v
  • cxc19890214
  • cxc19890214
  • 2014年11月02日 15:35
  • 2505

verilog之四位全加器的编译及仿真(用开源免费的软件——iverilog+GTKWave)

原文地址: http://www.cnblogs.com/CodeWorkerLiMing/archive/2012/04/18/2455945.html 四位全加器的verilog的代码比...
  • Reg_chen
  • Reg_chen
  • 2015年05月20日 20:28
  • 2746

modelsim仿真verilog HDL 简单命令使用

quit -f #强制退出modelsim quit -sim #退出仿真器 vlog exer1130/dl.v #编译verilog hdl文件exer1130/dl.v 到wo...
  • s_a_n_
  • s_a_n_
  • 2012年11月30日 18:22
  • 1606

verilog hdl vhdl实用例子100个 quartus 2 仿真 源程序

  • 2012年03月25日 12:04
  • 6.95MB
  • 下载

同步复位十位计数器verilog HDL语言程序以及仿真文件下载

  • 2009年03月29日 22:32
  • 167KB
  • 下载

Verilog HDL仿真之仿真数据的生成

  • 2012年08月10日 21:38
  • 25KB
  • 下载

4位超前进位加法器-Verilog HDL

Verilog HDL 简介Verilog HDL是目前设计界通常采用的一种硬件描述语言,被广泛的应用在数字ASIC和可编程逻辑器件的设计开发工作。其按照一定的规则和风格编写代码,可以从系统级、电路级...
  • Xminyang
  • Xminyang
  • 2016年10月19日 12:11
  • 3108

【FPGA黑金开发板】Verilog HDL那些事儿--串口模块(十一)

声明:本文为转载作品,版权归akuei2及黑金动力社区(http://www.heijin.org)共同所有,如需转载,请注明出处http://www.cnblogs.com/kingst/ 关于F...
  • huangshizeng
  • huangshizeng
  • 2012年05月31日 17:23
  • 19436

常用Verilog HDL程序

1.按键软件去抖动 input[KEY_WIDTH-1:0] key_in; //外部按键输入 output[KEY_WIDTH-1:0]key_out; //按键消抖输出 reg[KEY_WI...
  • oLinXi1234567
  • oLinXi1234567
  • 2014年09月25日 14:40
  • 1437
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:verilog HDL 仿真错误
举报原因:
原因补充:

(最多只允许输入30个字)