安路IP核应用举例(OSC、UART)

1.OSC(内部振荡器)

按照Project->New Project顺序新建工程后,后按照Tools->IP Generator顺序,创建IP核,如下图:

安路FPGA的内置OSC振荡模块频率可选30MHz、60MHz。

可选Verilog或VHDL语言。

如图,生成的.v文件只读,如需进一步的修改,可将文件另存,然后将新文件更新到工程里即可。

osc_clk为输出频率,osc_dis为使能输入,低电平有效,参数"60"为配置频率,单位为MHz。为测试效果,可进行分频后输出,如下:

复制代码
module OSC_Test( clk_out );   //
	output 	reg	 clk_out;
	//input		 osc_dis;
    wire osc_clk;
    reg[24:0]count;
    
		ELF_PHY_OSC #(           //例化,配置为60MHz输出
		.FREQ("60"))
		osc_inst(
		.osc_clk(osc_clk),  //频率输出
		.osc_dis(1'b0)); //使能,低电平有效
        
always@(posedge osc_clk)  //60M分频成1Hz
 if (count>=30000000-1)
     begin clk_out<=~clk_out; count<=0; end
 else
     count<=count+1;        

endmodule

需要注意的是,程序重新Download后,FPGA功能有可能没有随即更新,可关闭电源重新上电再行操作。

2.UART(串口通信)

依据安路官方资料,其uart基本结构如下:

IP核配置选择如下:

以EF1A650LG144为例,24MHz时钟,波特率115200bps。

新建一顶层文件:

复制代码
module uart_top
  (
  clk,  //24M
  rst_n, //低电平复位
  rxd,  //rxd
  txd      //txd
  );

  input clk;
  input rst_n;
  input rxd;
  output txd;
  wire tx_en; //发送使能,高电平有效
  wire rx_err; //接收错误,高电平有效
  wire rx_vld; //接收有效,高电平有效
  wire tx_rdy; //高电平准备好,可以发送;低电平发送忙
  wire [7:0] tx_data; //8位发送
  wire [7:0] rx_data; //8位接收
UART u0(
.clk(clk),
.rst_n(rst_n),
.rxd(rxd),
.tx_data(tx_data),
.tx_en(tx_en),
.rx_data(rx_data),
.rx_err(rx_err),
.rx_vld(rx_vld),
.tx_rdy(tx_rdy),
.txd(txd)
);
assign tx_en=rx_vld&tx_rdy&(!rx_err);
assign tx_data=rx_data+1'b1;
endmodule 

以上程序的作用是收到一个ACII码后,加1后回送,效果如下:

引脚约束:

复制代码
set_pin_assignment	{ clk }	{ LOCATION = P20; }
set_pin_assignment	{ txd }	{ LOCATION = P143; }
set_pin_assignment	{ rxd }	{ LOCATION = P144; }
set_pin_assignment	{ rst_n }	{ LOCATION = P120; }

3.对于硬木课堂出品的EG4S20开发板来说,如下图,其时钟为50M,rxd、txd引脚分别为F12、D12。

IP核配置如下:

引脚配置如下:

复制代码
set_pin_assignment	{ clk }	{ LOCATION = R7; }
set_pin_assignment	{ rst_n }	{ LOCATION = A14; }
set_pin_assignment	{ rxd }	{ LOCATION = F12; }
set_pin_assignment	{ txd }	{ LOCATION = D12; }
相关推荐
ooo-p16 小时前
FPGA学习篇——Verilog学习Led灯的实现
学习·fpga开发
嵌入式-老费17 小时前
Zynq开发实践(FPGA之选择开发板)
fpga开发
风_峰20 小时前
PuTTY软件访问ZYNQ板卡的Linux系统
linux·服务器·嵌入式硬件·fpga开发
电子凉冰1 天前
FPGA入门-状态机
fpga开发
Aczone281 天前
硬件(十)IMX6ULL 中断与时钟配置
arm开发·单片机·嵌入式硬件·fpga开发
晓晓暮雨潇潇2 天前
Serdes专题(1)Serdes综述
fpga开发·serdes·diamond·latticeecp3
XINVRY-FPGA2 天前
XCKU15P-2FFVA1760I AMD 赛灵思 Xilinx Kintex UltraScale+ FPGA
arm开发·嵌入式硬件·阿里云·fpga开发·云计算·硬件工程·fpga
嵌入式-老费2 天前
Zynq开发实践(FPGA之第一个vivado工程)
fpga开发
贝塔实验室2 天前
两种常用的抗单粒子翻转动态刷新方法
论文阅读·经验分享·笔记·科技·学习·程序人生·fpga开发
minglie12 天前
zynq arm全局计时器和私有定时器
fpga开发