原创 Xilinx FPGA 学习笔记(3)

2017-10-22 17:00 1162 10 10 分类: FPGA/CPLD


一、设计简单的计数器

1、计数器源代码

`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company:
// Engineer:
//
// Create Date: 2017/10/22 15:16:21
// Design Name:
// Module Name: counter
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////


module counter(
input reset,
input clk,
output [3:0] out
);
reg [3:0] out;

always @(posedge clk)begin
if(reset)
out <= 0;
else
out <= out + 1;
end

endmodule

RTL模型


RTL技术原理图

仿真源代码

`timescale 1ns / 1ps  //1ns的仿真刻度,1ps的仿真精度
//////////////////////////////////////////////////////////////////////////////////
// Company:
// Engineer:
//
// Create Date: 2017/10/22 15:28:44
// Design Name:
// Module Name: simu
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////


module simu(

);

reg reset;
reg clk;

wire [3:0] out;

parameter DELAY = 100;

counter inst(
.reset(reset),
.clk(clk),
.out(out)
);

always #(DELAY / 2) clk  = ~clk;

initial begin
clk = 0;   //输入信号必须初始化
reset = 0;
#DELAY reset = 1;
#DELAY reset = 0;
#(DELAY*20) $finish;

end

initial $monitor($time,,,"clk = %d  reset = %d  out = %d",clk,reset,out);

endmodule


仿真波形输出


打印输出结果





文章评论0条评论)

登录后参与讨论
我要评论
0
10
关闭 站长推荐上一条 /5 下一条