2022数字系统设计与VHDL课程大作业

2024-04-13

2022数字系统设计与VHDL课程大作业(精选3篇)

篇1:2022数字系统设计与VHDL课程大作业

数字系统设计与VHDL课程大作业

具体要求

一、总体要求:

1. 本课程为专业必选考查类课程,以大作业加平时成绩的形式给定最终成绩。

2. 每班六个题目,每4-5为一组,自由组合,分工合作。10月26日上课

前请各班上交分组及组长情况表。

3. 所有作业需完成VHDL核心代码的设计,并采用QuartusII进行相关仿

真或平台实现,否则全组不及格。

4. 各小组推选一人于第十周(11月5日和9日)上讲台讲解题目设计思路、源代码分析、仿真结果及演示。

5. 各小组组长于11月30日前到老师处汇报题目的完成情况,并接受考核。

6. 每名同学于11月30日前提交一份大作业报告,并由班长统一送交老师。

二、大作业题目:

1. 频率计设计(平台实现)

1)

2)

3)

4)能对输入的方波信号频率进行采样; 采样频率范围为0~999999Hz,以1Hz为单位进行显示; 采用六个七段数码管显示当前采样的频率值; 本电路系统输入时钟为6MHz。

2. 方波发生器设计(仿真实现)

1)

2)

3)系统的输入时钟为6MHz; 系统输出频率为对系统时钟的1~32分频;(5位二进制输入); 系统输出频率的占空比可调,分为25%、50%、75%三档;(采用2位二进制

位输入控制)。

3. 竞赛抢答器设计(平台实现)

1)

2)抢答器的输入路数为8路;(8位二进制输入)当主持人宣布开始(按下某一键时为有效),抢答时当某一方先按下按键,其

他键则失效;

3)

4)

5)用1个七段数码管显示抢中的路编号; 系统复位键按下后,进行下一轮抢答; 系统的输入时钟为6MHz。

4. 交通灯控制系统设计(平台实现)

1)交叉路口为十字路口;

2)

3)每路口设直行、左转、右转的方向指示灯; 每个方向指示灯有三种颜色,即红、绿、黄三色。为简化设计,右转指示灯常

绿;黄灯闪动时间间隔为0。5S,持续时间自定义。

4)

5)每路口需用两个数码管显示允许通行或禁止通行的时间; 系统的输入时钟为6MHz。

5. 点阵字符显示控制器设计(仿真实现)

1)

2)

3)用16*16点阵的发光二极管显示字符; 可显示字符为0~9的数字字符与A~F英文字母; 输入为四位二进制矢量。

6. 万年历及电子钟设计(平台实现)

1)

2)

3)

4)能显示年、月、日、时、分、秒、星期,共需15个数码管; 年、月、日、时、分、星期均需可调; 系统默认时间为2000年01月01日00时00分00秒星期6; 系统输入时钟为6MHz。

三、大作业报告要求:

1. 题目功能分析;

2. 总体模块划分;

3. 代码实现;

4. 仿真结果;

5. 设计心得、体会;

6. 报告采用统一的A4封面,其中1、2、5项必须为手写,3、4项为打印。

7. 网络工程专业不再进行期末考试,期终成绩以作业测试、讲解、报告综

合评定,计算机专业还需要进行闭卷考试,但作业测试、讲解、报告占主要部分。

篇2:2022数字系统设计与VHDL课程大作业

关键词:DDS,VHDL,Max+PlusⅡ,流水线

20世纪60年代末,伴随数字集成电路与微电子技术的发展出现了直接数字频率合成器(DDS),它与传统的频率合成技术相比较,具有极高的频率分辨率与稳定度、转换时间短、输出信号的频率、相位、幅度可控等诸多优点,易于实现调频、调相、调幅等多种信号,因而得到广泛应用。本文从DDS的电路结构与具体参数的设计出发,详细论述了DDS的VHDL语言实现过程,给出了频率控制字长为24位的完整的VHDL代码。

1 DDS的工作原理

目前,比较广泛使用的一种DDS设计方案是查找法,如图1所示,其基本工作原理是通过频率控制字的累加与相位控制字相加形成访问波形表的地址,然后通过地址映射,输出波形的幅度信息给DAC电路,再通过DAC中的LPF,得到相应的波形信号。

以正弦信号合成为例,设输出信号的频率为fo,在不考虑初相位的条件下,其瞬时相位:θ=2πfot,一个Tclk内,相位的变化总量为:

与Δθ相对应的N位量化值AΔθ=Δθ/(2π/2N)=2N·fo/fclk,通过控制AΔθ的取值,就可控制输出信号的频率fo与最小分辨率Δfo=fclk/2N。

实际当中,确定相位量化字长N的大小,并不是任意的,它既取决于上面两个因素,也与量化信噪比有关。文献[7]给出了较为详细的讨论。如正弦波合成时,相位量化的信噪比与幅度量化的信噪引起的总信噪比估计为:

其中D为正弦信号振幅量化字长。

相位量化字长N越大,所需的查表法空间越大,因此设计DDS时,要合理选择N,D的大小。当N,D取定后,应根据波形特点,进一步采用ROM压缩技术减小所需单元的数量。如合成正弦信号时,可根据信号的对称性仅存储的幅度值这样可以将大小压缩为原来的1/4。

2 VHDL语言实现

程序设计包含三个部分:数据输入、相位累加和ROM查找,分别由三个进程实现。data in进程:在WR=0并CLK=1时,写频率控制字;phase add进程:在CLK上升沿,做相位累加,并取累加结果的高12位的低10位用于ROM表的地址,其最高位与次高位分别送s 1和s 2用来正弦相位区间控制;lookfor rom进程:在CLK上升沿,按照phase add进程提供的地址寻址,并对寻址结构按s 1和s 2所划分的四个象限进行数据处理,并将处理的结果输出。相位控制的具体操作如表1所示。

说明:x是地址x按位取反;[x]是取地址为x单元的数据再取补。

下面程序为正弦DDS的VHDL实现。相位量化字长为24 b,振幅量化字长采用10 b。完整的程序代码如下:

程序中的component dds rom元件可通过Max+PlusⅡ的File菜单中的MegaWizard Plug-in Manager创建一个LPM ROM,名为dds rom.vhl,该元件创建前,需按照图2所示的mif文件格式创建一正弦波形数据文件(如名为:sin data.mif),该数据文件存有正弦1/4周期波形数据。

由于波形数据文件中数据较多,可通过C语言编程生成数据,生成正弦波形采样数据文件的C程序代码如下:

将这个C语言程序存为singen.c,编译链接后生成singen.exe,即可在DOS命令行下执行:

就可以生成.mif文件中的波形数据。

3 结语

文中有关代码均是通过Max+PlusⅡ10.2编译通过的,读者可稍加修改就可以用于自己的实际系统设计。相位累加器可采用流水线型超前进位加法器实现,同时可增加同步相位取模器以改善DDS的性能,或采用算法代替波形的使用。

参考文献

[1]张卫杰,吴琼之.新一代CPLD及其应用[J].电子技术应用,2003,29(7):63-66.

[2]查光明,熊贤祚.扩频通信[M].西安:西安电子科技大学出版社,1992.

[3]赵鑫.VHDL与数字电路设计[M].北京:机械工业出版社,2005.

[4]Stefan Sjoholm Lennart Lindh.用VHDL设计电子线路[M].边计年,薛宏熙,译.北京:清华大学出版社,2000.

[5]罗苑棠.CPLD/FPGA常用模块与综合系统设计[M].北京:电子工业出版社,2007.

[6]罗朝霞,高书莉.CPLD/FPGA设计与应用[M].北京:人民邮电出版社,2007.

[7]张冠百.锁相与频率合成技术[M].北京:电子工业出版社,1995.

[8]张华桦.基于FPGA的直接数字频率合成技术设计与实现[J].国外电子元器件,2003(12):30-35.

[9]张华桦.基于VHDL编程的DDS设计[J].舰船电子对抗,2007,30(2):102-105.

篇3:2022数字系统设计与VHDL课程大作业

现代电子设计技术的核心是电子设计自动化技术,即EDA技术。利用EDA技术,电子设计师可以方便地实现IC设计、电子电路设计和PCB设计等工作,使电子系统设计更为简化和方便。它是以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要方式,其中,VHDL语言已成为系统描述的国际公认标准,得到众多EDA公司的支持,越来越多的硬件设计者使用VHDL描述数字系统,综合效率和效果较好[1]。

本文详述使用VHDL语言实现对数字钟的层次化设计,将文本编辑和图形编辑两种方式混合使用,设计和实现数字钟对时、分、秒的计时。显示满刻度为23 时59 分59 秒,再来一个脉冲,重新开始计时,最终通过将CPLD/FPGA开发系统上实现下载仿真。

1 系统设计框架

数字钟是一种用数字电子技术实现秒、分、时计时的钟表,实际上就是对标准频率( 1 Hz) 计数的计数电路[2]。

本文采用自顶向下的设计方法,底层文件为实现功能的模块设计,在文本编辑器中完成,各模块由VHDL语言编程实现。底层模块包括分频模块、分/秒模块、时模块及动态扫描模块组成,具体设计框图如图1 所示。顶层文件是在图形编辑器中通过添加每个模块的逻辑符号,根据其逻辑关系进行连线,最终形成,如图2 所示,FREQUENCY是分频模块,SECOND_FEN是分/秒模块,HOUR是小时模块,DISPLAY为译码模块,SAOMIAO为扫描间隔模块,DONG_DISPLAY为扫描显示模块[3]。

分频模块: 输入脉冲信号由石英晶体振荡器产生,由于晶振输出频率较高,为了得到1 Hz的秒信号,需要对振荡器的输出信号进行分频,作为数字钟的时间基准,然后经过分频器输出标准的秒脉冲;

秒模块: 振荡信号经分频模块后产生秒信号,激励秒模块进行加1 计数,计数60 次开始向分模块产生进位;

分模块: 秒模块的进位脉冲作为分模块的输入,计数60 次开始向时模块产生进位;

时模块: 小时模块接受到分模块产生的进位开始计数,计数24 次归0;

译码显示模块: 将秒、分、时的计数通过数码管进行译码显示,由七段译码器完成。

图2 给出了该系统顶层设计文件。

2 底层文件设计方案

2. 1 分频模块

在数字逻辑电路设计中,分频器是一种基本电路,通过分频可以得到需要的时钟频率。常见的分频器有二进制分频器、偶数次分频器、奇数次分频器、占空比可调的分频器和小数分频器。分频的方法很多,最常见的就是利用加法器对时钟信号进行分频,当然也可以利用一些专用的电路结构来实现。

N分频器是指产生的输出信号频率fout为输入信号频率fin的1 /N,即:

分频的实现是通过对输入信号脉冲计数,每计数N/2 个脉冲,输出信号反相而的得到的。

本实验平台上有22. 118 4 M ,10 M晶振,4 M( 可分频至1 000 Hz) 晶振,分别接在CPLD芯片的管脚P80,P183,P184,为实验器提供时钟信号。本文选择采用对10 M时钟信号进行脉冲法计数,计到4 999 999 次,输出信号反相,即可产生频率为1 Hz的输出信号。具体分频思路如图3( a) 所示,检查编译后,生成的逻辑符号如图3( b) 所示。

2. 2 分/ 秒计数模块

分/秒计数为60 进制的计数,分为个位和十位,其中,十位实现的是0 到5 的计数,个位是0 到9 的计数,在计数到59 时,产生进位信号,如图4 所示。

2. 3 时计数模块

时信号的计数规律是当十位为0 和1 时,个位计数为0 ~ 9,个位计数到9,则往十位进位,个位归0; 而十位计数到2 时,个位只能为0 ~ 3,计数到3,则十位和个位共同归0,具体设计思路如图5( a) 所示,所生成的逻辑符号为图5( b) 所示。

2. 4 译码模块

将秒计数、分计数、时计数编译成数码管的段码,送给动态扫描模块,供数码管显示。秒/分计数的个位共可显示0~9的数,需用4位二进制表示;而秒/分计数的十位可显示的是0~5的数字,需用3位二进制表示;而时计数的个位与十位只需2位二进制表示;所以会有三种译码模块,如图6所示。

2. 5 动态扫描模块

动态扫描模块中包括扫描间隔模块和扫描显示模块,如图7所示。其中,扫描间隔模块作用是产生扫描时间,控制扫描模块的扫描时间;扫描显示模块即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像每个数码管同时都在显示[4]。

本平台有10 个数码管( SEG1 ~ SEG10) ,采用共阴极8 段LED显示。 其中,SEG1—SEG6 采用静态显示方式,SEG7—SEG10 采用动态扫描显示方式。所以本文选择秒的显示采用静态显示方式,时、分的显示采用动态扫描显示[5,6]。

3 结束语

本文将按上述的设计思路编程、下载、仿真,开发环境为MAXPLUSII,检查编译,分配管脚,生成可以下载的后缀名为. pof的文件。选择的目标器件为EP1K30QC208 - 3,为ACEX1K系列,在KHF - 1 型CPLD/FPGA实验开发系统中实现仿真,最终可以实现时、分、秒正常显示。

摘要:EDA技术的关键就是用硬件描述语言来描述数字系统,简化了数字系统的设计过程。利用VHDL语言描述数字钟系统,采用自顶向下的方式设计,详述了数字钟底层文件中每个模块的设计思路,及顶层文件的生成,并通过下载仿真,最终实现了系统的设计,具有一定的可行性。

关键词:EDA技术,VHDL语言,数字钟,逻辑电路图,层次化设计

参考文献

[1]廖超平.EDA技术与VHDL实用教程[M].北京:高等教育出版社,2007.

[2]李彦强,赵淑明.用VHDL语言实现数字钟设计[J].山西电子技术,2014,42(5):38-39.

[3]纪欣然,丁一,梁致源.基于FPGA的多功能数字钟设计[J].电子设计工程,2012,19(16):177-179.

[4]刘艳昌,王娜.基于FPGA的多功能数字钟设计[J].河南科技学院学报:自然科学报,2013,41(2):89-94.

[5]郭小芳,佘明辉.基于单片机的多功能数字钟系统设计与分析[J].电子技术,2012,39(6):35-38.

上一篇:三同时验收规定下一篇:清正廉洁心得体会201