基于QUARTUSII的FPGA波形发生器设计与实现

版权申诉
0 下载量 67 浏览量 更新于2024-08-11 收藏 221KB PDF 举报
FPGA波形发生器设计基于QUARTUSII 本文档将详细介绍基于QUARTUSII的FPGA波形发生器设计,涵盖正弦波和不同占空比矩形波信号发生器的设计方法、QUARTUSII软件VHDL语法输入设计的全过程、数据存储及传递的过程。同时,本文档还将介绍设计要求、方案设计、信号发生器组成框图、输出波形理论值、设计原理和电路图等。 一、设计目标 本实验的设计目标是基于EDA/SOPC实验平台上的FPGA及DAC,产生一定频率的正弦波和不同占空比矩形波信号,能通过键盘控制输出信号,并测量输出信号的频率和输出电压,计算输出频率与原设计频率的误差。 二、设计要求 本实验要求基于EDA/SOPC实验平台上的FPGA及DAC,产生一定频率的正弦波和不同占空比矩形波信号,能通过键盘控制输出信号,并测量输出信号的频率和输出电压,计算输出频率与原设计频率的误差。 三、方案设计 信号发生器组成框图为: 图1组成框图 设计的方案: 1. 制作正弦波.mif文件 A. 采用excel下拉自动累加、逻辑运算功能生成512位的正弦波数据。将得到的excel文件另存为“Unicode文本(*.txt)”文件。 B. 打开quartus2,新建一个TXT文件(file-new-otherfile-txt文件),将MIF文件的格式说明拷贝过来,再得到的TXT文本文件中的数据全部复制到begin与end中间,另存为“.mif”。 2. 将电路分为4大模块,第一个模块是分频电路;第二、三个模块是正弦波和矩形波发生电路;第四个模块是选择输出模块。 3. 输出波形理论值: A. 每个时钟信号上升沿,分频电路自动累加1。当分频输入为“11111”时,输出频率最大,为外部时钟频率的1/2。 B. 储存一个周期的信号的储存器是512位,每来一个时钟信号从一个储存单元取一个数据。 所以输出的最大频率为fin(输入频率)/512*2;同理可知输出的最小频率为fin(输入频率)/512*32*2。 四、设计原理和电路图 (1)分频电路 该电路的根本任务是对输入的时钟信号进行分频。实现这一功能可用累加器、锁存器和比较器等。在时钟信号上升沿时立即对锁存器的数据(cnt5)进行累加。同时还必须注意,检查cnt5是否为“11111”。当cnt5为“11111”时,对输出频率进行取反。同时对cnt5进行更新。 分频电路Vhdl设计 lib