EDA分频器的设计

合集下载

EDA七分频设计

EDA七分频设计

基于VHDL的占空比50%的7分频电路设计一、题目分析1.七分频电路属于奇数分频较之偶数分频电路更难实现一点,由于知道奇数分频占空比不为50%的分频电路非常容易实现,于是希望能从此处入手获得奇数分频电路占空比为50%与非50%之间的关系,从而完成此类题目的设计。

经分析知道两个占空比为3/7的七分频电路在初相位相差半个时钟周期的情况下进行或操作可获得题目要求的七分频电路。

2.占空比50%的分频电路与非50%的分频电路的真值关系如下表所示:可见从原理上满足要求。

二、用MAX+plusii编程开发实现上述功能。

1、运行MAX+plusii进入编程开发环境,选择新建文件如下图并将文件保存为实体名的VHD文件:2、在程序文本编辑窗口编写程序,关键字以绿色字体呈现,编写程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT14 ISPORT(CLK:IN STD_LOGIC;K1,K2,Y:OUT STD_LOGIC);END;ARCHITECTURE bhf OF CNT14 ISSIGNAL C1,C2:STD_LOGIC_VECTOR(2 DOWNTO 0);SIGNAL M1,M2:STD_LOGIC;BEGINPROCESS(CLK,C1)BEGINIF RISING_EDGE(CLK) THENIF(C1="110") THEN C1<="000"; ELSE C1<=C1+1; END IF;IF(C1="001") THEN M1<=NOT M1; ELSIF(C1="100") THEN M1<=NOT M1;END IF; END IF;END PROCESS;PROCESS(CLK,C2) BEGINIF FALLING_EDGE(CLK) THENIF(C2="110") THEN C2<="000"; ELSE C2<=C2+1; END IF;IF(C2="001") THEN M2<=NOT M2; ELSIF(C2="100") THEN M2<=NOT M2;END IF; END IF;END PROCESS;K1<=M1; K2<=M2; Y<=M1 OR M2;END bhf;3、将当前设计设置成工程,选择set Project to current file,如下图所示:4、执行菜单栏中,弹出窗口设置如下:5、调出编译器对程序进行编译,操作如下图所示:6、在编译窗口执行如下图两项设置操作:7、点击start执行程序编译,编译顺利执行,证明程序没有语法错误,结果如下图:8、通过如下操作新建波形文件并保存文件:9、从SNF文件中输入设计文件的信号节点如下图所示:10、选中时钟信号该行呈黑色,并进行参数设置如下图:11、点击菜单栏中MAX+plusii下拉菜单,选择simulator弹出仿真控制窗口,单击start进行波形仿真:12、获得仿真波形如下图所示,可见波形除了在时间上有延时外符合分析要求:三、程序分析。

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 7分频代码

eda 7分频代码

eda 7分频代码
在 EDA(电子设计自动化)中,可以使用 Verilog 或 VHDL 等硬件描述语言来实现 7 分频电路。

以下是一个使用 Verilog 实现 7 分频的简单示例代码:
```verilog
module七分频( input clk, output clk_out );
reg [6:0] count;
reg clk_out;
always @(posedge clk) begin
if (count == 6'd6) begin
count <= 6'd0;
clk_out <= ~clk_out;
end else begin
count <= count + 1'd1;
end
end
endmodule
```
上述代码中,我们使用了一个计数器`count`来对输入时钟`clk`进行计数。

当计数器的值达到 6 时,我们将输出时钟`clk_out`取反,并将计数器重置为 0。

这样就实现了 7 分频的功能。

在实际应用中,可能需要根据具体的需求对代码进行修改。

例如,如果需要使用异步复位信号来重置计数器,可以添加一个复位信号`rst`,并在代码中添加相应的复位逻辑。

请注意,上述代码只是一个简单的示例,实际的 7 分频电路可能需要考虑更多的细节和优化。

在设计实际电路时,建议使用专业的 EDA 工具进行综合、仿真和验证,以确保电路的正确性和可靠性。

EDA实验报告(12份).pdf

EDA实验报告(12份).pdf

实验一组合电路的设计1. 实验目的:熟悉MAX + plus II 的VHDL 文本设计流程全过程,学习简单组合电路的设计、多层次电路设计、仿真和硬件测试。

2. 实验内容:设计一个2选1多路选择器,并进行仿真测试,给出仿真波形。

3. 实验程序如下:library ieee;use ieee.std_logic_1164.all; entity mux21a isport(a,b,s:in std_logic;y:out std_logic); end entity mux21a; architecture one of mux21a is beginy<=a when s='0' else b ; end architecture one ;4. 仿真波形(如图1-1所示)图1-1 2选1多路选择器仿真波形5. 试验总结:从仿真波形可以看出此2选1多路选择器是当s为低电平时,y输出为b, 当s为高电平时,y输出为a(y<=a when s='0' else b ;),完成2路选择输出。

实验二时序电路的设计1. 实验目的:熟悉MAX + plus II VHDL文本设计过程,学习简单的时序电路设计、仿真和测试。

2. 实验验内容:设计一个锁存器,并进行仿真测试,给出仿真波形。

3. 实验程序如下:library ieee;use ieee.std_logic_1164.all;entity suocun7 isport(clk: in std_logic;en: in std_logic;D: in std_logic_vector(7 downto 0);B:out std_logic_vector(7 downto 0)); end suocun7;architecture one of suocun7 issignal K: std_logic_vector(7 downto 0); beginprocess(clk,en,D)beginif clk'event and clk='1' thenif en ='0'thenK<=D;end if;end if;end process;B<=K;end one;4.仿真波形(如图2-1所示)图2-1 8位锁存器仿真波形此程序完成的是一个8位锁存器,当时钟上升沿到来(clk'event and clk='1')、使能端为低电平(en ='0')时,输出为时钟上升沿时的前一个数,从仿真波形看,实现了此功能。

EDA技术分频器

EDA技术分频器

2
转换函数表 P34
函数
STD_LOGIC_1164包 包 TO_STDLOGICVECTOR(A) TO_BITVECTOR(A) TO_LOGIC(A) TO_BIT(A) STD_LOGIC_ARITH包 包 CONV_STD_LOGIC_VECTOR(A, 位长) 位长 CONV_INTEGER(A)
7
2. 分频比不是2的整数次幂,但是偶数,占空比是0.5 分频比不是2的整数次幂,但是偶数,占空比是0.5
例7.2 对时钟信号CLK进行6分频. 对时钟信号CLK进行6分频. CLK进行 ARCHITECTURE RTL OF CLK_DIV IS STD_LOGIC_VECTOR(1 SIGNAL COUNT : STD_LOGIC_VECTOR(1 DOWNTO 0); SIGNAL CLK_TEMP : STD_LOGIC; STD_LOGIC; BEGIN PROCESS(CLK) (CLK'EVENT CLK='1 ) BEGIN IF (CLK EVENT AND CLK= 1') THEN IF(COUNT="10 10") =>'0 ) IF(COUNT= 10 ) THEN COUNT <= (OTHERS => 0'); CLK_TEMP; CLK_TEMP <=NOT CLK_TEMP; ELSE COUNT <= COUNT +1; PROCESS; END IF ; END IF ;END PROCESS; CLK_DIV6 CLK_TEMP; CLK_DIV6 <= CLK_TEMP; END RTL; RTL;
6
1. 分频比是2的整数次幂,占空比是0.5 分频比是2的整数次幂,占空比是0.5

EDA技术综合应用设计实例

EDA技术综合应用设计实例

EDA技术综合应用设计实例EDA(Electronic Design Automation)技术是一种电子设计自动化技术,通过软件工具和方法来实现电子产品的设计和验证。

下面是一个EDA技术综合应用设计实例。

背景:在现代社会中,无线通信技术是非常重要的技术之一,随着无线通信技术的不断发展,人们的生活质量得到了极大的提高。

在无线通信系统中,无线电频率的调整和控制是重要的步骤。

为了实现频率调整和控制,需要设计一个频率锁定环(PLL)电路。

本次实例的目标是使用EDA技术设计和验证一个简单的PLL电路。

设计要求:设计一个具有以下特性的PLL电路:1.输入信号频率为10MHz2.输出信号频率为400MHz3. 希望达到的锁定时间为100 ns4.锁定范围为±20kHz设计步骤:1.设计电路结构图:根据PLL电路的原理,设计电路结构图。

PLL电路包括一个相位比较器、一个锁定振荡器和一个分频器。

相位比较器用于比较反馈信号和参考信号的相位差,输出控制信号给锁定振荡器调整频率。

锁定振荡器生成输出信号,分频器用于将输出信号的频率分频到400MHz。

2.选择合适的元件:根据设计要求和电路结构图,选择适合的元件。

例如,选择合适的电阻、电容、晶体振荡器等。

3. 使用EDA工具进行电路模拟:使用EDA工具,如Cadence或Mentor Graphics等,进行电路模拟。

在模拟中,可以设置输入信号的频率和幅值,并观察输出信号的频率和幅值。

4.优化电路性能:根据模拟结果,可以对电路进行优化。

例如,可以通过调整电路参数、改变电路结构等方式来改善锁定时间、锁定范围等性能指标。

5.进行电路布局与布线:根据设计结果,进行电路布局和布线。

电路布局是指将电路中的元件放置在适当的位置,以减小信号干扰和噪声。

电路布线是指将电路中的元件通过导线连接起来,形成完整的电路路径。

6.进行电路验证:设计完成后,进行电路验证。

验证是指使用EDA工具验证设计的正确性和性能指标是否符合要求。

EDA实验五数控分频器的设计(程序)

EDA实验五数控分频器的设计(程序)

三、实验效果分析(包过仪器设备等使用效果)三、实验效果分析:①八分频,十一分频器的程序主要包括两部分,一是先设定好计数的位数,让计数器计数,当计数满时产生溢出,使溢出标志位为高电平;二是当溢出标志位为1时,D 触发器的D状态发生翻转,从而产生高低电平的变化,而达到分频的目的,计数初值的不同,计数满所要的时钟个数也就不同,D触发器电平翻转所用的时间也就不同,频率也就不同。

②循环计数器是给定时器赋不同的初值,不同初值溢出所用的时间也就不同,状态翻转所用时间也就不同,从而达到实现不同音频循环输出的目的。

③硬件测试:写好程序连接好电路后电路能够很好的实验16种不同音频之间的循环输出,说明实验程序正确,对应的RTL仿真图形也正确。

④实验例序中的P_DIV进程的作用是当计数满产生溢出时让D触发器的状态发生翻转,D触发器状态的翻转的频率就是分频器输出的频率。

也就是做分频器的频率输出作用。

教师评语指导教师年月日江西师范大学物理与通信电子学院教学实验报告专业:电子信息工程2011年月日实验名称数控分频器的设计指导老师姓名年级学号成绩一、预习部分1、实验目的2、实验基本原理3、主要仪器设备(包含必要的元器件、工具)一、实验目的:1.了解数控分频器的设计原理以及分析和测试方法。

2.学会构造使用不同功能的数控分频器械。

二、实验基本原理:给定时器设定好初值,当计数满时溢出,产生溢出后溢出标志位D触发器取反,这样当设定不同的初值时产生一次溢出所用的时间也就不同,频率也就随之改变。

通过设定不同的初值从而产生不同的分频。

三、主要仪器设备电脑,实验箱二、实验操作步骤1.实验数据、表格及数据处理2.实验操作过程(可以用图表示)3.结论1.实验数据、表格及数据处理如下:十一分频器:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity sy52 isport(clk:in std_logic;d:in std_logic_vector(10 downto 0);fout:out std_logic);end ;architecture one of sy52 issignal full :std_logic;beginp_reg:process(clk)variable cnt8:std_logic_vector(10 downto 0);beginif clk'event and clk='1' thenif cnt8="11111111111"thencnt8:=d;full<='1';elsecnt8:=cnt8+1;full<='0';end if;end if;end process p_reg;p_div:process(full)variable cnt2:std_logic;beginif full'event and full='1'thencnt2:=not cnt2;if cnt2='1'thenfout<='1';elsefout<='0';end if ;end if ;end process p_div;end 2、实验操作过程如下:八分频器:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity sy51 isport(clk:in std_logic;d:in std_logic_vector(7 downto 0);fout:out std_logic);end ;architecture one of sy51 issignal full :std_logic;beginp_reg:process(clk)variable cnt8:std_logic_vector(7 downto 0);beginif clk'event and clk='1' thenif cnt8="11111111"thencnt8:=d;full<='1';elsecnt8:=cnt8+1;full<='0';end if;end if;end process p_reg;p_div:process(full)variable cnt2:std_logic;beginif full'event and full='1'thencnt2:=not cnt2;if cnt2='1'thenfout<='1';elsefout<='0';end if ;end if ;end process p_div;end ;。

(VHDL实验报告)模值12计数器、分频器的设计

(VHDL实验报告)模值12计数器、分频器的设计

电子科技大学成都学院学院指导教师模值12计数器,分频器设计二、实验目的1、了解二进制计数器的工作原理。

2、时钟在编程过程中的作用。

3、学习数控分频器的设计、分析和测试方法。

4、了解和掌握分频电路实现的方法。

5、掌握EDA技术的层次化设计方法。

三、实验原理(1)二进制计数器中应用最多、功能最全的计数器之一,含异步清零和同步使能的加法计数器的具体工作过程如下:在时钟上升沿的情况下,检测使能端是否允许计数,如果允许计数(定义使能端高电平有效)则开始计数,否则一直检测使能端信号。

在计数过程中再检测复位信号是否有效(低电平有效),当复位信号起作用时,使计数值清零,继续进行检测和计数。

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

(1)“模值12计数器的设计”的实验要求完成的任务是在时钟信号的作用下,通过使能端和复位信号来完成加法计数器的计数。

实验中时钟信号使用数字时钟源模块的1HZ信号,用一位拨动开关K1表示使能端信号,用复位开关S1表示复位信号,用LED模块的LED1~LED4来表示计数的二进制结果。

实验L ED 亮表示对应的位为‘1’,LED灭表示对应的位为‘0’。

通过输入不同的值模拟计数器的工作时序,观察计数的结果。

实验箱中的拨动开关、与FPGA 的接口电路,LED 灯与FPGA 的接口电路以及拨动开关、LED 与F PGA 的管脚连接在实验一中都做了详细说明,这里不在赘述。

数字时钟信号模块的电路原理如下图所示,其时钟输出与F PGA 的管脚连接表如下图所示:信号名称对应FPGA 管脚名说明DIGITAL-CLK C13 数字时钟信号送至FPGA 的C13按键开关模块的电路原理如下图所示:按键开关的输出与F PGA 的管脚连接表如下图所示:五、实验步骤(一)模值12计数器的设计1、建立工程文件1)运行QUARTUSII 软件。

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

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

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

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

实验原理图:
实验源程序:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity dvf is
port(clk_in:in std_logic;
fout:out std_logic);
end;
architecture one of dvf is
signal cnt: integer range 0 to 2048;
signal clk_out:std_logic;
begin
process(clk_in)
begin
if clk_in'event and clk_in = '1' then
if cnt=2048 then
cnt <=0;
clk_out <=not clk_out;
else
cnt<=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 is
port(clk:in std_logic;
s: in std_logic_vector(1 downto 0);
clk_out:out std_logic);
end;
architecture one of dvf is
signal 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;
begin
fen1: process(clk)
begin
if clk'event and clk = '1' then
if cnt2048=2048 then
cnt2048 <=0;
clk1_out <=not clk1_out;
else
cnt2048<=cnt2048+1;
end if;
end if;
end process;
fen2: process(clk)
begin
if clk'event and clk = '1' then
if cnt1024=1024 then
cnt1024 <=0;
clk2_out <=not clk2_out;
else
cnt1024<=cnt1024+1;
end if;
end if;
end process;
fen8: process(clk)
begin
if clk'event and clk = '1' then
if cnt256=256 then
cnt256 <=0;
clk3_out <=not clk3_out;
else
cnt256<=cnt256+1;
end if;
end if;
end process;
fen16: process(clk)
begin
if clk'event and clk = '1' then
if cnt128=128 then
cnt128 <=0;
clk4_out <=not clk4_out;
else
cnt128<=cnt128+1;
end if;
end if;
end process;
xuan: PROCESS(s)
BEGIN
CASE s IS
WHEN "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。

四、实验总结与心得
1、实验中遇到难题要多思考,争取独立解决问题,实在不懂要求助同学或老师。

2、注意endtime中time不要调节的太大,否则仿真时间过长。

相关文档
最新文档