EDA实验------数控分频器设计(QuartusII)

目录

一、实验目的

二、实验原理

三、实验内容

四、实验步骤

五、注意事项

六、思考题

七、实验过程

分频器的基本原理

什么是分频器?

 如何去分频?

1.创建新项目

2.创建Verilog文件,写入代码

3.连接电路 

​编辑 锁相环的创建

 4.烧录文件


一、实验目的

  1. 学习数控分频器的设计、分析和测试方法。
  2. 了解和掌握分频电路实现的方法。
  3. 掌握EDA技术的层次化设计方法。

二、实验原理

        数控分频器的功能就是当输入端给定不同的输入数据时,将对输入的时钟信号有不同的分频比,数控分频器就是用计数值可并行预置的加法计数器来设计完成的,方法是将计数溢出位与预置数加载输入信号相接得到。

三、实验内容

        本实验要求完成的任务是在时钟信号的作用下,通过输入四位的拨码开关输入不同的数据,改变分频比,使输出端口输出不同频率的时钟信号,达到数控分频的效果。在实验中时,数控分频器的数字时钟输入2HZ作为输入的时钟信号(所以事先要先通过编程得到这个时钟信号),用四位拨码开关做为数据的输入,当拨码开关置为一个二进制数时,在输出端口输出对应频率的时钟信号,用输出端口接LED灯来观察频率的变化。

四、实验步骤

图示如下:

表4-1  端口管脚分配表

端口名

对应FPGA管脚

说       明

CLK

209

时钟为10KHZ

DIN

212、213、34、35

输入数据

LED

167

分频输出

LED_CS

174

  1. 打开QUARTUSII软件,新建一个工程。
  2. 新建一个Schematic File 文件。
  3. 新建一个锁相环将输入的50MHz的时钟分频成10MHz。
  4. 新建两个Verilog File,打开Verilog编辑器对话框,第一个文件的功能是将10MHz分频成2Hz。第二个文件的功能是实现数控分频器设计。
  5. 按照实验原理和自己的想法,在Verilog编辑窗口编写Verilog程序。
  6. 编写完Verilog程序后,保存起来。
  7. 从设计文件创建模块。
  8. 对自己编写的Verilog程序进行编译并仿真,对程序的错误进行修改。
  9. 在 Schematic File文件中,在空白处双击鼠标左键,在 Symbol 对话框左上角的libraries 中,分别将 创建的模块放在图形文件 Schematic File中,加入输入、输出引脚,双击每个引脚,进行引脚命名,并锁定管脚,将未使用的引脚设置为三态输入(一定要设置,否则可能会损坏芯片)
  10. 编译仿真无误后,依照拨码开关、LED与FPGA的管脚连接表(表1-1、表1-2)或参照附录进行管脚分配。表4-1是示例程序的管脚分配表。分配完成后,再进行全编译一次,以使管脚分配生效。
  11. 用下载电缆通过JTAG口将对应的sof文件加载到FPGA中。观察实验结果是否与自己的编程思想一致。

五、注意事项

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

六、思考题

  1. 简述锁相环的基本原理及应用。
  2. 总结本次实验的心得体会。

七、实验过程

分频器的基本原理

什么是分频器?

分频就是生成一个新时钟,该新时钟的频率是原有时钟频率的整数分之一倍,新周期是原有周期的整数倍。再简单来说,让你手撕一个四分频电路,就是写代码生成一个周期是原来四倍的时钟,如果手撕一个三分频电路,就是写代码生成一个周期是原来三倍的时钟。但是奇数分频会比偶数分频复杂一些。

 如图所示,这就是一个二分频的结果图,堆输入信号CP进行二分频。

 如何去分频?

很简单,我们只需要去进行数数就可以了,对输入信号进行周期数数,比如要进行4分频的话,那么我们对输入信号周期数到2,就进行一次翻转,然后再数到2又一次进行翻转,那么输出信号的一个周期就等于输入信号的4个周期。(如下图所示)

 分频分为奇数分频和偶数分频,上面的例子是对于偶数分频的,偶数分频是比较简单的,只需要去对半开就行了,一半是低电平另一半就是高电平。但是对于奇数分频的话会比较麻烦,奇数分频我们可以把奇数分频转换为偶数分频去实现,也就是说其中有一段是为空电平的,比如5分频,对输入信号进行周期数数,把输入信号其中一个周期设置为空电平即可,然后剩下4个周期数到其中一半为低电平,另一半为高电平就行了。下面项目我就以偶数分频为示例,如果你们对奇数分频感兴趣的话可以去自己试试。

1.创建新项目

打开你的QuartusII,然后点击New project,就去创建新项目。

 然后设置项目的路径和名称(自己设置就好了)

选择相对应的芯片类型(看自己情况选择) 

 创建完成!

2.创建Verilog文件,写入代码

点击New,创建文件

 选择Verilog文件,创建

然后就是写代码,写完之后就进行保持文件,把文件的名称跟模块的名称改成一样。(必须一致)

根据实验要求我们要去创建两个Verilog文件,如下所示: 

第一个文件 div.v 文件,此文件目的是把输入信号的10MHz频率转换为2Hz频率。代码如下。

module div(clk,out_clk);
input wire clk;
output out_clk;
reg out_clk;

reg [26:0] cnt;
always@(posedge clk )
	begin
		if(cnt == 2500000)
		begin
		out_clk = out_clk +1;
		cnt = 0;
		end 
			
		else
			begin
			
			cnt = cnt +1;
			
			end
	end 

endmodule 

第二个文件就是去实现数控分频,也就是前面一个文件分频后的2Hz输入信号进行分频。代码如下:

module clk_even_div(
	input clk,//输入信号
	input [3:0] num,//输入要进行的分频数,偶数
	output reg clk_div//输出信号频率
);
	reg [3:0] cnt=4'd0;//临时数据,进行数数统计
	
always @(posedge clk)
begin
		if(cnt==num/2-1)//如果数到一半,输出信号就进行翻转
		begin
			cnt<=cnt+4'd1;
			clk_div<=1'b1;
		end
		
		else if(cnt==num-1)//如果数完了之后,再次翻转
		begin
			cnt<=4'd0;
			clk_div<=1'b0;
		end
		
		else	//其他情况的话就进行继续数数
		begin
			cnt<=cnt+4'd1;
		end
end
endmodule

然后写完之后保存,注意代码模块的名称必须与文件的名称一致!!

最后就是点击编译运行,运行无误。代码完成之后就进入到下一步,连接电路。

3.连接电路 

 创建block文件

 然后对前面写好的Verilog文件,去创建子模块文件,如图所示,鼠标右键,点击创建子模块文件。如图所示:

点开元器件,这里我们就可以看到project文件夹下面有我们前面Verilog文件的模块元器件。 

 锁相环的创建

根据实验的要求,我们要去创建一个锁相环,所以这里我单独拿出来讲这么去创建这么一个锁相环。

这里,我们点击箭头指向的这个按钮。 

然后就是勾选第一个,意思是创建一个自定义的元器件。 

  1.  搜索pll
  2. 下面就会显示出ALPLL,点击选中
  3. 然后进行命名
  4. 勾选AHDL,最后点击Next下一步

 看到这里,我们根据实验要求,把这个输入频率改为50MHz,然后点击下一步

 然后就是这选项都不勾选,直接继续下一步

 然后,这里我们点击输入你想要的输出频率,这里我们就设置为输出10MHz的频率,最后就是Next下一步。

然后下一步就是勾选这个 然后点击完成就行了。

点开元器件,我们就可以看到这里生成了一个我们设置的锁相环了,拿出来用就行了 最后,进行电路图的连接了,我这里就已经连接好了。

剩下的就是去进行引脚的配置了。 

 弄完之后,保存这个block文件,然后设置为顶层文件,最后点击编译运行

 运行无误后,我们就可以进行烧录操作了。

 4.烧录文件

点开此处。

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

以上就是本期的全部内容了,我们下一次见! 

分享一张壁纸:

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

做决策、定战略、带团队:顶级高手常用的16个思维模型

01 做决策 1.沃伦巴菲特的双目标清单系统&#xff08;Two-List System&#xff09; 弗林特当了巴菲特的私人飞行员十年之久&#xff0c;还曾为美国四任总统开过飞机&#xff0c;但他在事业上依然有更多追求。有一次&#xff0c;他和巴菲特在探讨他的职业生涯目标时&#xff0…

教你轻轻松松写出10万+的微头条爆文,赶紧收藏!

微头条是投放在今日头条上的稿件&#xff0c;重点在于微字&#xff0c;一般在300-500字之间&#xff0c;讲究的是原创干货&#xff0c;有独到见解。 企业和品牌撰写微头条来给自己带来更多曝光和展现。想要让你的微头条写出爆款内容&#xff0c;这是需要讲究技巧的&#xff0c…

<文件操作及常用的API>

文章目录 专栏导读&#x1f680;简单认识一下文件&#x1f680;树形结构和目录&#x1f680;文件路径-相对路径、绝对路径&#x1f680;文件类型&#x1f680;Java中文件的操作&#x1f680;File 类的常用方法 专栏导读 &#x1f680;多线程章节 &#x1f490;数据结构剖析 &am…

京东账单导出的手工操作

文章目录 京东账单导出的手工操作概述笔记备注END 京东账单导出的手工操作 概述 在京东网页版找不到账单导出的操作. 在手机京东中可以导出账单. 当前京东APP的导出实现有点bug, 在输入验证码后, 发送邮件. 可是显示验证码失败, 但是已经发了邮件. 可能是因为发送成功提示不明…

半平面求交 - 洛谷 - P3194 [HNOI2008] 水平可见直线

欢迎关注更多精彩 关注我&#xff0c;学习常用算法与数据结构&#xff0c;一题多解&#xff0c;降维打击。 往期相关背景点击前往 题目大意 题目链接 https://www.luogu.com.cn/problem/P3194 在直角坐标系中给定一些直线&#xff0c;然后从Y轴无穷大处往0处看&#xff0c;…

如何在面试中胜出?接口自动化面试题安排上

&#x1f4e2;专注于分享软件测试干货内容&#xff0c;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01;&#x1f4e2;交流讨论&#xff1a;欢迎加入我们一起学习&#xff01;&#x1f4e2;资源分享&#xff1a;耗时200小时精选的「软件测试」资…

定位咨询与资源分配:最大化效益的关键

在当今竞争激烈的商业环境中&#xff0c;企业如何确保每一分投资都能产生最大的回报?答案在于有效的市场定位和精明的资源分配。本文将探讨定位咨询如何成为企业资源分配和效益最大化的关键。 定位咨询的核心作用 定位咨询是企业发现其在市场上独特地位的过程。这不仅关乎营销…

如何挑选护眼灯?光照均匀度、色温、眩光这3点!

光照环境对我们的生活质量影响深远&#xff0c;尤其在孩子的成长过程中&#xff0c;良好的光照环境对其学习效率、视力保护都至关重要。光照中的很多因素都对视力有着或大或小的影响&#xff0c;本文将从光照均匀度、眩光、色温三个关键点&#xff0c;深入浅出地让消费者了解其…

大模型在数据分析场景下的能力评测|进阶篇

做数据分析&#xff0c;什么大模型比较合适&#xff1f; 如何调优大模型&#xff0c;来更好地做数据计算和洞察分析&#xff1f; 如何降低整体成本&#xff0c;同时保障分析体验&#xff1f;10月25日&#xff0c;我们发布了数据分析场景下的大模型能力评测框架&#xff08;点击…

【验证码逆向专栏】百某网数字九宫格验证码逆向分析

声明 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;不提供完整代码&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01; 本文章未…

正版软件|Ashampoo WinOptimizer 26 - Win优化器

使用 Ashampoo WinOptimizer 加速、优化和清洁你的电脑&#xff0c;非常轻松&#xff01; 关于Ashampoo WinOptimizer Windows是很棒&#xff0c;但总有改进的余地。 这就是Ashampoo WinOptimizer 26的用武之地! 因为&#xff0c;随着时间的推移&#xff0c;操作系统往往会变慢…

Git常用规范

分支命名规范 Git分支命名规范可以根据具体的项目和团队的需要而有所不同&#xff0c;但是以下是一些常见的规范&#xff1a; 主分支&#xff08;master/main&#xff09;&#xff1a;这个分支通常是主要的稳定分支&#xff0c;它包含了当前生产环境的代码。在一些项目中&…

妙手ERP本期功能优化:TikTok创建折扣活动可默认生成活动名称和时间、Shopee利润明细新增字段等

为了给卖家朋友带来更好的使用体验&#xff0c;更高效地运营跨境店铺&#xff0c;妙手ERP在上周优化了以下多项功能。 01、产品模块优化 全平台 - 批量编辑平台SKU增加翻译功能 TikTok - 创建折扣活动时&#xff0c;可默认生成活动名称和时间 02、订单模块优化 全平台 - 扫…

day21_mysql

今日内容 零、 复习昨日 第一阶段: Java基础知识(会编程,懂编程) 第二阶段: Web开发(前端,后端,数据库) 一、MySQL 一、引言 二、数据库 2.1 概念 ​ 数据库是“按照数据结构来组织、存储和管理数据的仓库。是一个长期存储在计算机内的、有组织的、有共享的、统一管理的数据集合…

一篇文章让你真正搞懂epoll机制

目录 1.epoll简介 2.epoll实现原理 3.创建epoll文件 4.增加&#xff0c;删除&#xff0c;修改epoll事件 5.epoll事件就绪 6.epoll编程流程 7.epoll常见问题&#xff1f; 1.epoll简介 epoll是Linux内核为处理大批量文件描述符而作了改进的poll&#xff0c;它能显著提高程…

Visual Studio Code配置c/c++环境

Visual Studio Code配置c/c环境 1.创建项目目录2.vscode打开项目目录3.项目中添加文件4.文件内容5.配置编译器6.配置构建任务7.配置调试设置 1.创建项目目录 d:\>mkdir d:\c语言项目\test012.vscode打开项目目录 3.项目中添加文件 4.文件内容 #include <iostream> u…

Langchain知识点(下)

原文&#xff1a;Langchain知识点&#xff08;下&#xff09; - 知乎 代码汇总到&#xff1a; https://github.com/liangwq/Chatglm_lora_multi-gpu/tree/main/APP_example/langchain_keypoint​github.com/liangwq/Chatglm_lora_multi-gpu/tree/main/APP_example/langchain_…

【机器学习6】概率图模型

用观测结点表示观测到的数据&#xff0c; 用隐含结点表示潜在的知识&#xff0c; 用边来描述知识与数据的相互关系&#xff0c; 最后基于这样的关系图获得一个概率分布 。 概率图中的节点分为隐含节点和观测节点&#xff0c; 边分为有向边和无向边。 从概率论的角度&#xff0c…

点成方案丨使用细胞计数仪监控CAR-T细胞疗法的生产

一、概述 嵌合抗原受体&#xff08;CAR&#xff09;是经过改造后赋予T细胞靶向特定抗原的新能力的受体蛋白。这些受体是嵌合的&#xff0c;因为它们将抗原结合和T细胞激活功能结合到一个受体中。CAR-T细胞疗法使用经过CAR改造的T细胞来治疗癌症。CAR-T免疫疗法的前提是修改T细…

基于Genio 700 (MT8390)芯片的AR智能眼镜方案

AR眼镜是一种具有前所未有发展机遇的设备&#xff0c;无论是显示效果、体积还是功能都有明显的提升。AR技术因其智能、实时、三维、多重交互和开放世界的特点备受关注。 AR眼镜集成了AR技术、语音识别、智能控制等多项高科技功能&#xff0c;可以帮助用户实现更加便捷、高效、个…