安路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分频成1Hzif (count>=30000000-1)begin clk_out<=~clk_out; count<=0; endelsecount<=count+1;        endmodule

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

2.UART(串口通信)

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

IP核配置选择如下:

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

新建一顶层文件:

module uart_top(clk,  //24Mrst_n, //低电平复位rxd,  //rxdtxd      //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; }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/226091.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Linux】内核结构

一、Linux内核结构介绍 Linux内核结构框图 二、图解Linux系统架构 三、驱动认知 1、为什么要学习写驱动2、文件名与设备号3、open函数打通上层到底层硬件的详细过程 四、Shell Shell脚本 一、Linux内核结构介绍 Linux 内核是操作系统的核心部分&#xff0c;它负责管理系…

“Java 已死、前端已凉”?技术变革与编程语言前景:Java和前端的探讨

前端已死话题概论 本文讨论了近期IT圈中流传的“Java 已死、前端已凉”言论。我们审视了这些言论的真实性&#xff0c;并深入探讨了技术行业的演变和新兴技术的出现对编程语言和前端开发的影响。通过分析历史发展、当前趋势和未来展望&#xff0c;我们提供了对这些话题更深层次…

HBuilderX 配置 夜神模拟器 详细图文教程

在电脑端查看App的效果&#xff0c;不用真机调试&#xff0c;下载一个模拟器就可以了 --- Nox Player&#xff0c;夜神模拟器&#xff0c;是一款 Android 模拟器。他的使用非常安全&#xff0c;最重要的是完全免费。 一. 安装模拟器 官网地址&#xff1a; (yeshen.com) 二.配…

探索性能测试的奥秘:流程与工具大揭秘!

一、性能测试 性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。 1.1 类别 性能测试包括负载测试、压力测试、基准测试等。 1.1.1 负载测试 通过测试系统在资源超负荷情况下的表现&#xff0c;以发现设计上的错误或验证…

【MYSQL】事务隔离级别、脏读、不可重复读、幻读

文章目录 介绍演示脏读不可重复读可重复读幻读 不可重复读和幻读的区别 参考 作者 Guide: 事务隔离级别 美团技术团队&#xff1a; Innodb中的事务隔离级别和锁的关系 介绍 SQL 标准定义了四个隔离级别&#xff1a; READ-UNCOMMITTED(读取未提交) &#xff1a;最低的隔离级别…

论文阅读——Semantic-SAM

Semantic-SAM可以做什么&#xff1a; 整合了七个数据集&#xff1a; 一般的分割数据集&#xff0c;目标级别分割数据集&#xff1a;MSCOCO, Objects365, ADE20k 部分分割数据集&#xff1a;PASCAL Part, PACO, PartImagenet, and SA-1B The datasets are SA-1B, COCO panopt…

java简易制作-王者荣耀游戏

一.准备工作 首先创建一个新的Java项目命名为“王者荣耀”&#xff0c;并在src下创建两个包分别命名为“com.sxt"、”com.stx.beast",在相应的包中创建所需的类。 创建一个名为“img”的文件夹来储存所需的图片素材。 二.代码呈现 package com.sxt; import javax…

【设计模式--行为型--观察者模式】

设计模式--行为型--观察者模式 观察者模式定义结构案例优缺点使用场景JDK中提供的实现例&#xff1a;警察抓小偷 观察者模式 定义 又被成为发布订阅模式&#xff0c;它定义了一种一对多的依赖关系&#xff0c;让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生…

INFINI Labs 产品更新 | Easysearch 新增快照搜索功能,Console 支持 OpenSearch 存储

INFINI Labs 产品又更新啦~&#xff0c;包括 Easysearch v1.7.0、Console v1.13.0。本次各产品更新了 Easysearch 快照搜索功能&#xff1b;Console 支持 OpenSearch 集群存储系统数据、优化了初始化安装向导流程等。 以下是本次更新的详细说明。 INFINI Easysearch v1.7.0 …

遥感论文 | ISPRS | 图神经网络也能做城市街道功能感知?纯视觉方案,效果可观!

论文题目&#xff1a;Knowledge and topology: A two layer spatially dependent graph neural networks to identify urban functions with time-series street view image论文网址&#xff1a;https://www.sciencedirect.com/science/article/pii/S0924271623000680论文代码&…

【lesson16】进程控制之进程替换(1)

文章目录 进程替换是什么&#xff1f;进程替换怎么用&#xff1f;不创建子进程时使用 进程替换是什么&#xff1f; 我们知道fork()之后&#xff0c;父子进程各自执行父进程的一部分代码&#xff0c;如果子进程就想执行一个全新的程序呢&#xff1f; 以前&#xff1a;父子代码…

K8S(二)—介绍

K8S的整体结构图 k8s对象 在 Kubernetes 系统中&#xff0c;Kubernetes 对象是持久化的实体。 Kubernetes 使用这些实体去表示整个集群的状态。 具体而言&#xff0c;它们描述了如下信息&#xff1a; 哪些容器化应用正在运行&#xff08;以及在哪些节点上运行&#xff09;可…

微服务实战系列之ZooKeeper(中)

前言 昨日博主的第一篇ZooKeeper&#xff0c;对它自身具备的能力做了初步介绍。书接上文&#xff0c;马不停蹄&#xff0c;我们继续挖掘它内在的美&#xff0c;充分把握它的核心与脉络。 揭秘ZooKeeper Q&#xff1a;集群一致性协同是如何进行的 我们讲到分布式&#xff0c;…

Renyi散度:Renyi divergence

有关Renyi散度的基本介绍挺多博客已经写了。本文章主要介绍最基础的概念&#xff0c;以及近些年论文中为啥老喜欢引用这个概念。 一.基础概念 Renyi散度主要是描述两个分布之间的关系。对一个离散的概率分布X&#xff0c;其定义域记作&#xff0c;其实就是概率不为零的点的集…

React脚手架搭建

React脚手架 脚手架&#xff1a;可以快速构建项目的基本架构。 脚手架安装命令 可全局安装脚手架 创建项目 来到当前目录下 create-react-app 项目名&#xff08;不要大写字母&#xff09; 运行项目 进到项目里&#xff0c;在项目目录下&#xff0c;执行 npm start &#xff…

C语言-Makefile

Makefile 什么是make&#xff1f; make 是个命令&#xff0c;是个可执行程序&#xff0c;用来解析 Makefile 文件的命令这个命令存放在 /usr/bin/ 什么是 makefile? makefile 是个文件&#xff0c;这个文件中描述了我们程序的编译规则咱们执行 make 命令的时候&#xff0c; m…

华为数通——路由冗余和备份

注&#xff1a;当一条路由的出接口down时&#xff0c;该路由会自动失效。 要求&#xff1a;数据优先走千兆链路。 R1 [ ]ip route-static 172.16.1.0 24 12.1.1.2 目的地址 掩码 下一条 [ ]ip route-static 172.16.1.0 24 21.1.1.2 preference 50 目的地址 …

OxLint 发布了,Eslint 何去何从?

由于最近的rust在前端领域的崛起&#xff0c;基于rust的前端生态链遭到rust底层重构&#xff0c;最近又爆出OxLint&#xff0c;是一款基于Rust的linter工具Oxlint在国外前端圈引起热烈讨论&#xff0c;很多大佬给出了高度评价&#xff1b;你或许不知道OxLint&#xff0c;相比ES…

MySQL 8.x temp空间不足问题

目录 一、系统环境 二、问题报错 三、问题回顾 四、解决问题 一、系统环境 系统Ubuntu20.04 数据库版本MySQL 8.0.21 二、问题报错 在MySQL上执行一个大的SQL查询报错Error writing file /tmp/MYfd142 (OS errno 28 - No space left on device) Exception in thread …

【深度学习】强化学习(六)基于值函数的学习方法

文章目录 一、强化学习问题1、交互的对象2、强化学习的基本要素3、策略&#xff08;Policy&#xff09;4、马尔可夫决策过程5、强化学习的目标函数6、值函数7、深度强化学习 二、基于值函数的学习方法 一、强化学习问题 强化学习的基本任务是通过智能体与环境的交互学习一个策略…