微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > Nexys3学习手记6:ClockingWizard探秘

Nexys3学习手记6:ClockingWizard探秘

时间:02-11 来源:网络整理 点击:
则其频率分别是50MHz、25MHz、12.5MHz和6.25MHz。         修改后的顶层源代码如下:module testled(            clk,rst_n,            led        ); input clk;      //100MHzinput rst_n;    //低电平复位信号 output[7:0] led;    //连接到LED指示灯  wire clk_100m;      //clocking输出100MHzwire clk_50m;       //clocking输出50MHzwire clk_25m;       //clocking输出25MHzwire clk_12m5;      //clocking输出12.5MHzwire clk_locked;    //clocking输出完成标志位 //---------------------------------------------------//IP核Clocking Wizard例化//----------- Begin Cut here for INSTANTIATION Template ---// INST_TAG   myclocking uut_myclocking   (// Clock in ports    .CLK_IN1(clk),      // IN    // Clock out ports    .CLK_OUT1(clk_100m),     // OUT    .CLK_OUT2(clk_50m),     // OUT    .CLK_OUT3(clk_25m),     // OUT    .CLK_OUT4(clk_12m5),     // OUT    // Status and control signals    .RESET(!rst_n),// IN    .LOCKED(clk_locked));      // OUT// INST_TAG_END ------ End INSTANTIATION Template ---------  //---------------------------------------------------reg[24:0] cnt0;//100MHz时钟分频计数器 always @ (posedge clk_100m or negedge rst_n)    //异步复位    if(!rst_n) cnt0 <= 25'd0;    else cnt0 <= cnt0+1'b1;//寄存器cnt0循环计数 assign led[0] = cnt0[24];       //---------------------------------------------------reg[23:0] cnt1;//50MHz时钟分频计数器 always @ (posedge clk_50m or negedge rst_n)//异步复位    if(!rst_n) cnt1 <= 24'd0;    else cnt1 <= cnt1+1'b1;//寄存器cnt1循环计数 assign led[1] = cnt1[23];       //---------------------------------------------------reg[22:0] cnt2;//25MHz时钟分频计数器 always @ (posedge clk_25m or negedge rst_n)//异步复位    if(!rst_n) cnt2 <= 23'd0;    else cnt2 <= cnt2+1'b1;//寄存器cnt2循环计数 assign led[2] = cnt2[22];   //---------------------------------------------------reg[21:0] cnt3;//12.5MHz时钟分频计数器 always @ (posedge clk_12m5 or negedge rst_n)    //异步复位    if(!rst_n) cnt3 <= 22'd0;    else cnt3 <= cnt3+1'b1;//寄存器cnt3循环计数 assign led[3] = cnt3[21];            //---------------------------------------------------//4个clocking输出时钟2分频寄存器,用于示波器观察 assign led[7:4] = {cnt0[0],cnt0[1],cnt0[2],cnt0[3]}; endmodule    Hierarchy下选中顶层源代码testled.v,然后双击Processes下的Generate Programming File进行编译并生产烧录文件。"Process "Generate Programming File" completed successfully "信息出现在Console时,可以打开Digilent Adept使用Config功能烧录新生成的testled.bit文件。 转载自:特权同学的博客

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top