Anlogic-安路-FPGA-论坛
Anlogic-安路-ChipDebug

Anlogic-安路

帖子 334互动 978关注 54
上海安路信息科技股份有限公司(简称“安路科技”)成立于2011年,总部位于浦东新区张江高科技园区。安路科技专注于为客户提供高性价比的可编程逻辑器件(FPGA)、可编程系统级芯片(SoC)、及相关EDA软件工具和创新系统解决方案。
Anlogic-安路-ChipDebug
评分
6分享
热门评论
ICMaker的头像-ChipDebugICMaker徽章-资深玩家-ChipDebug等级-LV3-ChipDebug版主3
这个比较简单,就不专门出教程了,我给你贴代码进行说明。 我们提供的DEMO4同时提供了OSC和PLL的用法示便。 评论图片-ChipDebug 1. ELF2 器件包含一个 CMOS 环形振荡器, 环形振荡器的输出可以作为全局时钟的输入, 也可以作为 PLL的参考时钟。 环形振荡器在全局时钟路径上, 插入的可配置分频器可以对 OSC 的频率进行 1-128 任意整数分频。 可以动态配置分频系数, 不使用时可以关闭 OSC 以节省功耗。环形振荡器中心频率 287MHz, 芯片个体之间频率误差较高, 误差范围达到 30%。 即 每一片EF2之间的频率可能在这个频率附近30%范围内,但可以校准。

	EF2_PHY_OSCDIV inst(
	.rstn(1), //复位,高有效
	.stdby(0), // 休眠,高有效
	.div(7'b000_0100), //分频系数
	.clko(clko)); //出来的时钟
它有一些注意事项: 1. OSC、 OSCDIV 输出可以接 PLL, 但不能直接 Fabric, 可以通过 GCLK 连接到 Fabric。 2. ELF2系列器件不建议使用OSC+PLL的组合方式, 建议使用内部的EF2_PHY_OSCDIV (rstn, stdby, div,clko)。我们的示例工程就是这么个用法。 3. OSC 输出时钟最大偏差在 30%以内, 对时钟精度要求较高的场景不建议使用。 2. 关于PLL的例化其实没有什么要说的,其实在我们的很多demo中都有PLL的用法, PLL的端口例表如下: 评论图片-ChipDebug 比较简单的如下:

	PLL u_pll(
		.refclk  ( clk_osc    ),  
		.reset   ( ~cnt_rst[7] ), 
		.psclk   ( clk_osc    ), 
		.psdown  ( S_psdown   ),
		.psstep  ( S_psstep   ),
		.psclksel( S_psclksel ),
		.extlock (            ),
		.psdone  ( S_psdone   ),
		.clk0_out( O_clk0     ),
		.clk1_out( O_clk1     )

);
而Demo4中的PLL代码由于进行了动态调相,所以看起来相对复杂。

wire clk_osc;
wire clko;
OSC_DIV u_oscdiv(.rstn(1), .stdby(0), .div(7'b000_0100), .clko(clko)); //58.47M

EF2_LOGIC_BUFG BUFG_inst(
.o(clk_osc),
.i(clko)
);

reg [7:0] rst_cnt;
always @(posedge clk_osc) if (!rst_cnt[7]) rst_cnt <= rst_cnt + 1'b1;

wire sys_rst_n;
wire clk100m, clk50m, clk12m;
osc_pll u_osc_pll(
        .refclk(clko),
        .reset(~rst_cnt[7]),
        .stdby(0),
        .extlock(sys_rst_n),
        .clk0_out(clk100m),
        .clk1_out(clk50m),
        .clk2_out(clk12m));
相较于上面主要是下面这几个端口的区别: 评论图片-ChipDebug
评分
8分享
评分
4分享
评分
2分享
评分
5分享
评分
1分享
该帖子部分内容已隐藏
付费阅读
已售 6
30积分
此内容为付费阅读,请付费后查看
评分
3分享