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


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





版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

verilog HDL中wire和reg的区别

wire表示直通,即输入有变化,输出马上无条件地反映(如与、非门的简单连接)。 reg表示一定要有触发,输出才会反映输入的状态。 reg相当于存储单元,wire相当于物理连线。reg表...

Verilog HDL宏定义define

HDL宏定义define 宏定义 `define   用一个指定的标识符(即名字)来代表一个字符串,它的一般形式为:   `define 标识符(宏名) 字符串(宏内容)   如:`...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

关于verilog HDL中的竞争问题(对变量的多重驱动)的笔记

多个驱动源问题:         当一个变量有两个以上的赋值源时,不论其赋值源在同一个always 块还是在不同的always块均称该变量存在多驱动源。如果多个驱动源对同一变量赋值发生在同一时刻,并...

【连载】【FPGA黑金开发板】Verilog HDL那些事儿--命令式的仿顺序操作(十四)

声明:本文转载于http://www.cnblogs.com/kingst,版权归akuei2及黑金动力社区(http://www.heijin.org)共同所有。 4.3 命令式的仿顺序操作什么是 ...

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

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

ALTERA DE2 之 verilog HDL 学习笔记01 程序的并行

最近刚开始学习verilog HDL语言,正好手上有从学长那里借到的一块ALTERA DE2 的FPGA开发板。趁着假期先学习学习。 由于有一些C语言基础,所以在看verilog HDL 语法时看得很...

实现FPGA Verilog HDL与NIOS II的通信数据交换——利用AVALON总线

平时用FPGA基本都是全程用Verilog HDL编程,当遇到液晶的时候,发现Verilog的还不如C语言来的方便,但是用NIOS来编写的时候,实现NIOS与Verilog的通信又是一个问题,今天用了...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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