quartus使用串口IP模块
在quartus平台中使用串口模块的IP,需要使用到platform designer软件来实现。
1、在quartus界面调出IP Catalog界面。

2、在IP catalog中搜索UART,找到RS2323模块,并双击打开,选择合适的路径和存放。

3、使用该模块若不搭建nios软核,则使用streaming。

在右上角电机Block Symbol或者在菜单选择View->Block Symbol打开模块符号。

4、串口配置了波特率,其自动配置的参数与时钟有关,因此需要加入时钟模块,告知系统输入时钟为多少。
操作如下:

5、打开系统连接的界面,为其添加时钟输入模块。

6、在IP搜索栏搜索clock,双击选择的模块添加时钟模块,输入模块。

7、根据板载资源,设置时钟的参考时钟。

8、连接时钟模块和串口模块的clk和reset。

9、点击Generate HDL生成模块。

10、在quartus中添加生成的sys系统。



11、从platform designer生成模块实例将实例拷贝到添加到quartus的顶层文件中,添加写数据和读数据的时序。



这里只测试一下串口发送数据的功能,接收数据的操作基本是一样的。
12、在platform designer查看串口模块发送数据的时序。


同理在这里一样可以查看到接收数据的时序。需要注意的是,时序中的数据其实是在to_uart_valid信号为1时,数据会被写入。下面是测试串口发送数据的顶层文件。
module top2(
input wire clk,//50MHz时钟
//rst,//
output reg led, //用于指示
input wire rxd,
output wire txd,
inout dht_io
); //*********************************PROCESS**************************************
// 复位模块
//****************************************************************************** reg rst_n ;
reg [:]delay_cnt;
always@(posedge clk)
begin
if(delay_cnt>='d35530)begin
delay_cnt <= delay_cnt;
rst_n <= 'b1;
end
else begin
rst_n <= 'b0;
delay_cnt <= delay_cnt + 'b1;
end
end
//指示灯
//assign txd = led;
reg [:]cnt;
reg led_f1,tx_flag;
always@(posedge clk)
begin
led_f1 <= led;
tx_flag <= led &(~led_f1);
if(cnt >= 'd25000000 - 1)
begin
cnt <= ;
led <=~led;
end
else begin
cnt <= cnt + 'b1 ;
end
end
//--------------------------------------------
localparam s_s1=;
localparam s_s2=;
localparam s_s3=;
localparam s_s4=;
reg [:]send_data;
reg to_uart_valid , to_uart_ready;
reg [:]send_st;
reg [:]data_cnt;
always@(posedge clk)
begin
if(!rst_n)begin
to_uart_ready <= 'b0;
to_uart_valid <= 'b0;
send_data <= 'd0;
send_st<= s_s1;
data_cnt <= 'd0;
end
else begin
case(send_st)
s_s1:begin//待机
if(tx_flag)begin
send_st <= s_s2;
to_uart_valid <= 'b0;
to_uart_ready<= 'b0;
data_cnt <= 'd0;
send_data <= ;
end
else begin
to_uart_valid <= 'b0;
to_uart_ready<= 'b0;
end
end
s_s2:begin
if(data_cnt <= 'd8-1'b1)begin
to_uart_valid <= 'b1;
//to_uart_ready <= (data_cnt >= 8'd5-1)?1'b0:1'b1;
send_data <= data_cnt+;
data_cnt <= data_cnt + 'b1;
send_st <= (data_cnt >= 'd5-1)?s_s3:s_s2;
end
end
s_s3:begin
to_uart_valid <= 'b0;
to_uart_ready <= 'b1;
send_st <= s_s1;
data_cnt<='d0;
end
default :send_st <= s_s1;
endcase
end
end
IP_UART u0 (
//.rs232_0_from_uart_ready (<connected-to-rs232_0_from_uart_ready>), // rs232_0_avalon_data_receive_source.ready
//.rs232_0_from_uart_data (<connected-to-rs232_0_from_uart_data>), // .data
//.rs232_0_from_uart_error (<connected-to-rs232_0_from_uart_error>), // .error
//.rs232_0_from_uart_valid (<connected-to-rs232_0_from_uart_valid>), // .valid
.rs232_0_to_uart_data (send_data), // rs232_0_avalon_data_transmit_sink.data
.rs232_0_to_uart_error (), // .error
.rs232_0_to_uart_valid (to_uart_valid), // .valid
.rs232_0_to_uart_ready (), // 这是输入信号 .ready
.rs232_0_UART_RXD (rxd), // rs232_0_external_interface.RXD
.rs232_0_UART_TXD (txd), // .TXD
.clk_clk (clk), // clk.clk
.reset_reset_n (rst_n) // reset.reset_n
); endmodule
quartus使用串口IP模块的更多相关文章
- SoC中的IP模块学习
SoC中的IP模块学习 理解IP Spec-->register定义,理解原理+架构框图 查看testcase+model(看已有的测试例程),分析操作/使用模块的流程,寄存器的配置方法 运行仿 ...
- 玩转X-CTR100 l STM32F4 l ESP8266串口WIFI模块
我造轮子,你造车,创客一起造起来!更多塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ]- ESP8266是一款非常火的WIFI模块,性价 ...
- 基于H7的串口WIFI模块ESP8266的TCP客户端例子和操作说明(AP兼STA模式)
说明: 1.如果不熟悉网络的话,等我这几天更新V7用户手册的ESP8266章节,如果熟悉的话,直接操作即可,这里将操作说明发出来. 2.串口WIFI是采用的AT指令操作,简单易用,指令手册在这个帖子里 ...
- python 跟踪IP模块
#coding=utf-8 import re import subprocess def tracertIP(ip): p = subprocess.Popen(['tracert',ip],std ...
- Quartus II 中参数化模块库(LPM)的使用
Quartus II 的LPM库所在的目录是\altera\11.0\quartus\libraries\megafunctions 现以LPM_MULT为例进行演示: 思路:1.首先创建一个pro ...
- ESP8266串口模块的基本使用【转】
本文转载自:http://www.shaoguoji.cn/2017/01/15/ESP8266-usage/ ESP8266是一款超低功耗的UART-WiFi 透传模块,拥有业内极富竞争力的封装尺寸 ...
- python自动化运维笔记2 —— IP地址处理模块IPy
1.2 实用的IP地址处理模块IPy ip地址规划是网络设计中非常重要的一个环节,规划的好坏会直接影响路由协议算法的效率,包括网络性能.可扩展性等方面,在这个过程当中,免不了要计算大量的IP地址,包括 ...
- quartus ip核破解
在证书文件中添加一段: FEATURE 6AF7_0012 alterad 2035.12 permanent uncounted E75BE809707E VENDOR_STRING="i ...
- nios II--实验6——串口硬件部分
串口 硬件开发 新建原理图 打开Quartus II 11.0,新建一个工程,File -> New Project Wizard…,忽略Introduction,之间单击 Next> 进 ...
随机推荐
- Spring 梳理 - javaConfig在App和webApp中的应用
package com.dxz.demo.configuration; import org.springframework.context.annotation.Configuration; @Co ...
- Spring 梳理-跨重定向请求传递数据-Flash
Spring MVC Flash Attribute 的讲解与使用示例 1. Spring MVC 3.1版本加了一个很有用的特性,Flash属性,它能解决一个长久以来缺少解决的问题,一个POST/R ...
- 阿里云安装zk并连接javaAPI测试
1.安装 可参照Ubuntu 搭建Zookeeper服务进行安装并启动. 2.注意 阿里云环境开放2181端口 2.1 查看已开放端口: firewall-cmd --permanent --zone ...
- layDate——设置最大日期不能超过当前日期
例如,当前年份是2018年,实现效果如下,2018年之后年份不可操作: 具体代码实现: layui.use([ 'laydate'], function () { var laydate = layu ...
- .Net Core 商城微服务项目系列(五):使用Polly处理服务错误
项目进行微服务化之后,随之而来的问题就是服务调用过程中发生错误.超时等问题的时候我们该怎么处理,比如因为网络的瞬时问题导致服务超时,这在我本人所在公司的项目里是很常见的问题,当发生请求超时问题的时候, ...
- CPU的物理数、核心数、线程数
最近了解下CPU的参数,主要是对常见的CPU参数指标:物理数.核心数以及线程数做了下了解.增长了点自己的见识,方便自己回忆和分享,记录下来.参考了网上的一些说明并加以整理,形成该随笔.主要参考链接如下 ...
- JavaScript系列:高级函数篇
前言: 本篇主要是介绍 JavaScript使用函数的高级方法,函数是JavaSCript中最有趣的部分,利用Function特性可以编写出很多非常有意思的代码,本篇主要包括:函数回调,高阶函数以及函 ...
- ELK 学习笔记之 Logstash之filter配置
Logstash之filter: json filter: input{ stdin{ } } filter{ json{ source => "message" } } o ...
- Axure实现百度登录页面(一)
本文主要实现了百度登录页面的设计,其中最主要的是实现点击用户名和密码框时使边框颜色发生变化 (1)首先拖入一个矩形框,将边框可见性全部去掉 (2)将百度的图片拖入,将“用户名密码登录”和“短信快捷登录 ...
- 从单片机到操作系统⑦——深入了解FreeRTOS的延时机制
>没研究过操作系统的源码都不算学过操作系统 # FreeRTOS 时间管理 时间管理包括两个方面:系统节拍以及任务延时管理. ## 系统节拍: 在前面的文章也讲得很多,想要系统正常运行,那么时钟 ...