基于Verilog HDL的串行ADC控制电路设计与总结报告_veriloghdl电路设计
基于Verilog HDL的串行ADC控制电路设计与总结报告由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“veriloghdl电路设计”。
基于Verilog HDL的串行ADC控制电路
设计与总结报告
题目名称: 报告人 : __ 学院 : 专业 : 班级 : 学号 :
制作日期: __
摘要……………………………………………………………………...1
第一章 串行ADC控制控制电路的功能介绍及Verilog HDL简介
...................................................................................................................3 1.1串行ADC控制控制电路的功能…………………………..…..3 1.2Verilog HDL简介……………………………………………………4
第二章组成模块简介……………………………………………..5
2.1组成模块…………………………………………………………….6(1)、状态机……………………………………………………6(2)、锁相环……………………………………………………8(3)、累计器……………………………………………………10(4)、多路选择器………………………………………………12 第三章 模拟仿真….…………………..……………………………….13 总结结论………………………………………………………………14 参考文献………………………………………………………………15
基于Verilog HDL的串行ADC
控制电路设计摘要
Verilog HDL的串行ADC控制电路设计,是使用高速10位逐次逼近式模数转换器(ADC)芯片TLV1572,用Verilog HDL编程语言编写状态机按一定周期采样转换模拟信号。在Quartus2软件上完成顶层电路设计、状态机、锁相环、累加器、译码器、多路选择器等编程和封装。各个模块完成不同的任务,合在一起就构成了Verilog HDL的串行ADC控制电路设计,软件模拟直接在Quartus2上进行。
在此程序中关键是用于状态机,其中状态机的优势有以下几点:(1)、高效的顺序控制模型,状态机克服了纯硬件数字系统顺序方式控制不灵活的缺点。状态dat0是对1572的初始化、状态dat1是打开1572的片选信等,一直到采集数据输出数据。
(2)容易利用现成的EDA工具进行优化设计。由于状态机的构件简单,其中用宏模块PLL将20MHz的时钟进行分频得到想要的时钟周期。
(3)性能稳定。状态机容易构成性能良好的同步时序逻辑模块。(4)高速性能。状态机载高速通信和高速控制方面,有着巨大的优势。
第二章 串行ADC控制控制电路的功能介绍及Verilog HDL简介
1.1串行ADC控制控制电路的功能
在我们的信息时代日益更新的生活,AD、DA转换时刻进行着,而这些功能的实现,均以多半是以MCU或MPU的控制芯片实现的,但CPU的不稳定和低时钟严重影响着转换的效率,因此,研究状态机控制转换芯片有着现实意义。
此次设计与利用状态机就是为了了解不基于各种CPU而能稳定、高效的进行工作,从而学会编程。通过它也可以进一步学习掌握各种逻辑电路与时序电路的原理与使用方法。1.2 Verilog HDL简介
Verilog HDL是一种硬件描述语言(HDL:HardwareDiscription Language),是一种以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。Verilog HDL和VHDL是目前世界上最流行的两种硬件描述语言,都是在20世纪80年代中期开发出来的。前者由Gateway Design Automation公司(该公司于1989年被Cadence公司收购)开发。两种HDL均为IEEE标准。第二章组成模块简介 2.1组成模块 顶层电路图:
顶层电路设计、状态机、锁相环、累加器、译码器、多路选择器等编程和封装
(1)、状态机
基于Verilog HDL语言编写的状态机是本系统的核心,犹如一个稳定、高效、单一的控制CPU,其中代码如下:
module TLV1572(CS,CLK,SCLK,FS,SDI,DO,RST);input SDI;input CLK;input RST;output CS,SCLK,FS;//CS 片选,FS当接口至微处理器时,FS输入连接至Vcc output [9:0]DO;//串行数据输出
reg [6:0] next,now;reg [6:0] dat;reg [9:0] DO;reg CS,SCLK;wire FS;parameter dat0=6'd0;parameter dat2=6'd2;parameter dat3=6'd3;parameter dat4=6'd4;parameter dat6=6'd6;parameter dat7=6'd7;parameter dat8=6'd8;parameter dat10=6'd10;parameter dat11=6'd11;parameter
dat12=6'd12;parameter dat14=6'd14;parameter dat15=6'd15;parameter
dat16=6'd16;parameter dat18=6'd18;parameter dat19=6'd19;parameter
dat20=6'd20;parameter dat22=6'd22;parameter dat23=6'd23;parameter
dat24=6'd24;parameter
dat1=6'd1;parameter dat5=6'd5;parameter dat9=6'd9;parameter dat13=6'd13;parameter
dat17=6'd17;parameter
dat21=6'd21;parameter
dat25=6'd25;parameter dat26=6'd26;parameter dat27=6'd27;parameter
dat28=6'd28;parameter
dat29=6'd29;parameter dat30=6'd30;parameter dat31=6'd31;parameter
dat32=6'd32;parameter
dat33=6'd33;parameter dat34=6'd34;parameter dat35=6'd35;parameter
dat36=6'd36;parameter
dat37=6'd37;parameter dat38=6'd38;parameter dat39=6'd39;parameter dat40=6'd40;
always@(posedge CLK or posedge RST)begin if(RST)next
dat0 : begin CS
dat5 : begin CS
dat16 : begin CS
dat16: begin DO[9]
dat26: begin
dat28: begin
dat30: begin
dat32: begin dat34: begin endcase end aign FS=1'b1;endmodule
DO[4]
封装后
(2)、锁相环
利用软件中的宏模块分频电路图如下
功能设计图(3)、累计器
累加器用于选通数码管,用于点亮数码管,代码如下: module CNT10(CLK,Q);input CLK;output [2:0] Q;reg [2:0] Q1;aign Q = Q1;always @(posedge CLK)begin Q1
(4)、多路选择器
第三章 模拟仿真
总结结论
通过此次设计研究,最终完成了 串行ADC的的设计与制作。在整个设计过程中,我们组从各个模块的思路设计到实际程序编写,从点到面。在出现与处理问题的过程中,不断提升自己处理细节问题的能力,虽然遇到了很多的困难但最终还是基本上完成了设计达到了预期的效果。而更重要的是通过系统设计这项项目,使我们对于设计整体流程有了更加明晰的感受,对于今后的深入学习与应用奠定了基础。在今后的学习中,我们将继续加强EDA理论知识和Verilog语言的熟练掌握,争取更大的突破。
最后,感谢老师这学期的辛勤授课,您的敬业精神值得很多老师和学生学习,通过一学期的课程学习也是我进步很多。谢谢您王老师!
参考文献
1、《EDA技术实用教程》
2、《Verilog HDL状态机编写技巧》
3、《基于Verilog的状态机设计》等