![RS232设计报告和verilog代码-含testbench-可以直接运行_第1页](http://file1.renrendoc.com/fileroot_temp2/2021-2/5/f1817139-bbda-43b5-99f4-bd877a256bed/f1817139-bbda-43b5-99f4-bd877a256bed1.gif)
![RS232设计报告和verilog代码-含testbench-可以直接运行_第2页](http://file1.renrendoc.com/fileroot_temp2/2021-2/5/f1817139-bbda-43b5-99f4-bd877a256bed/f1817139-bbda-43b5-99f4-bd877a256bed2.gif)
![RS232设计报告和verilog代码-含testbench-可以直接运行_第3页](http://file1.renrendoc.com/fileroot_temp2/2021-2/5/f1817139-bbda-43b5-99f4-bd877a256bed/f1817139-bbda-43b5-99f4-bd877a256bed3.gif)
![RS232设计报告和verilog代码-含testbench-可以直接运行_第4页](http://file1.renrendoc.com/fileroot_temp2/2021-2/5/f1817139-bbda-43b5-99f4-bd877a256bed/f1817139-bbda-43b5-99f4-bd877a256bed4.gif)
![RS232设计报告和verilog代码-含testbench-可以直接运行_第5页](http://file1.renrendoc.com/fileroot_temp2/2021-2/5/f1817139-bbda-43b5-99f4-bd877a256bed/f1817139-bbda-43b5-99f4-bd877a256bed5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、RS232接口数据转发协议实验报告1. 设计要求 设计RS232接口数据转发协议,将8位并行数据转发为RS232协议的串口数据发送出去。entity rs232port ( clk: in std_logic; - 16MHz输入时钟 rdy: in std_logic; -数据准备好信号, 1个时钟周期的正脉冲 data: in std_logic_vector(7 downto 0); -要发送的并行数据 bps: in std_logic_vector(1 downto 0); -波特率设置 - 00:4800bps 01:9600 10:19200 11:38400 parity :
2、in std_logic; -奇偶校验控制,0:奇校验 1:偶校验 d_out: out std_logic); -串行数据输出end rs232;协议要求: (1) 波特率:4800/ 9600/19200/38400可选(2) 8位数据位,1位停止位,偶校验可选设计要求:(1)采用VHDL或Verilog语言设计上述电路;(2)写出测试激励文件,并仿真;(3)分析仿真结果,并撰写设计报告.(4)提交完整的纸质设计报告并附源代码.2.接口协议要求一个字符一个字符传输,每传一个字符总是以起始位开始,以停止位结束,字符之间没有固定时间间隔要求。波特率可在4800、9600、19200、38400
3、中选择。每一个字符前面都有一位起始位(低电平),字符本身有5-7位数据位,接着是一位校验位,最后是一位停止位。停止位和空闲位规定必须为高电平3.系统结构分析本设计采用自顶向下的分析方法,结合端口要求和协议要求,将设计分为顶层模块和底层模块。顶层模块框图如下:底层模块主要又包含两个部分,时钟分频和串行输出。时钟分频模块结构图如下: 串行输出模块结构图如下:顶层模块和底层模块的关系如下:4.实验结果分析在使用verilog HDL实现各模块的过程中,采用自底向上的实现方法,将各个模块逐一实现后进行编译、仿真。编译结果如下: 时钟分频模块仿真结果如下: 串行输出模块仿真结果如下: 顶层模块仿真结果如
4、下: 虽然在全队的努力之下基本实现了设计要求,但是由于能力的有限,设计仍有很多不足之处,为未来更进一步的优化指明方向。1.时钟频率不够精确,如果需要十分精确的时钟频率,需要采用模拟锁相环电路使输入时钟扩大三倍,然后分频方能实现。2.设计实现依赖于前级,要求本级数据发送完成且finish信号高电平有效之后才能再次使rdy信号有效。3.如若后级发现数据有错,无法实现数据重发的功能。4.在测试平台的编写过程中,只是随机地选取了两组数据进行验证,未能实现所有输入数据的覆盖。实验verilog代码:module clk_select(rst,clk_in,bps,clk_out);input rst,c
5、lk_in;input 1:0bps;output reg clk_out;reg 11:0 cnt;reg 11:0 cnt_end;always(bps or rst)beginif(rst) clk_out=0;else case (bps) 2b00 : cnt_end=1666; 2b01 : cnt_end=833; 2b10 : cnt_end=416; 2b11 : cnt_end=208; default : cnt_end=208; endcase endalways(posedge clk_in or negedge rst)begin if(rst) cnt=0; el
6、se if(cnt=cnt_end) cnt=0; else cnt=cnt+1;endalways(posedge clk_in or negedge rst)beginif(cnt=cnt_end) clk_out=clk_out;endEndmodulemodule clk_select_testbench;reg rst,clk_in;reg 1:0 bps;wire clk_out;initialbegin$monitor (clk_out=%b,clk_out);endinitialbegin#0 rst=1b0;#20 rst=1b1; bps=2b11;# bps=2b00;e
7、ndinitialbegin#0 clk_in=1b0;forever #10 clk_in=clk_in;endclk_select inst1(.clk_in(clk_in),.rst(rst),.bps(bps),.clk_out(clk_out);Endmodulemodule serial_output (clk,rst,data_in,rdy,output_enable,parity_select,finish,data_out);input rst,clk,rdy,output_enable,parity_select;input 7:0 data_in;output data_
8、out,finish;reg finish;reg data_out;reg verify;reg 3:0 count;initial begin finish=1; endalways(posedge clk or negedge rst or posedge rdy) if (!rst) count=0; else if (!output_enable) count=0; else if (rdy) count=0; else count=4b1011)?4b1011:count+1; always(posedge clk ) if (parity_select) verify=(data
9、_in0+data_in1+data_in2+data_in3+data_in4+data_in5+data_in6+data_in7); else if (!parity_select) verify=!(data_in0+data_in1+data_in2+data_in3+data_in4+data_in5+data_in6+data_in7);always(posedge clk or negedge rst or posedge rdy) if (!rst) begin data_out=1; finish=0; end else if (rdy=0) case(count) 4b0
10、000 : data_out=1; 4b0001 : data_out=0; 4b0010 : data_out=data_in0; 4b0011 : data_out=data_in1; 4b0100 : data_out=data_in2; 4b0101 : data_out=data_in3; 4b0110 : data_out=data_in4; 4b0111 : data_out=data_in5; 4b1000 : data_out=data_in6; 4b1001 : data_out=data_in7; 4b1010 : data_out=verify; 4b1011 : be
11、gin data_out=1; finish=1; end default : data_out=1; endcasealways(posedge count) if(4b0001=count=4b1010) finish=0; else if (count=0) finish=1;endmodule module serial_output_testbench;reg clk,rst,rdy,output_enable,parity_select;reg 7:0 data_in;wire data_out,finish;initialbegin$monitor (data_out=%b,da
12、ta_out);endinitialbegin #0 rst=1b0; rdy=1b0; output_enable=1b0; data_in=8b; parity_select=0; #20 rst=1b1; rdy=1b1; output_enable=1b1; parity_select=1; #50 rdy=1b0; #400 rdy=1b1; data_in=8b; parity_select=0; #50 rdy=1b0;endinitialbegin #0 clk=1b0; forever #10 clk=clk;endserial_output inst1 ( .clk(clk
13、), .rst(rst), .data_in(data_in), .rdy(rdy), .output_enable(output_enable), .parity_select(parity_select), .finish(finish), .data_out(data_out);endmoduleModulers232_top(rst,clk,rdy,data_in,bps,parity,data_out,output_enable,finish);input clk,rst,rdy,parity,output_enable;input 1:0 bps;input 7:0 data_in
14、;output data_out,finish;wire clk_trans;clk_select inst1( .clk_in(clk), .rst(rst), .bps(bps), .clk_out(clk_trans) );serial_output inst2( .clk(clk_trans), .rst(rst), .data_in(data_in), .rdy(rdy), .output_enable(output_enable), .parity_select(parity), .finish(finish), .data_out(data_out) );endmodulemod
15、ule rs232_top_testbench;reg rst,clk,rdy,parity,output_enable;reg 7:0 data_in;reg 1:0 bps;wire finish,data_out;initialbegin$monitor (data_out=%b,finish=%b,data_out,finish);endinitialbegin#0 rst=1b0; rdy=1b0; output_enable=1b0; parity=1b0; data_in=8b; bps=2b00;#10000 rst=1b1; bps=2b11; rdy=1b1; parity=1b1; output_enable=1b1;#50 rdy=1b0;# bps=2b01; rdy=1b1; parity=1b0; output_enable=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 机电设备销售员工工作总结
- 2025-2030全球无线智能振动监测传感器行业调研及趋势分析报告
- 2025-2030全球FinFET 3D晶体管行业调研及趋势分析报告
- 2025-2030全球无人潜水器用于海上石油和天然气行业行业调研及趋势分析报告
- 2025-2030全球手机支付安全行业调研及趋势分析报告
- 2025年全球及中国纳米粒度及Zeta电位分析仪行业头部企业市场占有率及排名调研报告
- 2025-2030全球高效粘泥剥离剂行业调研及趋势分析报告
- 2025区域代理合同模板范本
- 供水工程承包合同
- 音响设备购销合同范本
- 输变电工程监督检查标准化清单-质监站检查
- 2024-2025学年北京海淀区高二(上)期末生物试卷(含答案)
- 【超星学习通】马克思主义基本原理(南开大学)尔雅章节测试网课答案
- 2024年中国工业涂料行业发展现状、市场前景、投资方向分析报告(智研咨询发布)
- 化工企业重大事故隐患判定标准培训考试卷(后附答案)
- 工伤赔偿授权委托书范例
- 食堂餐具炊具供货服务方案
- 员工安全健康手册
- 2024化工园区危险品运输车辆停车场建设规范
- 自然科学基础(小学教育专业)全套教学课件
- 华为客服制度
评论
0/150
提交评论