当前位置: 首页 > news >正文

可靠的合肥网站建设seo项目培训

可靠的合肥网站建设,seo项目培训,做app和网站,免费域名注册解析前言 串行数据传输通常在数据传输距离较远时使用,而并行数据传输适用于短距离、高速数据交换。通过转换,可以根据实际需求选择合适的传输方式,以优化数据传输效率和速度。串行数据传输在长距离传输中可以减少信号的干扰和失真,因为…

前言

        串行数据传输通常在数据传输距离较远时使用,而并行数据传输适用于短距离、高速数据交换。通过转换,可以根据实际需求选择合适的传输方式,以优化数据传输效率和速度。串行数据传输在长距离传输中可以减少信号的干扰和失真,因为它只使用一条数据线。而并行传输由于多条数据线可能引入干扰,串行并行转换可以在需要时将数据转为串行传输,以减少干扰。在多种接口标准之间转换数据时,串行并行转换可以实现不同接口之间的数据兼容。例如,许多现代通信系统使用串行接口,而内部处理可能使用并行数据格式,转换可以使系统之间的数据交换顺畅。在某些应用中,FPGA等硬件平台可以通过串行并行数据转换实现灵活的设计,简化电路结构,降低成本和复杂度,同时提高系统的整体性能。

正文

一、串行并行数据转换

        1.项目需求

        进行串行数据转换为并行数据,并行数据转化为串行数据实验

        2.技术介绍

        并转串的设计思想:首先准备好一组寄存器,把需要发送的数据(并行数据)放到这个寄存器组里面,然后通过位拼接的移位方式把这个并行数据一位一位地发送给接收端,同时拉高标志信号en,当全部数据发送完之后,再把标志信号en拉低。

        串转并的设计思想:准备好一组寄存器,接收串行数据,将数据按位移入寄存器组,然后将整个寄存器组的数据组合成一个完整的并行数据字。使用一组寄存器暂时存储数据,然后逐位将数据移出至串行输出端,同时使用标志信号指示何时数据转换完成。

        3.顶层架构

并转串

串转并

        4.端口描述

并转串

clk系统时钟(50Mhz)
rst_n复位按键(低电平有效)
sda_in[7:0]并行数据输入
en串行数据串行输出有效信号
sda_out串行输出

串转并

clk系统时钟(50Mhz)
rst_n复位按键(低电平有效)
en串行输入有效信号
sda_in串行输入
sda_out[7:0]并行输出

二、代码验证

并转串:

module para_serial(input clk,input rst_n,input [7:0]sda_in,//并行输入output reg en,output reg sda_out//串行输出);reg [7:0]sda;//并行数据寄存器
reg [3:0]cnt;//移位计数器always @(posedge clk,negedge rst_n)
beginif(rst_n == 0)beginsda_out <= 1'b0;cnt <= 4'd0;sda <= 8'b0;en  <= 1'b0;endelsebeginif(cnt == 0)//数据加载beginsda <= sda_in;cnt <= 4'd1;endelse if(cnt < 9)//移位输出beginen  <= 1'b1;cnt <= cnt + 4'd1;sda <= {sda[6:0],sda[7]};sda_out <= sda[7];endelsebegincnt <= 4'd0;//系统复位sda <= 8'b0;en  <= 1'b0;endend
endendmodule

        仿真程序

`timescale 1ns/1ps
module para_serial_tb;reg clk;reg rst_n;reg [7:0]sda_in;wire en;wire sda_out;para_serial para_serial_inst(.clk(clk),.rst_n(rst_n),.sda_in(sda_in),.en(en),.sda_out(sda_out));initial clk = 1;
always #10 clk = ~clk;initial beginrst_n = 0;#10rst_n = 1;sda_in = 8'b1011_0100;//数据载入#200sda_in = 8'b1010_0001;//数据载入#200$stop;
endendmodule

串转并

module serial_para(input clk,input rst_n,input sda_in,//串行输入input en,//输入有效output reg [7:0] sda//并行输出);always @(posedge clk,negedge rst_n)
beginif(rst_n == 0)beginsda <= 8'b0;endelsebeginif(en == 1)//输入使能sda <= {sda[6:0],sda_in};//数据并位elsesda <= 8'b0;end
endendmodule

创建顶层,利用并转串输出数据

module top(//进行数据连线input clk,input rst_n,input [7:0]sda_in,output en,output sda_out,output [7:0]sda);para_serial para_serial_inst(.clk(clk),.rst_n(rst_n),.sda_in(sda_in),.en(en),.sda_out(sda_out));serial_para serial_para_inst(.clk(clk),.rst_n(rst_n),.sda_in(sda_out),.en(en),.sda(sda));
endmodule

        仿真程序

`timescale 1ns/1ps
module para_serial_tb;reg clk;reg rst_n;reg [7:0]sda_in;wire en;wire sda_out;wire [7:0]sda;top top_inst(.clk(clk),.rst_n(rst_n),.sda_in(sda_in),.en(en),.sda_out(sda_out),.sda(sda));initial clk = 1;
always #10 clk = ~clk;initial beginrst_n = 0;#10rst_n = 1;sda_in = 8'b1011_0100;#200sda_in = 8'b1010_0001;#200$stop;
endendmodule

三、仿真验证

并转串:观察仿真波形图,数据有正常显示,调出过程信号

数据在cnt=0的时钟上升沿时候加载sda,在cnt=1的时候显示输入并进行移位,在cnt=2的时候显示移位结果,并将移位结果输出,依次循环移,直到cnt=8的时钟上升沿对输入数据移位完8次,在cnt = 9的时候输出数据并系统复位,在下一个cnt=0的上升沿时钟加载数据

上图输入10110100,输出电平在en有效下依次为10110100,下图输入10100001输出电平在en有效下依次为10100001,数据转化正确。

串转并:可以观察到在en拉低后sda输出10110100与并转串模块输入数据相同。

在时钟上升沿读取到en=1后将串行输入依次移位保存到并行输出串口并输出,串行输入10100001,经过8次en=1的时钟上升沿后由于输入en为并转串的输出使能,经过8个时钟周期后数据输出完成,en拉低,此时串转并模块输出上个时钟周期产生的完整串转并数据。此时数据为10100001与串行输入结果相同,实验成功。

参考资料

串并转换

http://www.hkea.cn/news/301525/

相关文章:

  • 重庆南岸营销型网站建设公司哪家专业真实的网站制作
  • 郑州企业网站建设兼职推广渠道
  • 网站哪些数据优化大师的作用
  • 政府网站集约化建设总结营销软文推广平台
  • 学网站开发跟那个专业最相近百度站长平台注册
  • 网站开发python电脑培训班有哪些科目
  • 惠州响应式网站哪家好云盘搜索
  • spring做网站合肥seo排名收费
  • 做58网站怎么赚钱二十个优化
  • 做企业手机网站北京seo网站开发
  • 关于网站建设中原创文章的一些想法体育热点新闻
  • 天河做网站开发免费留电话号码的广告
  • 成都市金堂县网站建设免费seo在线工具
  • 计算机培训中心网站高端网站建设的公司
  • 成都建设路小学网站大作设计网站
  • 桂林创新大厦网站今日十大热点新闻事件
  • 做网站空间哪家好windows7系统优化工具
  • 网站建设首选公司seo推广一个月见效
  • 微信做模板下载网站有哪些推广网站要注意什么
  • 做网站 java c常德seo快速排名
  • 仙桃做网站找谁常用的网络推广方法
  • 品牌推广网站怎样做百度手机助手苹果版
  • 武汉工业网站制作百度人工服务热线24小时
  • 新闻头条最新消息今日头条站长之家seo综合
  • app与网站宁波seo网络推广渠道介绍
  • 国外学做咖啡的网站百度高级搜索网址
  • 建网站开源代码游戏推广怎么找玩家
  • 莱州哪里有做网站的浙江网站建设平台
  • ps网站设计与制作免费推广seo
  • 网站查询功能怎么做关键词搜索量怎么查