01PLL_TEST_仿真入门实验

软件版本:Fuxi2022.1

操作系统:WIN10 64bit

硬件平台:适用京微齐力FPGA

登录"米联客"FPGA社区-www.uisrc.com视频课程、答疑解惑!

1创建FPGA工程

1.1创建1个新的工程

启动Fuxi2022.1

创建一个新的工程

Project Directory设置工程路径

Project Name 设置fpga工程名称,米联客的教学内容fpga工程一般命名为fpga_prj

TopModule Name设置顶层模块的名称

Design Files如果有,可以单击Add添加,也可以工程创建完成后新建或者添加,这里我们还没有创建FPGA代码文件,所有先不添加。

Device Family设置向导:

Family:FPGA的系列家族,这里选择P1

Device Type:选择FPGA

Package:封装选择BGA324

Flash:P1默认没有内置FLASH所以是NO Flash

 

Current Select Device选型向导:

选择具体的FPGA型号,这里选择P1P060N0V324C7

 

Operation Condition:芯片操作设置向导

Junction Temperature:何止工作温度范围

Core Tolerance Range:设置核心工作电压范围,一般选择默认设置

Perform Timing Analysis Base on:设置时序分析策略,一般设置为Typical

1.2创建FPGA程序文件

右击创建或者添加文件,把工程文件管理标签切换到Project可以看到fpga_prj工程名。

我们这里创建一个新的pll_test文件,并且编写相应的代码

右击下图空白处,单击Add New File

米联客习惯把一些IP路径根据自己的习惯放到自定义的路径下

创建pll_test.v测试程序文件,并且保持到uisrc/01_rtl路径下

 

编写测试代码

module pll_test(

input sysclk,

output up_led

  );

wire [3:0]  up_led;

   

wire    clk0;

wire    pll_lock;

reg [25:0]  cnt;

 

assign up_led = {cnt[25:24],cnt[22:21]};

 

mypll mypll_u(

.clkin0 (sysclk),

.clkout0(clk0),//single output up to 200MHz

.locked (pll_lock)

);

 

always @ (posedge clk0)begin

   cnt <= cnt + 1'b1; //cnt power on initial value is all 1

end

 

endmodule

1.3添加PLL IP

以上代码中用到了PLL,PLL IP的添加过程如下:

添加IP

选择Phase-Locked Loop 这个IP

Number of clock output:输出的时钟数量选择1,最大可以设置6

Delay unity 设置时钟相位偏移的方式,默认是设置角度

Clock0 output:

Frequency设置倍频输出的频率

Delay设置相位

其他的Use fraction divider和Dynamic phase shift以及Bypass模式都没用到

可以看到右边mypll ip里面调用 PLLV1 源语

1.4手动更新层次化

目前fuxi软件默认需要手动刷新(手动刷新可以防止自动刷新导致某些时候卡顿)后才能看到FPGA的层次结构,切换到Hierarchy,并且单击下右边的箭头位置如图,更新下层次设计

1.5编写仿真文件

以相同的方式编写一个仿真测试激励文件,并且放到uisrc/02_sim路径

源码如下:

`timescale 1 ns/100ps

 

module pll_test_tb;

 

reg sysclk;

wire [1:0] up_led;

 

pll_test u_pll_test(

.sysclk(sysclk),

.up_led(up_led)

);

 

initial

begin

   sysclk = 1'b0;

end

 

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

//

// Clock generation

//

 

always #20 sysclk = ~sysclk;

 

endmodule

 

2RTL仿真

2.1仿真设置

双击Settings

设置modelsim的安装路径

设置仿真文件

2.2启动仿真

在菜单Flow->Simulation->RTL Simulation启动仿真(注意第一次仿真可以这样启动,后面修改了文件后也可以直接在modelsim中执行.do文件直接仿真)

执行完成后,可以看到在对应工程的simulate路径下多了pll_test_rtl_sim.do文件

右击u_pll_test 添加需要观察的计数器等波形信号

然后单击run就能仿真了

注意:当我们更新程序后,可以不需要从fuxi软件重新启动modelsim,可以在控制台输入do pll_test_rtl_sim.do然后回车直接执行。

3Fuxi代码添加删除后注意事项

Fuxi默认会关闭自动刷新Hierarchy显示的功能,因此每次删除或者添加代码后,或者改版了代码的调用层次,可以手动刷新下就正常了(手动刷新可以防止自动刷新导致某些时候卡顿)。

如果要开启自动刷新可以设置如下:

下一个实验中我们增加PIN脚约束,以及添加在线逻辑分析仪在开发板上验证结果。

posted @ 2022-05-31 15:41  米联客(milianke)  阅读(209)  评论(0编辑  收藏  举报