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

怎么把别人网站模板下载出来建设外贸网站公司简介

怎么把别人网站模板下载出来,建设外贸网站公司简介,大数据开发工程师,wordpress系列文章1. 串口接收原理 基本原理#xff1a;通过数据起始位判断要是否要开始接收的数据#xff0c;通过采样的方式确定每一位数据是0还是1。 如何判断数据起始位到来#xff1a;通过边沿检测电路检测起始信号的下降沿 如何采样#xff1a;一位数据采多次#xff0c;统计得到高…1. 串口接收原理 基本原理通过数据起始位判断要是否要开始接收的数据通过采样的方式确定每一位数据是0还是1。 如何判断数据起始位到来通过边沿检测电路检测起始信号的下降沿 如何采样一位数据采多次统计得到高电平出现的次数次数多的就是该位的电平值 2. 自己写的代码不完善 设计代码 module uart_byte_rx(clk,rstn,uart_byte_rx,blaud_set,data,rx_done );input clk;input rstn;input uart_byte_rx;input blaud_set;output reg [7:0] data;output reg rx_done;//Blaud_set 0时波特率 9600//Blaud_set 1时波特率 19200//Blaud_set 2时波特率 38400//Blaud_set 3时波特率 57600//Blaud_set 4时波特率 115200reg[17:0] bps_dr;always(*)case(blaud_set)0: bps_dr 1000000000/9600/20;1: bps_dr 1000000000/19200/20;2: bps_dr 1000000000/38400/20;3: bps_dr 1000000000/57600/20;4: bps_dr 1000000000/115200/20;endcasereg [1:0] test;reg get_en;always(posedge clk or negedge rstn) //边沿检测使能后续的采样if(!rstn) begindata 0;test 0;get_en 0;rx_done 0;endelse begintest[0] uart_byte_rx;test[1] test[0];if((test[0] 0 )(test[1] 1))get_en 1;rx_done 0;endreg [17:0] div_cnt;reg [3:0] counter;reg [3:0] tx_counter;always(posedge clk or negedge rstn) //计数时钟一个计数周期代表一位数据if(!rstn) div_cnt 0;else if(get_en)beginif(div_cnt 434 - 1)div_cnt 0;elsediv_cnt div_cnt 1d1;end wire bps_clk;assign bps_clk (div_cnt 1);always(posedge clk or negedge rstn) //数据段包含起始位和终止位共十段if(!rstn) tx_counter 0;else if(get_en)beginif(tx_counter 11)tx_counter 0;else if(div_cnt 1)tx_counter tx_counter 1d1;end always(posedge clk or negedge rstn) //数据采样每段数据采样8次。if(!rstn)counter 0;else if(div_cnt 3)counter 0;else if((div_cnt 1*433/8 - 10)||(div_cnt 2*433/8 - 10)||(div_cnt 3*433/8 - 10)||(div_cnt 4*433/8 - 10)||(div_cnt 5*433/8 - 10)||(div_cnt 6*433/8 - 10)||(div_cnt 7*433/8 - 10)||(div_cnt 8*433/8 - 10))counter counter uart_byte_rx;always(posedge clk or negedge rstn) //if(!rstn) counter 0;else if(div_cnt 2)case(tx_counter)2:if(counter 4 )data[0] 1; else if(counter 4) data[0] 0;3:if(counter 4 )data[1] 1; else if(counter 4) data[1] 0; 4:if(counter 4 )data[2] 1; else if(counter 4) data[2] 0; 5:if(counter 4 )data[3] 1; else if(counter 4) data[3] 0; 6:if(counter 4 )data[4] 1; else if(counter 4) data[4] 0; 7:if(counter 4 )data[5] 1; else if(counter 4) data[5] 0; 8:if(counter 4 )data[6] 1; else if(counter 4) data[6] 0; 9:if(counter 4 )data[7] 1; else if(counter 4) data[7] 0;11:begin rx_done 1; get_en 0; div_cnt 0; enddefault: begin rx_done 0; data data; endendcase endmodule 仿真波形 3. 看完视频后写的代码完善 设计代码 3.1 需学习的点 1.将div_cnt划分为最小时间段 2.某些判断信号直接用assign利用而不需要利用寄存器 3.仿真代码中task的使用 module uart_byte_rx1(clk,rstn,blaud_set,uart_rx,data,rx_done );input clk;input rstn;input [2:0]blaud_set;input uart_rx;output reg [7:0] data;output rx_done;reg [8:0] bps_dr;always(*)case(blaud_set)0:bps_dr 1000000000/9600/16/20;1:bps_dr 1000000000/19200/16/20;2:bps_dr 1000000000/38400/16/20;3:bps_dr 1000000000/57600/16/20;4:bps_dr 1000000000/115200/16/20;default : bps_dr 1000000000/9600/16/20;endcase//边沿信号检测reg [1:0] uart_rx_r; //用两位寄存器分别存储两个时间沿的uart_rx信号always(posedge clk) beginuart_rx_r[0] uart_rx;uart_rx_r[1] uart_rx_r[0];end//将两位寄存器的值直接通过导线输出进行判断不需要再使用寄存器wire nedge_uart_rx; //掌握一下这个方法之前一直使用的是寄存器//法一//assign nedge_uart_rx ((uart_rx_r[0] 0)(uart_rx_r 1));//法二assign nedge_uart_rx (uart_rx_r 2b10);reg rx_en;always(posedge clk or negedge rstn)if(!rstn)rx_en 0;else if(nedge_uart_rx)rx_en 1;else if(rx_done)rx_en 0;//周期计数器reg [8:0] div_cnt;always(posedge clk or negedge rstn)if(!rstn)div_cnt 0;else if(rx_en) beginif(div_cnt bps_dr - 1)div_cnt 0;elsediv_cnt div_cnt 1d1;endelsediv_cnt 0;wire [3:0]bps_clk_16x; //一定要记得加位宽采样信号这种写法很灵活assign bps_clk_16x bps_dr/2; //采样每一段的中点值同时也可以用它来计数。//发送一字节的数据有需要十个数据位每位数据有16个小段供采样,共160reg [7:0]bps_cnt;always(posedge clk or negedge rstn)if(!rstn)bps_cnt 0;else if(rx_en) beginif(bps_cnt 159)bps_cnt 0;else if(div_cnt bps_clk_16x)bps_cnt bps_cnt 1d1; endelse bps_cnt 0;reg[2:0] r_data[7:0];//二维数据代表八个r_data每个r_data有3位寄存器存储数值。reg[2:0] sta_data;reg[2:0] sto_data;always(posedge clk or negedge rstn)if(!rstn)beginsta_data 0;sto_data 0;r_data[0] 0; //语法规定二维数组赋值要分开赋值r_data[1] 0; r_data[2] 0;r_data[3] 0; r_data[4] 0; r_data[5] 0; r_data[6] 0; r_data[7] 0; endelse if(div_cnt bps_clk_16x - 1)case(bps_cnt) //下面合在一起的写法是允许的0:beginr_data[0] 0; r_data[1] 0; r_data[2] 0;r_data[3] 0; r_data[4] 0; r_data[5] 0; r_data[6] 0; r_data[7] 0;end 5,6,7,8,9,10,11: sta_data sta_data uart_rx;21,22,23,24,25,26,27: r_data[0] r_data[0] uart_rx;37,38,39,40,41,42,43: r_data[1] r_data[1] uart_rx;53,54,55,56,57,58,59: r_data[2] r_data[2] uart_rx;69,70,71,72,73,74,75: r_data[3] r_data[3] uart_rx;85,86,87,88,89,90,91: r_data[4] r_data[4] uart_rx;101,102,103,104,105,106,107: r_data[5] r_data[5] uart_rx;117,118,119,120,121,122,123: r_data[6] r_data[6] uart_rx;133,134,135,136,137,138,139: r_data[7] r_data[7] uart_rx;149,150,151,152,153,154,155: sto_data sto_data uart_rx;default:;endcase reg rx_done;always(posedge clk or negedge rstn)if(!rstn)rx_done 0;else if(bps_cnt 159) beginrx_done 1;endelserx_done 0;//数据接收完成后赋值给data输出always(posedge clk or negedge rstn)if(!rstn)data 0;else if(rx_done)begindata[0] (r_data[0] 4 ) ? 1 : 0; //可换种写法写法如下data[1] (r_data[1] 4 ) ? 1 : 0;data[2] (r_data[2] 4 ) ? 1 : 0;data[3] (r_data[3] 4 ) ? 1 : 0;data[4] (r_data[4] 4 ) ? 1 : 0;data[5] (r_data[5] 4 ) ? 1 : 0;data[6] (r_data[6] 4 ) ? 1 : 0;data[7] (r_data[7] 4 ) ? 1 : 0;end// data[1] r_data[1][2]// 0:3d000// 1:3d001// 2:3d010// 4:3d100// 5:3d101// 6:3d110// 7:3d111 利用第3位的区别给data赋值endmodule 仿真代码 timescale 1ns/1nsmodule uart_byte_rx1_tb();reg clk;reg rstn;reg uart_rx;wire [2:0]blaud_set;wire [7:0]data;wire rx_done;uart_byte_rx1 uart_byte_rx_inst1(.clk(clk),.rstn(rstn),.blaud_set(blaud_set),.uart_rx(uart_rx),.data(data),.rx_done(rx_done));assign blaud_set 3d4;initial clk 1;always #10 clk ~clk;initial beginrstn 0;uart_rx 1;#201;rstn 1;#200;uart_tx_byte(8h5a);(posedge rx_done)#5000;uart_tx_byte(8ha5);(posedge rx_done)#5000;uart_tx_byte(8h86);(posedge rx_done)#5000;$stop;endtask uart_tx_byte;input [7:0] tx_data;beginuart_rx 1;#20;uart_rx 0;#8680;uart_rx tx_data[0];#8680;uart_rx tx_data[1];#8680;uart_rx tx_data[2];#8680;uart_rx tx_data[3];#8680;uart_rx tx_data[4];#8680;uart_rx tx_data[5];#8680;uart_rx tx_data[6];#8680;uart_rx tx_data[7];endendtaskendmodule 仿真波形
http://www.hkea.cn/news/14395290/

相关文章:

  • 织梦做网站简单吗大连网站设计九即问仟亿科技
  • 手机建站平台哪个便宜网站开发项目需求分析说明书
  • 网站主持杭州网站建设优化
  • 可以做mc图片的网站百度百科提交入口
  • 北京网站建设seo公司哪家好网站首页导航栏
  • 南阳网站设计十堰网站建设制作公司
  • 外贸出口是做什么的优化大师官网
  • 网站pv怎么统计做类似淘宝的网站
  • 地方门户网站资讯该怎么做企业微信app下载安装官方最新版
  • 做外贸网站渠道哈尔滨大连工程建设信息网站
  • 化工产品东莞网站建设茂名市建设银行网站
  • 做网站排名优化是怎么回事企业qq官网电话
  • 查询邮箱注册过的网站公共法律知识培训网站
  • ps做网站头部如何在电脑上重新装wordpress
  • 开个捕鱼网站怎么做磁力屋 最好用
  • 网站登录流程图九里微网站开发
  • 昆山市建设局网站6小程序咋做
  • 深圳做网站建设开发网站建设技术公司排名
  • 南京最大网站建设公司高端型网站制作
  • 手机有软件做ppt下载网站有哪些内容wordpress文件权限设置
  • 开源展示型网站做网上招聘哪个网站好
  • 网站名称查询中山开发公司
  • 昆明网站制作的教程联系导师邮件模板
  • 怎么自己建设一个网站枣庄seo推广
  • 网站建设佰首选金手指二五郑州中原区最新消息
  • 网站设计案例方案网站建设文化机构
  • 企业网站栏目设置手机网站全屏显示
  • 成都企业模板网站开发软件开发公司有几家
  • 宁波网站建设公司地址wordpress 短信认证
  • 织梦网站怎么做模板汕头网站推广找谁