- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
分频器实验.doc
实验一 分频器设计
实验项目
分频器设计实验:利用QuatusII仿真实现分频器设计。
实验仪器及器件
计算机、USB-BLASTER下载线、数字系统实验箱、5V稳压电源。
实验目的
熟悉教学实验板的使用,初步了解掌握Verilog HDL语言和VHDL语言。
掌握分辨器原理,熟悉分频器的功用,学习分频器的设计、?掌握用Verilog?HDL 或者 VHDL?语言描述分频器的方法。
熟悉和掌握FPGA开发软件QuatusII的基本操作,用QuatusII编译Verilog 和VHDL语言。
掌握USB-BLASTER下载工具的安装、以及程序下载方法。
?学会FPGA?I/O引脚分配和实现过程。
实验要求及内容
首先下载给定的VHDL硬件描述语言编写的分频器示例程序,读懂程序,编译并仔细观察在实验板上的现象。
在QuatusII平台上进行波形仿真。
扩展内容:设计分频电路得到3分频器、8分频器和32分频器。编写分频器的Verilog 或VHDL代码,并仿真,同时给出3、8、32分频仿真波形。
实验原理
一个数字系统中往往需要多种频率的时钟脉冲作为驱动源,这样就需要对FPGA的系统时钟(频率较高)进行分频。比如在进行流水灯、数码管动态扫描设计时不能直接使用系统时钟(太快而肉眼无法识别),或者需要进行通信时,由于通信速度不能太高(由不同的标准限定),这样就需要对系统时钟分频以得到较低频率的时钟。
分频器主要分为偶数分频、奇数分频、半整数分频和小数分频,如果在设计过程中采用参数化设计,就可以随时改变参量以得到不同的分频需要。在对时钟要求不是很严格的FPGA系统中,分频通常都是通过计数器的循环计数来实现的。
?
偶数分频(2N)
偶数分频最为简单,很容易用模为N的计数器实现50%占空比的时钟信号,即每次计数满N(计到N-1)时输出时钟信号翻转。
奇数分频(2N+1)
使用模为2N+1的计数器,让输出时钟在X-1(X在0到2N-1之间)和2N时各翻转一次,则可得到奇数分频器,但是占空比并不是50%(应为 X/(2N+1))。
得到占空比为50%的奇数分频器的基本思想是:将得到的上升沿触发计数的奇数分频输出信号CLK1,和得到的下降沿触发计数的相同(时钟翻转值相同)奇数分频输出信号CLK2,
最后将CLK1和CLK2相或之后输出,就可以得到占空比为50%的奇数分频器。原理图如下:
用Quartus II 得到的占空比为50%的9分频时钟输出信号outclk如下:
执行Edit=End Time=Grid Size命令,设置时间单位为10 ns单击工具箱中高电平设置按钮,将该区域设置为高电平用相似的方法设置其他区域的波形,认真核对输入输出波形,可检查设计的功能正确与否
实验结果
偶数分频程序
library ieee;
use ieee.std_logic_1164.all;
entity oushufenpin is
port( clkin:in std_logic; --时钟信号输入
clkout:out std_logic); --时钟信号输出
end oushufenpin;
architecture aroneMHZ of oushufenpin is
signal data:integer range 0 to 10;
signal Q:std_logic;
begin
process(clkin)
begin
if(clkinevent and clkin=1)then
if(data=0) then --此句为你想要的分频比,data=0,1,2,3,4.......9的分频比为1,2,3,,,10
data=0;
Q=not Q;
else
data=data+1;
end if;
end if;
clkout=Q;
end process;
end aroneMHZ;
偶数分频仿真结果
奇数分频程序
(前面部分一样)
process(clkin)
begin
if(clkinevent and clkin=1)then
if(data=0) then --3分频实现奇数分频
Q=not Q;
data=data+1;
end if;
if(data=1) then
Q=not Q;
data=data+1;
end if;
if(data=2) then
data=0;
end if;
end if;
clkout=Q;
end proce
文档评论(0)