安路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; }
相关推荐
apple_ttt3 小时前
SystemVerilog学习——虚拟接口(Virtual Interface)
fpga开发·fpga·systemverilog·uvm
学习路上_write13 小时前
FPGA/Verilog,Quartus环境下if-else语句和case语句RT视图对比/学习记录
单片机·嵌入式硬件·qt·学习·fpga开发·github·硬件工程
jjjxxxhhh12315 小时前
FPGA,使用场景,相比于单片机的优势
单片机·嵌入式硬件·fpga开发
诚实可靠小郎君952719 小时前
FPGA高速设计之Aurora64B/66B的应用与不足的修正
fpga开发·aurora·高速通信
百锦再19 小时前
基于Zynq FPGA对雷龙SD NAND的测试
fpga开发
∑狸猫不是猫1 天前
HDLBIts习题(4):边沿检测、分频计数器、多位BCD计数器
fpga开发
黑旋风大李逵2 天前
FPGA使用Verilog实现CAN通信
fpga开发·can通信·sja1000t·fpga实现can通信
hi942 天前
PYNQ 框架 - 中断(INTR)驱动
嵌入式硬件·fpga开发·zynq·pynq
transfer_ICer3 天前
Vscode搭建verilog开发环境
vscode·fpga开发·编辑器
沐欣工作室_lvyiyi3 天前
汽车牌照识别系统的设计与仿真(论文+源码)
人工智能·单片机·fpga开发·汽车·单片机毕业设计·matlab车牌识别