EDA 数控分频器的设计

合集下载

EDA数控分频器的设计报告

EDA数控分频器的设计报告

数控分频器的设计1、实验目的:学习数控分频器的设计、分析和测试方法。

2、实验原理:数控分频器的功能就是当在输入端给定不同输入数据时,将对输入的时钟信号有不同的分频比,数控分频器就是用计数值可并行预置的加法计数器设计完成的,方法是将计数溢出位与预置数加载输入信号相接即可,详细设计程序如例下文所示。

1) VHDL及语句分析LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY DVF IS --定义实体DVFPORT ( CLK : IN STD_LOGIC; --时钟输入D : IN STD_LOGIC_VECTOR(7 DOWNTO 0); --7位预置数FOUT : OUT STD_LOGIC ); --输出的频率END DVF;ARCHITECTURE one OF DVF IS --定义结构体oneSIGNAL FULL : STD_LOGIC; --定义信号fullBEGINP_REG: PROCESS(CLK) --进程P_REG中CNT8从预置数D开始逐步累加到255后,FULL置1;再将CNT8置为D,循环以获得一个新的周期脉冲序列FULL,即产生新的频率V ARIABLE CNT8 : STD_LOGIC_VECTOR(7 DOWNTO 0);BEGINIF CLK'EVENT AND CLK = '1' THENIF CNT8 = "11111111" THENCNT8 := D;FULL<='1';ELSE CNT8 := CNT8 + 1;FULL <= '0';END IF;END IF;END PROCESS P_REG ;P_DIV: PROCESS(FULL) --进程P_DIV中,FOUT是占空比为50%的周期信号。

EDA 分频器设计

EDA 分频器设计

图2.1
占空比为0.5的3分频电路仿真结果如图2.2所示,k_or输出波形的周期为clk脉冲的周期的倍,且占空比为50%。

图2.2
占空比为0.25的8分频电路模型如图2.3所示,有一个脉冲端口(clk),和一个输出端口
图2.3
占空比为0.25的8分频电路仿真结果如图2.4所示,k1输出波形的周期为clk脉冲的周期的倍,且占空比为25%。

图2.4
、结果分析与实验体会
经过本次实验,我对用xlinx软件进行EDA设计有了进一步的认识和理解,经过上一次的实验,这一次可以说是轻车熟路,尽管如此,在实验过程中还是遇到了很多问题,但在同学和老师的帮助这些问题都一一解决。

在解决这些问题的过程中,我体会不同开发环境对VHDL编码的要求,Xilinx ISE FPGA与QuartusII开发环境的区别,了解到更加严格,在中可以编译通过的程序。

EDA分频器设计论文

EDA分频器设计论文

1 引言简易多功能信号发生器是信号发生器的一种,在生产实践和科研领域中有着广泛的应用。

在研制、生产、测试和维修各种电子元件、部件以及整机设备时,都需要有信号源,由它产生不同频率不同波形的电压、电流信号并加到被测器件或设备上,用其他仪器观察、测量被测仪器的输出响应,以分析确定它们的性能参数。

信号发生器是电子测量领域中最基本、应用最广泛的一类电子仪器。

它可以产生多种波形信号,如正弦波,三角波,方波和锯齿波等,因而广泛用于通信、雷达、导航、宇航等领域。

本设计是采用VHDL来实现的简易多功能信号发生器。

它能产生正弦波,三角波,方波和锯齿波。

且对各种波形的要求如下:(1)根据按键选择不同的波形(实现正弦波,三角波,方波和锯齿波);(2)各波形的频率范围为100Hz-20KHz;(3)各波形频率可调(通过按键控制频率的变化,步进值为500Hz);(4)用LED数码管实时显示输出波形的频率值;(5)用按键控制实现输出信号的幅度调节(幅度调节为2.5V和5V)。

2 设计原理2.1设计思想信号发生器产生、控制和显示的总体结构图如图所示图1 总体结构图外部输入一个50MHZ的时钟频率,经过频率控制单元控制其频率在要求的范围内,由4选1数据选择器实现对输出波形的选择,再通过D/A转换模块,将数字信号转换成模拟信号在示波器上显示出来。

2.2 总体原理图基于VHDL语言设计一个简易多功能信号发生器,通过选入输入信号,可以输出正弦波、三角波、方波和锯齿波四种波形信号。

信号发生器的控制模块可以用数据选择器实现,四种信号的信号选择可以用4选1数据选择器实现。

同时本设计使用原理图的方法,对正弦波、三角波、方波和锯齿波和4选1数据选择器元件进行调用。

简易多功能信号发生器的原理图如下:2.3 总体功能介绍由总体原理图可知,总体有六个输入,六个个输出。

其中一个时钟输入端clk,以一个频率调节输入端b,一个使系统输出波形的频率为最大的控制输入端h和一个使系统输出波形的频率为最小的控制输入端l,sel进行幅度调节,一个波形选择输入端a,波形输出b,五个频率显示数码管。

EDA分频器实验报告 含有实验程序、仿真图像 三分频 八分频

EDA分频器实验报告  含有实验程序、仿真图像  三分频  八分频
always @(negedge clk_in) begin
if(!rst_n) begin
t2<=0;
k2<=0;
end
else begin
if(t2==2'b10) begin
t2<=0;
k2<=k2;
end
else begin
t2<=t2+1;
k2<=!k2;
end
end
end
assign clk_out=k1|k2;
endmodule
2、八分频器程序:
moduleba(inclk,tick);
output tick;
input inclk;
reg [1:0] t;
reg tick;
always @ (posedge inclk)
begin
if(t==3)
begin
tick =~tick;
t=0;
end
else t=t+1;
end
endmodule
五、实验仿真波形
六、实验总结和感想
通过这次实验我对PLD的设计流程有了更深的感触,明白了其设计的一般步骤及方法,为以后的Quartus Ⅱ的综合设计奠定了基础。同时,对于分频器程序的编写有了更深的认识,这能更好的促进我们以后的理论学习。实验过程中也必须本着不骄不躁、耐心严谨,否则容易出错而达不到实验要求。
三、实验内容
1、根据要求设计三分频器、八分频器。
2、对设计的分频器进行波形仿真分析。
四、三位、八位简易频率计程序
1、三分频器程序
modulesan(clk_in,rst_n,clk_out);
input clk_in;

eda实验三 数控分频器设计

eda实验三 数控分频器设计

实验三数控分频器设计【实验目的】1.设计实现一个根据不同的输入,将时钟信号进行分频2.掌握分频计数器类型模块的Verilog描述方法;3.学习设计仿真工具的使用方法;4.学习层次化设计方法;【实验内容】1.用Verilog 语言设计带计数允许和复位输入的数控分频器。

2.编制仿真测试文件,并进行功能仿真。

3.下载并验证分频器功能【实验原理】数控分频器的功能就是当在输入端给定不同数据时,将对输入的时钟信号有不同的分频比,数控分频器就是用计数值可并行预置的加法计数器设计完成的,方法是将计数溢出位与预置数加载输入信号相加即可。

【程序源代码】(加注释)module FDIV (clk,d,fout,pfull); //数控分频器顶层设计描述input [7:0]d; //定义一个七位数输入input clk; //定义一个时钟信号output fout ,pfull; //定义输出和记满标志位pfullreg[7:0] Q; //定义一个7位寄存器变量reg full;reg pfull;reg fout;always @ (posedge clk) //开始过程语句posedge clk位敏感变量beginif (Q==d) //当有上升沿敏感信号时Q==dbegin Q=0; //Q被清零full=1; // full被赋值为1endelsebeginQ=Q+1; full =0; //否则Q=Q+1,full=0pfull=full; //将full赋值给pfullendalways @ (posedge pfull) //过程语句posedge pfull为敏感变量fout=~fout; // fout取反以后赋值给fout endmodule //结束模块【仿真和测试结果】【实验心得和体会】通过本次试验,我们对数控分频器的设计与原理都有了初步的了解,例如给定100HZ的时钟信号,然后给定d=5的输入,而后输出信号的频率为10HZ。

EDA分频器的设计

EDA分频器的设计

EDA实验报告学院:班级:学号:指导老师:姓名:一、实验目的:学习数控分频器的设计,分析和测试方法。

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

三、实验内容1、将4096HZ的时钟信号分频为1HZ的时钟信号。

实验原理图:实验源程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity dvf isport(clk_in:in std_logic;fout:out std_logic);end;architecture one of dvf issignal cnt: integer range 0 to 2048;signal clk_out:std_logic;beginprocess(clk_in)beginif clk_in'event and clk_in = '1' thenif cnt=2048 thencnt <=0;clk_out <=not clk_out;elsecnt<=cnt+1;end if;end if;end process;fout<=clk_out;end one;功能仿真波形图:实验引脚图:实验箱上工作情况:当CLOCK5接4096HZ的时钟信号时,扬声器每秒钟响一次。

2、如实验内容1将4096HZ的时钟信号分频为2HZ、8HZ、16HZ的时钟信号。

3、编写四选一MUX,可用按键控制选择分频后的某时钟。

实验原理图:实验源程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity dvf isport(clk:in std_logic;s: in std_logic_vector(1 downto 0);clk_out:out std_logic);end;architecture one of dvf issignal clk1_out:std_logic;signal clk2_out:std_logic;signal clk3_out:std_logic;signal clk4_out:std_logic;signal cnt2048:integer range 0 to 2048; signal cnt1024:integer range 0 to 1024; signal cnt256:integer range 0 to 256; signal cnt128:integer range 0 to 128;beginfen1: process(clk)beginif clk'event and clk = '1' thenif cnt2048=2048 thencnt2048 <=0;clk1_out <=not clk1_out;elsecnt2048<=cnt2048+1;end if;end if;end process;fen2: process(clk)beginif clk'event and clk = '1' thenif cnt1024=1024 thencnt1024 <=0;clk2_out <=not clk2_out;elsecnt1024<=cnt1024+1;end if;end if;end process;fen8: process(clk)beginif clk'event and clk = '1' thenif cnt256=256 thencnt256 <=0;clk3_out <=not clk3_out;elsecnt256<=cnt256+1;end if;end if;end process;fen16: process(clk)beginif clk'event and clk = '1' thenif cnt128=128 thencnt128 <=0;clk4_out <=not clk4_out;elsecnt128<=cnt128+1;end if;end if;end process;xuan: PROCESS(s)BEGINCASE s ISWHEN "00" => clk_out<=clk1_out;WHEN "01" => clk_out<=clk2_out;WHEN "10" => clk_out<=clk3_out;WHEN "11" => clk_out<=clk4_out;WHEN OTHERS => NULL;END CASE;END PROCESS;END;功能仿真波形:实验引脚图:实验箱上工作情况:CLOCK5接4096HZ的时钟信号,按键1、键2使输入分别为00、01、10、11,扬声器输出声音频率分别为1HZ、2HZ、8HZ、16HZ。

基于EDA技术的数控分频器设计

基于EDA技术的数控分频器设计

基于EDA技术的数控分频器设计作者:韩丽英来源:《数字技术与应用》2009年第11期[摘要]数控分频器广泛应用在家庭数字音响、通信设备时序电路、数字频率计中。

另外,近年来已成为电子竞赛设计中常用的单元模块。

本文论述了数控分频器的基本原理、设计思路及小数分频器的原理及设计,并给出了一个2.5 分频器电路仿真波形。

[关键词]EDA技术数控分频器 VHDL语言[中图分类号]TN-4[文献标识码]A[文章编号]1007-9416(2009)11-0108-021 引言数控分频器广泛应用在家庭数字音响、通信设备时序电路、数字频率计中。

另外,近年来已成为电子竞赛设计中常用的单元模块。

笔者在连续三年指导学生电子设计竞赛过程中都用到了数控分频器。

用传统的设计方法设计数控分频器时,典型的设计是采用具有预置数据输入端的通用计数器芯片按设计要求完成。

但当分频系数较大时,需用多片集成计数器和设计更复杂的控制电路来实现,且设计成果的可修改性和可移植性都较差。

尤其是对于参加电子设计竞赛的学生,在有限的3-5天时间内要完成一个指定功能的设计,尤其不适合采用这种传统的“固定功能的集成电路+连线”的设计模式。

基于EDA技术的数控分频器设计,采用的是用软件的方法设计硬件的EDA (电子设计自动化)技术。

作为EDA技术重要组成部分的VHDL硬件描述语言是一种符合IEEE工业标准的建模语言。

用它设计的数控分频器可作为一个模块,移植到很多数字电路系统中,且极易修改,只要修改程序中的某几条语句,就可使最大分频系数得到改变。

整个设计过程简单、快捷。

可从根本上减少硬件调试的时间,为总体设计完成争取宝贵的时间。

2 通用数控分频器的原理数控分频器的功能就是当在输入端给定不同输入数据时,将对输入的时钟信号有不同的分频比,数控分频器可用计数值可并行预置的加法计数器设计实现。

所以数控分频器功能的实质是分频电路,即将一个给定的频率较高的数字输入信号,经过适当的处理后,产生一个或数个频率较低的数字输出信号。

EDA数控分频器设计的实验报告

EDA数控分频器设计的实验报告
青岛理工大学
实验报告
专业班级:电子092姓名:林明辉学号:200901122
实验课程:EDA技术实用教材
项目名称:
一.实验目的:1.了解并掌握QuartusⅡ使用方法
2.学Байду номын сангаас8位数码扫描器显示电路设计
3.实验箱的运用
实验原理:其中每个数码管的8个段:h、g、f、e、d、c、b、a(h是小数点)都分别连在一起,8个数码管分别由8个选通信号k1、k2、…k8来选择。被选通的数码管显示数据,其余关闭。如在某一时刻,k3为高电平,其余选通信号为低电平,这时仅k3对应的数码管显示来自段信号端的数据,而其它7个数码管呈现关闭状态。根据这种电路状况,如果希望在8个数码管显示希望的数据,就必须使得8个选通信号k1、k2、…k8分别被单独选通,并在此同时,在段信号输入口加上希望在该对应数码管上显示的数据,于是随着选通信号的扫变,就能实现扫描显示的目的。
二.实验步骤:1.先编好底层文件—数控分频器程序
2.编好8位数码扫描显示电路程序
3.把两个底层文件设置成符号文件
4.调用以上两个符号文件连成以下电路图
三.实验仪器:电脑一台
实验箱一个
四.数据记录及处理:
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

专业班级:
学号:姓名:
EDA 技术实验报告
实验项目名称:数控分频器的设计
实验日期:2012.06.11 实验成绩:
实验评定标准:
一、实验目的
学习数控分频器的设计、分析和测试方法。

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

三、实验器材
PC机、FPGA实验箱、QuartusⅡ软件
四、实验内容:
编写数控分频器的程序,完成之后在实验系统上硬件验证其程序的功能。

可选实验电路模式一;键2和键1负责输入8位顶置数D;CLK由clock0输入,频率选65536HZ或更高;输出FOUT接扬声器。

编译下载后进行硬件测试;改变键2或键1的输入值,可听到不同的音调的声音。

五、实验程序
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity DVF is
port (clk:in std_logic;
d:in std_logic_vector(7 downto 0);
fout:out std_logic);
end DVF;
architecture one of DVF is
signal full:std_logic;
begin
p_reg:process(clk)
variable cnt8 :std_logic_vector(7 downto 0); begin
if clk'event and clk='1' then
if cnt8="11111111" then
cnt8:=D;
full<='1';
else cnt8:=cnt8 +1;
full<='0';
end if;
end if;
end process p_reg;
p_div:process(full)
variable cnt2:std_logic;
begin
if full'event and full='1' then
cnt2:=not cnt2;
if cnt2='1' then fout<='1';else fout<='0';
end if;
end if;
end process p_div;
end one;
六、实验仿真、结果及分析
<一>实验仿真:
根据以上程序可知,给定预置值的波形如下:
从而,完成分频后的波形图如下:
<二> 实验结果与分析:
实验仿真结果如以上波形图;给定时钟信号为200MHz,调整预置值D端的输入为十六进制,如以上输入33、55、99、AA、BB、CE,由编写的程序所知,其所要完成的计数器终态值为‘11111111’,其进制为预置值到终态值之间的范围,所要完成的分频就是按这个倍数进行。

也就是说,当预置值给出了之后,计数器开始计数,完成从所给预置值逐步加‘1’至终态值,之后进位端进‘1’,然后接着执行以下功能,CNT2端因FULL上升为高电平,D触发器输出取反,FOUT的输出波形与CNT2输出的波形一样,即CNT2输出为‘1’,FOUT 输出为‘1’,CNT2输出为‘0’,FOUT输出为零,经过这样一个变换,FOUT的波形的一个周期是所给信号的倍数关系。

如上图波形,输出波形的频率与所给的波形频率之间的关系即验证了以上分析。

从而,可以说明:实验结果是正确的,也就达到了此次实验的目的。

相关文档
最新文档