EDA实验-----正弦信号发生器的设计(Quartus II )

news2025/1/11 22:55:45

目录

一、实验目的

二、实验仪器

三、实验原理

四、实验内容

五、实验步骤

六、注意事项

七、实验过程(操作过程)

1.定制LPM_ROM模块

2.定制LPM_ROM元件

 3.计数器定制

4.创建锁相环

5.作出电路图

6.顶层设计仿真


 

一、实验目的

  1. 学习使用Verilog设计波形发生器。
  2. 掌握LPM_ROM在波形发生器设计中的使用方法。

二、实验仪器

  1. PC机
  2. EDA实验箱 一台

三、实验原理

FPGA中的波形发生器控制电路,它通过外来控制信号和高速时钟信号,向波形数据ROM发出地址信号,输出波形的频率由发出的地址信号的速度决定;当以固定频率扫描输出地址时,模拟输出波形是固定频率,而当以周期性时变方式扫描输出地址时,则模拟输出波形为扫频信号。

波形数据ROM中存有发生器的波形数据,如正弦波或三角波数据。当接受来自FPGA的地址信号后,将从数据线输出相应的波形数据,地址变化得越快,则输出数据的速度越快,从而使D/A输出的模拟信号的变化速度越快。

四、实验内容

设计一个基于LPM_ROM的正弦波信号发生器,并进行仿真测试及实验系统上的硬件测试。(附加:正弦波的频率可调,相位可调)

五、实验步骤

  1. 打开QUARTUSII软件,新建一个工程。
  2. 新建一个Schematic File 文件。
  3. 利用波形生成器生成正选波的.mif文件,数据为8数,一个周期为128个数据。
  4. 定制LPM_ROM。
  5. 设计ROM的地址发生器。
  6. 在Schematic File 文件中设计正弦波信号发生器。在空白处双击鼠标左键,在 Symbol 对话框左上角的libraries 中,分别将创建模块放在图形文件 Schematic File中,加入输入、输出引脚,双击每个引脚,进行引脚命名,并锁定管脚,将未使用的引脚设置为三态输入(一定要设置,否则可能会损坏芯片)
  7. 编译仿真无误后,参照附录进行管脚分配。下表是示例程序的管脚分配表。分配完成后,再进行全编译一次,以使管脚分配生效。

端口名

对应FPGA管脚

说明

CLK

209

时钟为50MHZ

RST

153

复位

DOUT

167、165、166、162、164、159、161、156

输出数据

        8.用下载电缆通过JTAG口将对应的sof文件加载到FPGA中。观察实验结果是否与自己的编程思想一致

六、注意事项

  1. 注意观察当输入数据改变是输出的反应。
  2. 一定要把没用的管脚设置成三态输入。
  3. 对实验现象进行分析总结。

 

七、实验过程(操作过程)

1.定制LPM_ROM模块

打开Mif任意波编辑器Mif_Maker2010

这个软件我上传到了百度网盘,可自行下载。

链接:https://pan.baidu.com/s/1PqheFDBqXH4oLtOjMfv_Vg?pwd=9458 
提取码:9458

这里我们点击查看这里,然后设置全局参数。 

然后就是点击波形,设置正弦波。

弄完了之后,就保存这个.mif文件,最好保存到你当前的工程目录下。

这里我们可以去通过记事本打开这个.mif文件,可以查看里面的相关参数

2.定制LPM_ROM元件

这里我们创建了工程后,创建一个block文件,然后点击选择元器件,再点开此处。

 然后下一步

然后我们搜索rom,下面就会有两个元器件显示,选择第一个,然后在右边箭头的位置写上你的ROM元器件的命名,再点击下一步。

 然后这里去设置输出量q的宽度和设置地址线宽。这里我们输出设置为8个宽度,储存容量设置为512e words。

 这里的‘q’不勾选。

这里我们把第一步创建好了的.mif文件添加到这里来。

 3.计数器定制

在元器件定制这里,我们搜索count,然后去命名,再点击下一步。

 这里的输出要连接到前面定制的ROM元件的地址,所以位宽要与地址的位宽保持一致。

然后一直点击下一步就行了,创建完成。

4.创建锁相环

同样的在元件定制界面上

  1.  搜索pll
  2. 下面就会显示出ALPLL,点击选中
  3. 然后进行命名

输入频率我们设置为50MHz

 这里不勾选任何。

到这里,我们把输出频率设置为10MHz。 

然后一直点击下一步,最后创建完成。

5.作出电路图

最后我们根据上文的电路图去连接电路,并且配置相关的引脚,结果如下:

然后就是编译运行,结果无误。

6.顶层设计仿真

 电路图编译运行无错后,我们就把sof文件烧录到开发板上。

这里我们会看到,下面有一个芯片,这个也就是我们写好了的sof文件,然后就是通过你的电脑接口去连接到开发板,如果你看到上面有一个No Hardware的时候,你点击旁边的按钮进行接口设置,设置为USB接口即可(USB线连接了你的开发板就会自动显示出来的)。最后点击start就可以进行烧录了。 

烧录后,别断开与开发板的连接,还没完呢。

我们点开此处,使用SignalTap II Logic Analyzer去仿真。

在这里点击setup,去进行相关设置。 

 这里我们点开时钟设置,然后点击SignalTap I: pre-synthesis这个模式,按照下图的1,2,3步骤操作。

然后,选择输入管脚,把这个管脚作为一个时钟设置。 

这里进行区间描点设置。前面我们设置的正弦波一个周期是512个点的,那这里我们选择的最好大于512就行了,我这里选择4k,也就是一个周期作4k个点。

 

 这里我们去设置监视仿真输出。以下步骤执行完成之后,点击OK就行了。

最后这里,我们先看到右边的两个箭头,如果你已经连接好了开发板后,这些会显示出来的,同样的我们也可以去执行烧录操作。然后我们只需要去点击左边箭头指向的的仿真即可。

 上一步完成之后,我们点击Data这里就可以看到仿真的结果了,呃我这里没有连接开发板,也就没办法仿真,非常不好意思啊,没有把效果展示出来。

实验完毕。

以上就是本次实验的全部内容了,喜欢的话给个关注吧!

分享一张壁纸: 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1274801.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

不同领域文章一键采集,全网关键词文章采集工具

不同领域的从业者、学生、研究者等都可能需要大量的文章来支持他们的工作和学术研究。然而,手动搜索和整理这些文章费时费力,这个时间大家就会借助全网文章采集工具,只需要输入关键词,就能够采集大量相关文章,为大家提…

利用异或、取反、自增bypass_webshell_waf

目录 引言 利用异或 介绍 eval与assert 蚁剑连接 进阶题目 利用取反 利用自增 引言 有这样一个waf用于防御我们上传的文件: function fun($var): bool{$blacklist ["\$_", "eval","copy" ,"assert","usort…

vue3动态加载音频文件,用于不同场景加载不同的文件

本文主要介绍如何在vue3中动态加载音频文件。 目录 前言静态加载动态加载import函数watch函数使用watch函数和import函数动态加载音频文件 前言 在vue3中,我们通常使用import xxx from xxxxxx来加载文件,但是如果我们需要加载哪些文件,是需要…

如何使用住宅IP配置 Postman

Postman是一个用于方便进行网站测试的HTTP客户端。通过它,用户可以配置不同复杂度的HTTP请求,并将它们保存在数据库中以便将来重复使用。你可以连接代理到Postman,使其在进行测试时变得匿名和更安全。下面将详细说明如何在这个程序中配置代理…

RS-232串口芯片静电保护TVS管选择

RS-232串口芯片静电保护TVS管选择 RS-232接口是现在主流的串行通信接口之一,符合美国电子工业联盟制定的串行数据通信的接口标准,原始编号全称为EIA-RS-232(简称232和RS-232),广泛应用于计算机串行接口外设连接&#…

Pytorch-gpu环境篇

最最最头疼的就是配环境了 包之间的版本匹配问题 INSTALLING PREVIOUS VERSIONS OF PYTORCH 要考虑到pytorch和torchvision之间的匹配关系 显卡版本匹配问题

AI知识库:智能化的知识管理

随着人工智能技术的不断发展,越来越多的企业开始关注如何利用AI技术提升业务运营效率。其中,AI知识库作为一种智能化的知识管理工具,已经在各行各业得到了广泛的应用。接下来就探讨一下AI知识库是如何帮助企业实现智能化知识管理的。 | 一、A…

【Linux】快速上手自动化构建工具make/makefile

👀樊梓慕:个人主页 🎥个人专栏:《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C》《Linux》 🌝每一个不曾起舞的日子,都是对生命的辜负 目录 前言 1.什么是make / makefile 2…

【Windows】内网穿透实现hMailServer远程发送邮件

目录 前言1. 安装hMailServer2. 设置hMailServer3. 客户端安装添加账号4. 测试发送邮件5. 安装cpolar6. 创建公网地址7. 测试远程发送邮件8. 固定连接公网地址9. 测试固定远程地址发送邮件 前言 hMailServer 是一个邮件服务器,通过它我们可以搭建自己的邮件服务,通过cpolar内网…

window环境同时安装python2和python3

背景 在日常环境中,有时候要用到python2写的代码要用Python2执行,有时候python3的代码要用到python3执行.很多人需要同时让Python2和python3的命令都可以用。方便切换环境。 需求 有一些项目需要Python2环境。用的时候就使用 python2 .\1.py 有一些项…

人工智能原理复习--确定性推理

文章目录 上一篇推理概述自然演绎推理合适公式 归结演绎推理归结原理归结反演 提升归结效率下一篇 上一篇 人工智能原理复习–知识表示(二) 推理概述 推理就是按某种策略由已知判断推出另一判断的思维过程 分类: 演绎推理、归纳推理、默…

单页应用的架构与设计:打造高效可扩展的 Web 应用(上)

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

『运行心得』机柜断电事件的排除与解决

本文描述了一起机房机柜断电事件引发的故障排除和解决过程。 当办公楼机房发生断电后,经过排查发现可能是空气开关短路导致。尽管重新合上空气开关后设备恢复正常,但断电事件再次发生,电工怀疑空气开关老化导致电路故障,并将电源…

python 实现链表

链表基础知识 链表是在物理内存中不连续,数据通过链表中的指针来链接到下一个元素。 链表由一系列节点组成,节点在运行时动态生成,节点一般包括两个部分:存储数据的数据域,存储下一个节点的指针域 链表的常用操作&a…

使用Docker安装部署Swagger Editor并远程访问编辑API文档

文章目录 Swagger Editor本地接口文档公网远程访问1. 部署Swagger Editor2. Linux安装Cpolar3. 配置Swagger Editor公网地址4. 远程访问Swagger Editor5. 固定Swagger Editor公网地址 Swagger Editor本地接口文档公网远程访问 Swagger Editor是一个用于编写OpenAPI规范的开源编…

基于pyltp的依存句法分析

代码是两年多前网上找的,能运行。先记在这里,以防以后用到 import os from pyltp import Segmentor, Postagger, Parser, NamedEntityRecognizer, SementicRoleLabeller # pip install pyltp -i https://pypi.tuna.tsinghua.edu.cn/simple 可以先下载好…

Shopee买家通系统,智能下单新体验

Shopee买家通系统带来了一场智能下单的革命,为用户提供了更便捷的购物体验。通过简单的准备工作,您即可使用该系统完成自动下单,省去繁琐步骤,轻松实现购物愉悦。 账号准备,注册无忧 首先,准备一个具备下单…

C++的编译链接

文章目录 1、前置条件2、预处理/预编译2、编译3、汇编5、链接 1、前置条件 # 操作系统版本 cat /proc/version Linux version 3.10.0-1160.95.1.el7.x86_64 (mockbuildkbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) ) #1 SMP Mon Jul 24 …

iOS 开发高效率工具包:10 大必备工具

​ 作为 iOS 开发人员,拥有合适的工具可以极大地提高您的工作效率和工作质量。无论您是刚刚起步还是已经开发 iOS 应用程序多年,以下是每个 iOS 开发人员都应该了解的 10 大必备工具。 让我们开始 Xcode Xcode 是用于 iOS 开发的官方 IDE(…

JavaScript中的for循环你用对了吗?

​🌈个人主页:前端青山 🔥系列专栏:JavaScript篇 🔖人终将被年少不可得之物困其一生 依旧青山,本期给大家带来JavaScript篇专栏内容:JavaScript-for循环 目录 循环结构 循环思想(三要素) 实现…