ISE的使用详细步骤以及奇分频的实现

1.新建工程

 

图 1

图 2

图 3

图 4

2.添加源文件

图 5

图 6

图 7

3.编写源文件

图 8

4,编译工程

图 9

图  10

 图  11

图 12


图 13

图 14

图 15

图 16


图 17

图 18

图 19

图 20

图 20

图 22

图 23

图 24

图 25

图 26




`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company: hust
// Engineer: lidong
// 
// Create Date: 18:19:32 07/15/2015 
// Design Name: 
// Module Name: clk_divide 
// Project Name: clk_divide
// Description: 实现占空比为50%的奇分频

//////////////////////////////////////////////////////////////////////////////////
module clk_divide(
clk,rst_n,
clk_7divide
);

//input
input clk,rst_n;

//output
output clk_7divide;

//////////////////////////////////////////////////////////////////////////////////
reg [ 2:0 ]cnt1,cnt2;
always @( posedge clk or negedge rst_n ) //上升沿7进制计数器
if( !rst_n )
cnt1 <= 'd0;
else if( cnt1 == 'd6 )
cnt1 <= 'd0;
else
cnt1 <= cnt1 + 1'b1;

always @( negedge clk or negedge rst_n )//下降沿7进制计数器
if( !rst_n )
cnt2 <= 'd0;
else if( cnt2 == 'd6 )
cnt2 <= 'd0;
else
cnt2 <= cnt2 + 1'b1;

//////////////////////////////////////////////////////////////////////////////////
reg clk1,clk2;
always @( posedge clk or negedge rst_n ) //计数到(N-1)/2 时翻转
if( !rst_n )
clk1<= 'd0;
else if( cnt1 == 'd3 || cnt1 == 'd6 )
clk1 <= ~clk1;

always @( negedge clk or negedge rst_n )//计数到(N-1)/2 时翻转
if( !rst_n )
clk2 <= 'd0;
else if( cnt2 == 'd3 || cnt2 == 'd6 )
clk2 <= ~clk2;

//////////////////////////////////////////////////////////////////////////////////
assign clk_7divide = clk1 | clk2;

//////////////////////////////////////////////////////////////////////////////////
endmodule

//激励文件

`timescale 1ns / 1ns

////////////////////////////////////////////////////////////////////////////////
// Company: 
// Engineer:lidong

// Create Date: 16:38:56 07/16/2015
// Design Name: clk_divide
// Module Name: E:/Xilinx_Prj/clk_divide/clk_div_test.v
// Project Name: clk_divide

////////////////////////////////////////////////////////////////////////////////

module clk_div_test;

// Inputs
reg clk;
reg rst_n;

// Outputs
wire clk_7divide;

// Instantiate the Unit Under Test (UUT)
clk_divide uut (
    .clk(clk), 
    .rst_n(rst_n), 
    .clk_7divide(clk_7divide)
);

initial begin
    // Initialize Inputs
    clk = 0;
    rst_n = 0;

    // Wait 100 ns for global reset to finish
    #100;
  rst_n = 1;
    forever #10 clk = ~clk;


end

endmodule

你可能感兴趣的:(ISE的使用详细步骤以及奇分频的实现)