IC课程设计报告(4)

2019-03-01 10:17

华中科技大学IC课程设计报告 图7 整体仿真波形

5.2 结论和讨论 5.2.1 结论

通过以上波形,我们可以很清楚看出并行数据依次变为串行数据和并行数据,说明数据可以完成从串口到并口的传递,并且在传递的过程中奇偶校验位是可以可以起作用的。对于任意波特率,该UART均可以实现,其功能简单,但是很实用,可以用在所有要求不是很

高的数据接口中。通过波特发生器、发送器和接收器模块的设计与仿真, 能够较容易地实现通用异步收发器设计, 对于收发的数据帧和发生的波特率时钟频率能较灵活地改变, 而且硬件实现不需要很多资源, 尤其能较灵活地嵌入到FPGA/CPLD的开发中。在EDA技术平台上进行设计、仿真与实现具有较好的优越性。 5.2.2 讨论

毛刺问题解决

毛刺的解决在通常的UART 设计中存在组合逻辑, 当输入的信号由高电平变低电平而其它某个信号由低电平变高电平时, 由于在信号变化的瞬间, 组合逻辑的输出并非同时变化, 而是有先后之分, 将导致输出出现尖脉冲, 即产生毛刺。本设计采用时钟沿(上升沿)触发, 即将组合逻辑输出端通过加到寄存器后输出, 从而避免毛刺的产生[7 ]。

多时钟与亚稳态的解决

在通常的UART 设计中, 由于CPU 时钟与UART 的数据接收、发送时钟是处在不同的时钟域, 时钟频率和相位上存在差异, 导致时序不能满足建立时间和保持时间的要求, 即数据的输出处于不确定状态, 从而出现时序违反(slack<0)和亚稳态。本设计通过采用同步电路设计, 有效地解决时序和亚稳态的问题。

11

华中科技大学IC课程设计报告 6 致谢

感谢在此次课程设计过程中对我悉心指导的刘政林老师和周昭柳助教,以及与我一起愉快合作的同学林少龙和聂高宁。

12

华中科技大学IC课程设计报告 7 心得体会

该课程设计前后历时10个周,虽然耗费了我大量的课外时间,但是从中学到的东西却是不可估量。

一、去除恶习,提升学习能力

自己养成了独立解决问题的习惯,以前总是碰到问题就问寝室的同学,自己从来不思考问题,有时甚至连问题都懒得看。而且之前做类似设计时,都是依靠同组同学,自己很少动手,现在我明白了其实是自己吃亏了,自己以前不紧养成懒惰的习惯,还没学到知识,而且花费了和别人一样多的时间。

二、了解了硬件编程

在做这次课程设计中,我学习到了很多硬件设计方面的知识,课程设计分为:课题分析---Verilog HDL编程---调试程序---仿真波形---综合生成器件。程序的编写应严谨,算法上要做到简单明了,高效。

三、提到自己动手、动脑能力

学会了如何去开始一个课程设计。对于一个课程设计,刚开始时大家不可能上来就知道如何开始,每个人都需要查阅大量相关资料,明白课程设计的目的,所牵扯到的知识,所要使用的软件,语言。我一开始根本不知道UART是什么东西,之前也从来没有听过,所以开始就是一头雾水,上网搜了很多资料,才知道它是一个并口、串口数据转换器,外加一个波特率发生器,然后就开始对它进行功能模块分析,分成了发送和接收两个模块。然后我们组就开始了分工,我做了发送模块,就这样一直下来功能上慢慢得到完善。回过头来看时,UART也就如此,并没有当初那么吓人。

四、加深对课程的了解

我熟练掌握了Modelsim软件的使用,对Verilog HDL语言也更加了解,整个verilog HDL编写过程都是按照C语言要求的结构化,模块化,加上注释的详细清晰,所以也使我们的程序可读行强。

五、培养了团队合作意识

像这种课程设计,由于要自学verilog HDL,以及Modelsim,LeonardoSpectrum

的使用,对初学者来说是个很大的工程,所以我们坚持团队合作,分工明确,有多种方案共同研究拍板,有了问题大家共同探讨,极大提高了开发效率。

总的来说,这次IC课程设计确实学到很多,不仅学到以上六点,而且也锻炼了我遇到问题解决问题的勇气和能力,以及遇到挫折不达目的不罢休的韧性,这在以后的工作与学习中将会非常重要。

13

华中科技大学IC课程设计报告 8 参考文献

[1] ALI L ,SIDEK R ,ARIS I ,et al. Design of a micro2UART forSOCapplication[J] .Computers and Electrical Engineering ,2004 ,30(4) :2572268.

[2]李洋,王森章. 使用System C 设计UART IP 核[J ] . 微型电脑应用,2004 ,20(4) :46248. [3] JOE C.串行通信编程指南[M] . 北京:北京科海培训中心,1990.

[4] Intel 82510 Asynchronous Serial Controller [R] . Data sheet of Intel Corporation ,1989 ,40279. [5] NORHUZAIMIN J ,MAIMUN H. The design of high speed UART [ C] ∥Asia2Pacific Conf on Applied Electromagnetic.Malaysia ,2005 :3062310.

[6]李秋菊, 杨银堂, 高海霞.基于Verilog HDL的UART IP的设计,1003-253X(2007)06-520- 04

[7]尧勇仕,顾晓峰,于宗光,韩郑生.基于ASIC/SoC的UART核的设计,2008,02- 2- 0092-02

14

华中科技大学IC课程设计报告 9 附录

本部分为整个工程的源代码 //波特率发生器div.v `timescale 1 ps/ 1 ps

module div(in_50MHz,in_nclr,out_1Hz);

input in_50MHz,in_nclr; //定义输入时钟为50MHz,in_nclr为清0信号 output out_1Hz; //输出为1Hz wire in_50MHz,in_nclr;

reg out_1Hz=0; //输出初始电平为低电平 reg [26:0]Q; //计数器

always @(posedge in_50MHz or negedge in_nclr) begin

if (!in_nclr) begin

Q<= 27'b000_0000_0000_0000_0000_0000_0000; //开始时置0 end

else if (Q==12) begin

Q <=27'b000_0000_0000_0000_0000_0000_0000; /*如果Q增加到12,就置0, out_1Hz<= ~out_1Hz;输出时钟信号翻转 */ end

else Q <= Q + 1'b1; //上述条件都不满足时,Q自增 end

endmodule

//UART发送端,send.v `timescale 1 ps/1 ps

module send(datain,clk,reset,idle,data_out,data_tran,data_tran1); input [7:0]datain; //数据输入端,待发送的8位数据

input clk,reset,idle; //reset重置UART,idle=1禁止输入,为0允许输入 output data_out; //串行数据输出 output data_tran; output data_tran1;

reg data_tran; //工作标志位,串行数据输出完毕为0,工作时为1 reg data_tran1; //并串转化标志位,转化时为0,转化完为1 reg data_out;

reg [7:0]data_save; //存储从datain送来的并行数据

reg [7:0]data_btoc; //开始并串转化时把数据从data_tran送到data_tran1,在data_tran1中转换成串行

reg parity; //奇偶校验位,接收端检错

15


IC课程设计报告(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:《紫藤萝瀑布》同步练习

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: