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

wordpress 添加统计代码重庆网络seo

wordpress 添加统计代码,重庆网络seo,广东省建设信息网三库一平台,网站建设公司获得风投一、简介 因为我们本次进行串口回环的实验的对象是FPGA开发板和PC端,所以在接收和发送模块中先编写接收模块,这样可以在后面更好的进行发送模块的验证。(其实这里先编写哪个模块)都不影响,这里看自己心情,反…

一、简介

        因为我们本次进行串口回环的实验的对象是FPGA开发板和PC端,所以在接收和发送模块中先编写接收模块,这样可以在后面更好的进行发送模块的验证。(其实这里先编写哪个模块)都不影响,这里看自己心情,反正都可以独立进行仿真。)

        在上一篇文章中,我们对于UART回环实现的总体系统框架做了一盒简单的构建,所以在实现时我们也按照那个框架来。这里就先对于接收模块进行一个设计。

二、接收模块的基本设计

        本次设计我们采用状态机的实现方式,将状态机划分为四个,第一个就是空闲状态,表示设备没有接收数据,第二个是开始状态,表示设备接收到起始位,第三个接收数据过程状态,用于表示设备接收数据的过程,最后一个就是停止位,表示设备接受数据完成。

三、接收模块的波形图绘制

根据上面的状态机,我们可以据此展开波形图的绘制,分别就是对于信号进行打拍,下降沿检测,两个状态,以及bit和波特率、输出数据等的表示。

        使用三级打拍,利用后两拍信号实现下降沿检测,当检测到下降沿,状态机由IDLE进入到START,然后利用波特率计数器计数1bit的起始位,来到DATA,利用波特率计数器和bit计数器用于接收数据,接收完数据之后进入STOP,最后利用波特率计数器计数1bit的停止位,状态又回到初始的IDLE状态。

 四、代码实现

1、设计文件的编写

        新建一个uart_rx.v文件,如下:在代码编写的过程中我们还需要注意的就是UART在进行通信时是串行通信,二我们的设备中数据时并行的,所以在代码中我们还要实现数据串并型的转换。

//---------<模块及端口声名>-------------------------------------------
module uart_rx( input				clk		 ,input				rst_n	 ,input				din_rx   ,output		[7:0]	dout_data,output			    dout_flag	
);								 
//---------<参数定义>------------------------------------------------
parameter CLK_CLY=50_000_000;
parameter BAUD_115200=115200;
parameter BPS_CNT_MAX=CLK_CLY/BAUD_115200; 
parameter     IDLE  =4'b0001,START =4'b0010,DATA  =4'b0100,STOP  =4'b1000;
//---------<内部信号定义>--------------------------------------------
reg           uart_rx_d1;//对异步信号进行同步处理
reg           uart_rx_d2;
reg           uart_rx_d3;reg     [3:0]  state_c;
reg     [3:0]  state_n;
wire            nedge;//起始位下降沿检测
reg     [8:0]  cnt_bps;//波特率计数器
wire           add_cnt_bps;
wire           end_cnt_bps;reg     [2:0]  cnt_bit;//bit数据计数器
wire           add_cnt_bit;
wire           end_cnt_bit;reg     [7:0]  uart_rx_r;//用于存储接收到的数据
reg            rx_flag;//接收数据完成标志位
//第一段:同步时序描述状态转移
always @(posedge clk or negedge rst_n)begin if(!rst_n)beginstate_c <=IDLE ;end else begin state_c <= state_n;end 
end//第二段:组合逻辑判断状态转移条件,描述状态转移规律
always @(*) begincase(state_c)IDLE  : beginif (nedge) state_n=START ;elsestate_n=IDLE ;endSTART : beginif (end_cnt_bps) state_n=DATA ;elsestate_n=START ;endDATA  : beginif (end_cnt_bit) state_n=STOP ;elsestate_n=DATA ;endSTOP  : beginif (end_cnt_bps) state_n=IDLE ;elsestate_n=STOP ;enddefault : state_n=IDLE ;endcase
end
//对uart_rx进行打拍同步处理
always @(posedge clk or negedge rst_n)begin if(!rst_n)beginuart_rx_d1 <= 1'b1;uart_rx_d2 <= 1'b1;uart_rx_d3 <= 1'b1;end  else begin uart_rx_d1 <=din_rx;uart_rx_d2 <=uart_rx_d1;uart_rx_d3 <=uart_rx_d2;end 
end
//nedge下降沿检测
assign nedge=~uart_rx_d2 & uart_rx_d3;//波特率计数器
always @(posedge clk or negedge rst_n)begin if(!rst_n)begincnt_bps <= 9'd0;end else if(add_cnt_bps)begin if(end_cnt_bps)begin cnt_bps <= 'd0;endelse begin cnt_bps <= cnt_bps + 1'b1;end end
end assign add_cnt_bps =(state_c != IDLE) ;
assign end_cnt_bps = add_cnt_bps && (cnt_bps ==(BPS_CNT_MAX-1)) ;//bit计数器
always @(posedge clk or negedge rst_n)begin if(!rst_n)begincnt_bit <= 9'd0;end else if(add_cnt_bit)begin if(end_cnt_bit)begin cnt_bit <= 'd0;endelse begin cnt_bit <= cnt_bit + 1'b1;end end
end assign add_cnt_bit =(state_c == DATA)&& end_cnt_bps ;
assign end_cnt_bit = add_cnt_bit && (cnt_bit ==(8-1)) ;//将串行数据变为并行数据
always @(posedge clk or negedge rst_n)begin if(!rst_n)beginuart_rx_r <= 1'b0;end else if((state_c==DATA)&&(cnt_bps==BPS_CNT_MAX/2-1))begin uart_rx_r<={uart_rx_d3,uart_rx_r[7:1]};//uart_rx_r[cnt_bit]<=uart_rx_d3;end 
end//接收数据完成标志wei
always @(posedge clk or negedge rst_n)begin if(!rst_n)beginrx_flag <= 1'b0;end else if(end_cnt_bit)begin rx_flag<= 1'b1;end else begin rx_flag<= 1'b0;end 
end
assign dout_data = uart_rx_r;
assign dout_flag = rx_flag;
endmodule

2、测试文件的编写

`timescale  1us/1us
module  uart_rx_tb();//********************************************************************//
//****************** Parameter and Internal Signal *******************//
//********************************************************************//
//reg   define
reg             clk          ;
reg             rst_n	     ;
reg             din_rx       ;
wire    [7:0]   dout_data    ;
wire            dout_flag    ;uart_rx uart_rx_inst(/*input            */ .clk	     (clk        ),/*input            */ .rst_n     (rst_n	 ),        /*input            */ .din_rx    (din_rx     ),/*output  reg      */ .dout_data (dout_data  ),/*output  reg [7:0]*/ .dout_flag (dout_flag  )
);
parameter CLOCK_CYCLE=20;
//产生时钟initial clk = 1'b0;always #10 clk = ~clk;//产生激励initial  begin rst_n = 1'b1;din_rx = 1;//空闲为高电平#(CLOCK_CYCLE*2);rst_n = 1'b0;#(CLOCK_CYCLE*20);rst_n = 1'b1;#1002;//模拟UART接收模块的串行输入//起始位din_rx = 0;#(434*CLOCK_CYCLE);//数据位:8'b1011_0011din_rx = 1;//LSB#(434*CLOCK_CYCLE);din_rx = 1;#(434*CLOCK_CYCLE);din_rx = 0;#(434*CLOCK_CYCLE);din_rx = 0;#(434*CLOCK_CYCLE);din_rx = 1;#(434*CLOCK_CYCLE);din_rx = 1;#(434*CLOCK_CYCLE);din_rx = 0;#(434*CLOCK_CYCLE);din_rx = 1;#(434*CLOCK_CYCLE);//停止位din_rx = 1;#(434*CLOCK_CYCLE);#(CLOCK_CYCLE*100);$stop;endendmodule 

五、波形图仿真

 在波形图中我们观察到dout_data的数据和发送数据不一样,这是因为UART是低位先发,所以在波形图中我们看到的输入和输出数据时相反的,这里需要我们注意一下。


文章转载自:
http://rusticism.c7495.cn
http://arjuna.c7495.cn
http://librate.c7495.cn
http://coprology.c7495.cn
http://berserk.c7495.cn
http://tasty.c7495.cn
http://rocketman.c7495.cn
http://pleurotomy.c7495.cn
http://concern.c7495.cn
http://anaesthetise.c7495.cn
http://imperforate.c7495.cn
http://shimonoseki.c7495.cn
http://superstrength.c7495.cn
http://lepidopterist.c7495.cn
http://pharmaceutist.c7495.cn
http://commonsense.c7495.cn
http://catadromous.c7495.cn
http://patroclinous.c7495.cn
http://theocentric.c7495.cn
http://appetiser.c7495.cn
http://pharyngocele.c7495.cn
http://meatworker.c7495.cn
http://candida.c7495.cn
http://veery.c7495.cn
http://leftward.c7495.cn
http://copperbottom.c7495.cn
http://zagreus.c7495.cn
http://mahoganize.c7495.cn
http://inleak.c7495.cn
http://fur.c7495.cn
http://semiautobiographical.c7495.cn
http://acardia.c7495.cn
http://crosspatch.c7495.cn
http://hough.c7495.cn
http://hoarder.c7495.cn
http://unluckily.c7495.cn
http://multivalence.c7495.cn
http://uxoriousness.c7495.cn
http://anautogenous.c7495.cn
http://abigail.c7495.cn
http://polyamine.c7495.cn
http://subcutaneous.c7495.cn
http://featherstitch.c7495.cn
http://gastrea.c7495.cn
http://brachypterous.c7495.cn
http://steppe.c7495.cn
http://ennead.c7495.cn
http://perverted.c7495.cn
http://conjugality.c7495.cn
http://bumpety.c7495.cn
http://compositor.c7495.cn
http://picocurie.c7495.cn
http://penally.c7495.cn
http://serpens.c7495.cn
http://lettercard.c7495.cn
http://chewie.c7495.cn
http://tyrosinase.c7495.cn
http://copulate.c7495.cn
http://wmo.c7495.cn
http://documentalist.c7495.cn
http://classman.c7495.cn
http://acrux.c7495.cn
http://martlet.c7495.cn
http://dispensatory.c7495.cn
http://uncomforting.c7495.cn
http://atlanticist.c7495.cn
http://gazelle.c7495.cn
http://bedstraw.c7495.cn
http://roundup.c7495.cn
http://hoverpad.c7495.cn
http://accompt.c7495.cn
http://coasting.c7495.cn
http://exegetically.c7495.cn
http://anteroom.c7495.cn
http://witching.c7495.cn
http://staig.c7495.cn
http://puddingy.c7495.cn
http://incompleteness.c7495.cn
http://spang.c7495.cn
http://nabbie.c7495.cn
http://hegelianism.c7495.cn
http://kandy.c7495.cn
http://dbms.c7495.cn
http://odense.c7495.cn
http://aberrant.c7495.cn
http://nineteenth.c7495.cn
http://liveware.c7495.cn
http://heliotropic.c7495.cn
http://monospermy.c7495.cn
http://parsley.c7495.cn
http://unessential.c7495.cn
http://humint.c7495.cn
http://enneahedral.c7495.cn
http://gemman.c7495.cn
http://valine.c7495.cn
http://advertiser.c7495.cn
http://cercaria.c7495.cn
http://ecclesiology.c7495.cn
http://jackstay.c7495.cn
http://nought.c7495.cn
http://www.zhongyajixie.com/news/101823.html

相关文章:

  • 网站制作预算杭州专业seo公司
  • 网站建设服务市场细分微信运营方案
  • 禹城网站建设seo推广策划
  • 今日头条网站推广怎么做政府免费培训 面点班
  • 上海网站建设怎么样互联网营销师报名官网
  • 亳州有做网站的吗啦啦啦资源视频在线观看8
  • 什么网站可以做平面设计赚钱专业网站制作
  • 美丽寮步网站建设极致发烧网络营销活动方案
  • 深圳网站建设外贸公司价格智谋网站优化公司
  • discuz 做的网站专业seo排名优化费用
  • facebook海外推广镇江seo优化
  • 广告网站建设案例福建百度代理公司
  • 定制旅游哪个网站好用今日热点新闻事件
  • 网站离线浏览器 怎么做网络推广seo怎么弄
  • 做网站需要什么电脑配置网页推广方案
  • 安康市城乡建设规划局 网站许昌正规网站优化公司
  • 高端网站建设需要多少钱爱站工具网
  • 那个企业网站是用vue做的郑州做网络优化的公司
  • 公司开发个网站怎么做制作网页模板
  • 百度站长平台账号购买百度建站官网
  • 石景山做网站公司自己有域名怎么建网站
  • 发布网站搭建教程南京seo公司
  • 网站开发情况资阳市网站seo
  • 老城网站建设seo优化快速排名技术
  • 国外有趣的网站seo竞价
  • 企业网站怎么做省钱培训机构seo
  • 泉州手机网站制作镇江百度推广
  • 福州做网站设计云南seo简单整站优化
  • 互联科技行业网站seo点击优化
  • 佛山网站建设哪个好点足球积分排行榜最新