EDA数控分频器的设计报告

合集下载

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实验报告

EDA实验报告班级:姓名:目录实验一:七段数码显示译码器设计 (1)摘要 (1)实验原理 (1)实验方案及仿真 (1)引脚下载 (2)实验结果与分析 (3)附录 (3)实验二:序列检测器设计 (6)摘要 (6)实验原理 (6)实现方案及仿真 (6)引脚下载 (7)实验结果与分析 (8)实验三:数控分频器的设计 (11)摘要 (11)实验原理 (11)方案的实现与仿真 (11)引脚下载 (12)实验结果及总结 (12)附录 (12)实验四:正弦信号发生器 (14)摘要 (14)实验原理 (14)实现方案与仿真 (14)嵌入式逻辑分析及管脚下载 (16)实验结果与分析 (17)附录 (18)实验一:七段数码显示译码器设计摘要:七段译码器是一种简单的组合电路,利用QuartusII的VHDL语言十分方便的设计出七段数码显示译码器。

将其生成原理图,再与四位二进制计数器组合而成的一个用数码管显示的十六位计数器。

整个设计过程完整的学习了QuartusII的整个设计流程。

实验原理:七段数码是纯组合电路,通常的小规模专用IC,如74或4000系列的器件只能作十进制BCD码译码,然而数字系统中的数据处理和运算都是2进制的,所以输出表达都是16进制的,为了满足16进制数的译码显示,最方便的方法就是利用译码程序在FPGA\CPLD中来实现。

本实验作为7段译码器,输出信号LED7S的7位分别是g、f、e、d、c、b、a,高位在左,低位在右。

例如当LED7S 输出为“1101101”时,数码管的7个段g、f、e、d、c、b、a分别为1、1、0、1、1、1、0、1。

接有高电平段发亮,于是数码管显示“5”。

实验方案及仿真:I、七段数码显示管的设计实现利用VHDL描述语言进行FPGA上的编译实现七段数码显示译码器的设计。

运行QuartusII在G:\QuartusII\LED7S\下新建一个工程文件。

新建一个vhdl语言编译文件,编写七段数码显示管的程序见附录1-1。

数控分频器实验报告

数控分频器实验报告

《数控分频实验》姓名:谭国榕班级:12电子卓越班学号:201241301132一、实验目的1.熟练编程VHDL语言程序。

2.设计一个数控分频器。

二、实验原理本次实验我是采用书上的5分频电路进行修改,通过观察其5分频的规律进而修改成任意奇数分频,再在任意奇数分频的基础上修改为任意偶数分频,本次实验我分为了三个部分,前两部分就是前面所说的任意奇数分频和任意偶数分频,在这个基础上,再用奇数输入的最低位为1,偶数最低位为0的原理实现合并。

三、实验步骤1.任意奇数分频程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY DIV1 ISPORT(CLK:IN STD_LOGIC;D:IN INTEGER RANGE 0 TO 255;K1,K2,K_OR:OUT STD_LOGIC);END;ARCHITECTURE BHV OF DIV1 ISSIGNAL TEMP3,TEMP4:STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL M1,M2:STD_LOGIC;--SIGNAL OUT1,OUT2,OUT3:STD_LOGIC;BEGINPROCESS(CLK,TEMP3) BEGINIF RISING_EDGE(CLK) THENIF(TEMP3=D-1) THEN TEMP3<="00000000"; ELSE TEMP3<=TEMP3+1; END IF;IF(TEMP3=D-(D+3)/2) THEN M1<=NOT M1; ELSIF (TEMP3=D-2) THEN M1<=NOT M1; END IF; END IF;END PROCESS;PROCESS(CLK,TEMP4) BEGINIF FALLING_EDGE(CLK) THENIF(TEMP4=D-1) THEN TEMP4<="00000000"; ELSE TEMP4<=TEMP4+1; END IF;IF(TEMP4=D-(D+3)/2) THEN M2<=NOT M2; ELSIF (TEMP4=D-2) THEN M2<=NOT M2;END IF; END IF;END PROCESS;K1<=M1; K2<=M2; K_OR <=M1 OR M2;END BHV;此段程序最主要的部分为:PROCESS(CLK,TEMP3) BEGINIF RISING_EDGE(CLK) THENIF(TEMP3=D-1) THEN TEMP3<="00000000"; ELSE TEMP3<=TEMP3+1; END IF;IF(TEMP3=D-(D+3)/2) THEN M1<=NOT M1; ELSIF (TEMP3=D-2) THEN M1<=NOT M1; END IF; END IF;END PROCESS;PROCESS(CLK,TEMP4) BEGINIF FALLING_EDGE(CLK) THENIF(TEMP4=D-1) THEN TEMP4<="00000000"; ELSE TEMP4<=TEMP4+1; END IF;IF(TEMP4=D-(D+3)/2) THEN M2<=NOT M2; ELSIF (TEMP4=D-2) THEN M2<=NOT M2; END IF; END IF;END PROCESS;在这里,我通过研究书上的占空比为50%的5分频电路的程序,通过实验发现了一个规律,就是书上的C1="100",在奇数任意分频中为输入信号减一,即D-1,而在第二个if里,5分频为C1="001",7分频为C1="010",9分频为C1="011",以此类推,则不难发现:5-4=1;7-5=2;9-6=3.。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

EDA实验报告5_乐曲硬件演奏电路设计

EDA实验报告5_乐曲硬件演奏电路设计

EDA技术与应用实验报告姓名学号专业年级电子信息工程实验题目乐曲硬件演奏电路设计实验目的1.学习利用数控分频器设计硬件乐曲演奏电路2.掌握模块化和层次化的设计方法以及音符编码的设计思想实验原理1.一定频率的矩形波通过扬声器可以发出相应频率的声音,乐曲是由一系列的音符组成的。

所以,如果我们通过控制每个音符的发音频率值及其持续的时间,就可以以纯硬件的手段,利用这些数值来实现所希望演奏的乐曲。

2.该硬件演奏电路由三个模块构成<1>音符数据ROM的地址发生器模块NoteTabs.vhdl内置8位二进制计数器,作为ROM的地址发生器,计数频率4Hz,即每一计数值的停留时间为0.25s,恰为全音符设为1s时,四四拍的4音符持续时间。

随着NoteTabs中的计数器按4Hz的时钟速率作加法计数即地址值递增时,ROM中的音符数据将通过ToneIndex[3..0]输向ToneTaba模块,乐曲即开始演奏起来。

<2>乐曲简谱码对应的分频预置数查表电路模块ToneTaba.vhdlToneTaba为Speakera提供决定所发音符的分频预置数,此数在Speakera输入口停留的时间即为此音符的节拍值。

输入Index[3..0]可确定乐曲全部音符所对应的分频预置数(13个)每一音符的停留时间由NoteTabs模块的clk决定(4Hz)。

<3>决定每一个音符音调的数控分频器模块Speakera.vhdl输入端clk输入一较高频率(12MHz)的信号,经Speakera分频,再经2分频以展宽脉冲后,由SpkOut输出。

11位预置数Tone[10..0]决定由clk输入信号的分频比,SpkOut输出的频率决定每一音符的音调。

实验内容1.定制存放LPM-ROM模块Music,在连续地址上存放乐曲的音符数据,2.用vhdl文本输入法和元件例化语句完成NoteTabs.vhdl的设计,该模块包含音符数据ROM模块Music.vhdl3.完成ToneTaba.vhdl的设计,此模块给数控分频模块提供每个音符所对应的分频预置数,即计数初值4.完成Speakera.vhdl的设计,该模块是一个初值可变的加法计数器。

EDA实验报告

EDA实验报告

EDA实验报告EDA 实验实验一用原理图输入法设计半加器一、实验目的:1.熟悉利用Quartus Ⅱ的原理图输入方法设计简单组合电路;2.通过一个半加器的设计把握利用EDA 软件进行电子线路设计的详细流程;3.学会对实验板上的FPGA/CPLD 进行编程下载,硬件验证自己的设计项目。

二、实验器材:1、计算机及操作系统2、QUARTUS II 软件三、实验要求:1. 利用原理图输入法对半加器电路进行描述;2. 进行波形仿真测试;3. 严格按照实验步骤进行实验;4. 管脚映射按照芯片的要求进行。

四、实验原理其中a, b 为输入端口,So 与Co 分别为半加器和与进位。

其逻辑表达式为:2. 根据逻辑表达式进行原理图输入。

五、实验步骤:1. 为本项工程设计建立文件夹。

注意文件夹名不能用中文,且不可带空格。

2. 输入设计项目并存盘。

3. 将设计项目设计为工程文件。

4. 选择目标器件并编译。

b a b a b a So ⊕=+=ab Co =5. 时序仿真。

6. 引脚锁定。

7. 编程下载。

实验二用原理图法设计一位、四位全加器一、实验目的:1. 熟悉利用QuartusⅡ的原理图输入方法设计简单组合电路;2. 通过一个半加器的设计把握利用EDA 软件进行电子线路设计的详细流程;3. 学会对实验板上的FPGA/CPLD 进行编程下载,硬件验证自己的设计项目。

二、实验器材:1、计算机及操作系统2、QUARTUS II软件三、实验要求:1.利用原理图输入法对一位全加器电路进行描述;2. 进行波形仿真测试;3. 严格按照实验步骤进行实验;四、实验原理:利用实验一所设计的半加器设计一位全加器;利用设计封装好的一位全加器进行四位全加器的设计。

五、实验步骤:与实验一相同。

六、实验报告:1. 要求画出一位、四位全加器的真值表;2. 分析用半加器实现一位全加器的优点;3. 对波形进行分析,并绘制波形图。

实验三用文本输入法设计D触发器和锁存器一、实验目的:1. 熟悉QuartusⅡ的VHDL 文本设计过程。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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

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

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

FULL上升沿时CNT2取反,形成0/1交
替的序列。

而FOUT随CNT2变化。

V ARIABLE 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;
2)进程P_REG的功能
进程P_REG中CNT8从预置数D开始逐步累加到255后,FULL置1;再将CNT8置为D,循环以获得一个新的周期序列FULL,即用预置数D产生新频率的序列,达到分频的效果。

如下图所示,当CNT8累加到255后,标记位FULL置1。

因此,FULL 与CLK的频率关系为:
FULL=CLK/(256-D)
注:当D=255时,FULL始终为1,FULL的频率为0。

下面是不同的D与FULL之间的关系。

3)进程P_DIV的功能
进程P_DIV中,FOUT是占空比为50%的周期信号。

FULL上升沿时CNT2取反,形成0/1交替的序列。

而FOUT随CNT2变化。

因此,FULL与FOUT的频率关系为:FOUT=FULL/2
注:当D=255时,FULL始终为1,FULL的频率为0,所以FOUT的频率也为0。

4) CLK、FULL和FOUT之间的分频关系
FULL与CLK的频率关系为:FULL=CLK/(256-D)
FULL与FOUT的频率关系为:FOUT=FULL/2
因此,FOUT与CLK的频率关系为:FOUT=CLK/2(256-D)
3、实验结果
以下是电路的时序仿真图
以下是RTL电路图。

相关文档
最新文档