数控分频器

合集下载

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。

2014数字系统与逻辑设计题目(电自 ) (1)

2014数字系统与逻辑设计题目(电自   ) (1)

《数字系统与逻辑设计》课程设计一、基本要求课程设计的基本任务,是着重提高动手能力及在字集成电路应用方面的实践技能,培养综合运用理论知识解决实际问题的能力。

各组人员可分别通过设计图纸,上网查找资料以及撰写报告这几个过程来锻炼逻辑思维能力及实际动手能力。

从实际操作中学习知识,思考存在的问题以及解决问题。

各班同学可选择以小组为单位完成课设,也可以独立完成,每个小组不超过3个人。

各组可从后面所列22个题目中任选一个,但同一个题目一个班内只允许选择一个,不同班级的同样题目的小组课程设计内容和形式不能相同。

由学习委员负责记录分组及协调。

电自12151在18周周1前完成并提交,提交的文件包括:1、一份用WORD完成的课程设计报告,要求打印,格式见后面的附件,2、设计图纸(A2图纸)手绘或使用相关绘图软件。

设计图纸中所有涉及的元器件要附上元器件明细表。

注:每个小组的电子文档要求汇总打包,由各班团支书、班长、学习委员和科代表4人共同负责提交指导教师处批改备案。

二、题目贵州大学明德学院课程设计报告(一号仿宋GB)课程名称:(三号宋体)系部:(三号宋体)专业班级:(三号宋体)小组成员:(三号宋体)指导教师:(三号宋体)完成时间:(三号宋体)×××课程设计报告(二号黑体)一. 设计要求(三号宋体)说明:指所设计题目的具体要求×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××(1).××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××(2).××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××(3).××××××××××××××(小四号宋体)二. 设计的作用、目的(三号宋体)掌握××的原理×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××(小四号宋体)三.设计的具体实现(三号宋体)1.系统概述(小三号宋体)简单介绍系统设计思路与总体方案的可行性论证,各功能块的划分与组成,全面介绍总体工作过程或工作原理。

梁祝

梁祝

乐谱演奏电路设计——梁祝实验目的:利用数控分频器设计硬件乐曲演奏电路实验原理:主系统由三个模块组成:notetaba.vhd tone.vhd speakera.vhd实验过程:(1)新建MIF文件(2)创建Rom模块,将生成的文件命名MUSIC1.VHD 保存并编译LIBRARY ieee;USE ieee.std_logic_1164.all;LIBRARY altera_mf;USE altera_mf.all;ENTITY music1 ISPORT(address : IN STD_LOGIC_VECTOR (7 DOWNTO 0);clock : IN STD_LOGIC ;q : OUT STD_LOGIC_VECTOR (3 DOWNTO 0) );END music1;ARCHITECTURE SYN OF music1 ISSIGNAL sub_wire0 : STD_LOGIC_VECTOR (3 DOWNTO 0);COMPONENT altsyncramGENERIC (address_aclr_a : STRING;clock_enable_input_a : STRING;clock_enable_output_a : STRING;init_file : STRING;intended_device_family : STRING;lpm_hint : STRING;lpm_type : STRING;numwords_a : NATURAL;operation_mode : STRING;outdata_aclr_a : STRING;outdata_reg_a : STRING;widthad_a : NATURAL;width_a : NATURAL;width_byteena_a : NATURAL);PORT (clock0 : IN STD_LOGIC ;address_a : IN STD_LOGIC_VECTOR (7 DOWNTO 0);q_a : OUT STD_LOGIC_VECTOR (3 DOWNTO 0) );END COMPONENT;BEGINq <= sub_wire0(3 DOWNTO 0);altsyncram_component : altsyncramGENERIC MAP (address_aclr_a => "NONE",clock_enable_input_a => "BYPASS",clock_enable_output_a => "BYPASS",init_file => "music.mif",intended_device_family => "Cyclone III",lpm_hint => "ENABLE_RUNTIME_MOD=NO",lpm_type => "altsyncram",numwords_a => 256,operation_mode => "ROM",outdata_aclr_a => "NONE",outdata_reg_a => "CLOCK0",widthad_a => 8,width_a => 4,width_byteena_a => 1)PORT MAP (clock0 => clock,address_a => address,q_a => sub_wire0);END SYN;(3)新建VHDL文件,设置8位二进制,作为音符数据ROM的地址发生器,并利用原件例化调用MUSIC1.library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity NOTETABS isport(CLK: in std_logic;TONEINDEX:OUT std_logic_vector(3 downto 0));end ;architecture one of NOTETABS isCOMPONENT MUSIC1PORT(clock : IN STD_LOGIC ;address : IN STD_LOGIC_VECTOR (7 DOWNTO 0);q : OUT STD_LOGIC_VECTOR (3 DOWNTO 0));END COMPONENT;SIGNAL COUNTER:std_logic_vector(7 downto 0);BEGINCNT8:PROCESS(CLK,COUNTER)BEGINIF COUNTER=138 THEN COUNTER<="00000000";ELSIF(CLK'EVENT AND CLK='1')THEN COUNTER<=COUNTER+1;END IF;END PROCESS;U1 :MUSIC1 PORT MAP(address=>COUNTER,q=>TONEINDEX,CLOCK=>CLK);END;()编译并生成原理图文件(4)新建VHDL文件为分频预置数查表电路,为SPEAKERA提供所发音的分频预置数,library ieee;use ieee.std_logic_1164.all;entity TONE isPORT(INDEX :in std_logic_vector(3 downto 0); --音符输入信号CODE: out std_logic_vector(3 downto 0); --音符显示信号HIGH :out std_logic; --高低音显示信号TONE : OUT std_logic_vector(10 downto 0)); --音符的分频系数end TONE;architecture ONE of TONE isbeginSEARCH :process(INDEX)begincase INDEX iswhen "0000" => TONE<="11111111111" ; CODE <="0000"; HIGH<='0';when "0001" => TONE<="01100000101" ; CODE <="0001"; HIGH<='0';when "0010" => TONE<="01110010000" ; CODE <="0010"; HIGH<='0';when "0011" => TONE<="10000001100" ; CODE <="0011"; HIGH<='0';when "0101" => TONE<="10010101101" ; CODE <="0101"; HIGH<='0';when "0110" => TONE<="10100001010" ; CODE <="0110"; HIGH<='0';when "0111" => TONE<="10101011100" ; CODE <="0111"; HIGH<='0';when "1000" => TONE<="10110000010" ; CODE <="0001"; HIGH<='1';when "1001" => TONE<="10111001000" ; CODE <="0010"; HIGH<='1';when "1010" => TONE<="11000000110" ; CODE <="0011"; HIGH<='1';when "1100" => TONE<="11001010110" ; CODE <="0101"; HIGH<='1';when "1101" => TONE<="11010000100" ; CODE <="0110"; HIGH<='1';when "1111" => TONE<="11011000000" ; CODE <="0001"; HIGH<='1';when others => NULL;end case;end process;end ;(5)编译并导出原理图文件(6)新建VHDL文件数控分频器用于音符的频率获得,library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity SPEAKER isport(CLK: in std_logic; --系统时钟12MHZTONE: in std_logic_vector(10 downto 0); --音符分频系数SPKS: out std_logic); --驱动扬声器的音频信号end SPEAKER;architecture one of SPEAKER issignal PRECLK, FULLSPKS:std_logic;begindivideclk:process(CLK) --此进程对系统时钟进行16分频variable COUNT4:std_logic_vector(3 downto 0);beginpreclk<='0';if COUNT4>11 then PRECLK<='1';count4:="0000";elsif clk'event and clk='1'then count4:=count4+1;end if;end process ;genspks:process(PRECLK,TONE) --对0.75MHZ的脉冲再次分频,得到所需要的音符频率variable COUNT11:std_logic_vector(10 downto 0);beginif PRECLK'event and PRECLK='1' thenif COUNT11=16#7FF# then COUNT11:=TONE; FULLSPKS<='1';else COUNT11:=COUNT11+1; FULLSPKS<='0';end if;end if;end process ;DELAYSPKS:process(FULLSPKS) --此进程对FULLSPKS进行2分频variable COUNT2: std_logic;beginif FULLSPKS'event and FULLSPKS='1' then COUNT2:=NOT COUNT2;if COUNT2='1' then SPKS<='1';else SPKS<='0';end if;end if;end process ;end ;(7)编译并生成原理图模块(8)编译整个与原理图文件并用波形仿真(9)分配引脚并下载到实验箱(10)实验总结:本次实验利用宏功能模块来制作梁祝的乐曲演奏,简单易懂,较之vhdl容易很多。

音乐数控分频器 计算

音乐数控分频器 计算

音乐数控分频器计算
一个分频器设计的参考公式,在实际中,分频器的各元件数值可能与这相比有相当大的不同,这是因为扬声器的阻抗特性并不是线性的,而是随着频率的升高同样也在上升。

而且扬声器的频响特性也并不是完全平直的,在它的频响特性曲线上有许许多多的微小峰谷,这些都给分频器的实际设计带来了非常大的影响,因为众所周知的原因,分频器的理论计算公式是建立在以理想电阻取代扬声器的基础上的。

如果是采用加法计数器来实现分频,预置数为2,即起始计数值=2,那么还有个重要的参数是需要知道的,就是计数器的模。

从左到右,触发器输入输出设为D1、Q1,D2、Q2;D1 = Q2,D2 =(Q1+Q2)' ;Q2n = D2;设初态为Q1 = Q2 = 0;那么就是Q1=0,Q2=0,D1=0,D2=1;第1个脉冲到来后,Q1=0,Q2=1--->D1=1--->D2=0;第2个脉冲到来后,Q1=1,Q2=0--->D1=0--->D2=0;第3个脉冲到来后,Q1=0,
Q2=0--->D1=0--->D2=1;此时就回到了初态,从而进入下一个循环,就是每3个时钟脉冲一个循环;这里Q1、Q2互为反相。

电容C的计算公式:
C=1(2πfR)
式中f是分频频率,R是高音扬声器的阻抗。

分频频率可以选择在2~5kHz左右。

例如分频频率选在4kHz,高音扬声器阻抗为8Ω,则1(2π*4000*8)≈0.000005法拉,换算成微法就是5微法。

注意这是个无极性电容。

电容和电感组成效果更好的二分频器。

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')时,输出为时钟上升沿时的前一个数,从仿真波形看,实现了此功能。

(完整版)FPGA课程设计(最终版)

(完整版)FPGA课程设计(最终版)

课程设计任务书学生姓名:专业班级:指导教师:工作单位:信息工程学院题目: 电子琴的设计课程设计目的:《FPGA原理与应用》课程设计的目的是为了让学生熟悉基于VHDL语言进行FPGA开发的全流程,并且利用FPGA设计进行专业课程理论知识的再现,让学生体会EDA技术的强大功能,为今后使用FPGA进行电子设计奠定基础。

课程设计内容和要求设计内容:(1)设计一个八音电子琴。

(2)由键盘输入控制音响,同时可自动演奏乐曲。

(3)用户可以将自己编制的乐曲存入电子琴,演奏时可选择键盘输入乐曲或者已存入的乐曲。

要求每个学生单独完成课程设计内容,并写出课程设计说明书、说明书应该包括所涉及到的理论部分和充足的实验结果,给出程序清单,最后通过课程设计答辩。

时间安排:指导教师签名:年月日系主任(或责任教师)签名:年月日目录摘要 (1)Abstract (2)1设计意义和要求 (3)1.1设计意义 (3)1.2功能要求 (3)2方案论证及原理分析 (4)2.1实现方案比较 (4)2.2乐曲实现原理 (4)2.3系统组成及工作原理 (6)3系统模块设计 (8)3.1顶层模块的设计 (8)3.2乐曲自动演奏模块的设计 (8)3.3音阶发生器模块的设计 (9)3.4数控分频器模块的设计 (9)4程序设计 (11)4.1VHDL设计语言和ISE环境简介 (11)4.2顶层模块的程序设计 (12)4.3乐曲自动演奏模块的程序设计 (13)4.4音阶发生器模块的程序设计 (13)4.5数控分频模块的程序设计 (14)5设计的仿真与实现 (15)5.1乐曲自动演奏模块仿真 (15)5.2音调发生模块仿真 (18)5.3数控分频模块仿真 (19)5.4电子琴系统的仿真 (20)5.5设计的实现 (22)5.6查看RTL视图 (23)5.7查看综合报告 (25)6心得体会 (31)7参考文献 (32)8附录 (33)摘要随着基于FPGA的EDA技术的发展和应用领域的扩大与深入,EDA技术在电子信息、通信、自动控制用计算机等领域的重要性日益突出。

(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 软件。

数控分频的原理

数控分频的原理

数控分频的原理数控分频是一种将输入信号的频率分成多个不同频率的输出信号的技术。

它在许多领域中都有广泛的应用,包括通信、无线电、音频和视频等。

数控分频的原理基于信号处理和频率合成的概念。

它通常由一个称为分频器的电路来实现,该电路可以将输入信号的频率分成多个输出信号的频率。

数控分频的基本原理是通过改变输入信号的周期或频率来实现频率分割。

这可以通过使用计数器和比较器来实现。

计数器用于计算输入信号的周期或频率,而比较器用于将计数器的输出与预设的阈值进行比较。

当计数器的输出达到或超过预设的阈值时,比较器会产生一个脉冲信号,表示一个输出信号的周期已经完成。

在数控分频中,计数器的计数范围决定了输出信号的频率范围。

例如,如果计数器的计数范围为0到99,那么输出信号的频率将是输入信号频率的1/100。

如果计数范围为0到9,那么输出信号的频率将是输入信号频率的1/10。

通过调整计数器的计数范围,可以实现不同的输出频率。

除了计数器和比较器,数控分频还可以使用其他电路来实现更复杂的功能。

例如,可以使用锁相环(PLL)来实现精确的频率合成。

PLL是一种反馈控制系统,可以将输入信号的频率与参考信号的频率进行比较,并通过调整输出信号的相位和频率来使它们保持同步。

通过使用PLL,可以实现更高精度和稳定性的频率分割。

数控分频还可以通过使用数字信号处理(DSP)技术来实现。

DSP是一种将模拟信号转换为数字信号,并对其进行处理和分析的技术。

通过使用DSP,可以实现更复杂的信号处理功能,例如滤波、混频和调制等。

数控分频的应用非常广泛。

在通信领域,数控分频可以用于频率调制和解调、信号生成和信号分析等。

在无线电领域,数控分频可以用于频率合成器、频率计数器和频谱分析仪等。

在音频和视频领域,数控分频可以用于音频合成器、视频处理器和数字音频播放器等。

总之,数控分频是一种将输入信号的频率分成多个不同频率的输出信号的技术。

它基于信号处理和频率合成的原理,通过使用计数器、比较器、锁相环和数字信号处理等技术来实现。

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

数字起航—数控分频器零基础电子设计系列课程主讲人:范秋华国家级电工电子实验教学中心(青岛大学)4.4.5 数控分频器定义实现分频值与计数初值、计数器模的关系举例数控分频器数控分频器就是当在输入端给定不同输入数据时,将对输入的时钟信号clk进行相应的分频输出clkout。

10.Architecture a of fdiv is11.signal cnt: integer range 0 to n;12.signal temp: std_logic;13.Begin14.process (clk)15.begin16.if (clk'event and clk='1') then17.if(cnt<n ) then cnt<= cnt+1; temp <= ‘0’;18.else cnt<= 0; temp=‘1’;19.end if; end if;20.end process;21.clkout<= temp;22.End a;case keys7 iswhen "0000001" => if (clk'event and clk='1') thenif count <"11111111111111110" then count:=count + 1; fullspks<= '0'; else fullspks<='1'; count:=0; end if;end if; --1when "0000010" => if (clk'event and clk='1') thenif count <"11111111111111100" then count:=count + 1;fullspks <= '0'; else fullspks<='1'; count:=0; end if;end if; --2when "0000100" => if (clk'event and clk='1') thenif count <"11111111111111000" then count:=count + 1;fullspks <= '0'; else fullspks<='1'; count:=0; end if;end if; --3when "0001000" => if (clk'event and clk='1') thenif count <"1111111111110000" then count:=count + 1;fullspks <= '0'; else fullspks<='1'; count:=0; end if;end if; --4when "0010000" =>if (clk'event and clk='1') thenif count <"1111111111110000" then count:=count + 1; fullspks<= '0'; else fullspks<='1'; count:=0; end if;end if; --5when "0100000" =>if (clk'event and clk='1') thenif count <"1111111111100000" then count:=count + 1; fullspks<= '0'; else fullspks<='1'; count:=0; end if;end if; --6when others => null;end case;end process;process (keys7,clk)Variable count: integer range 0 to 20;beginif (clk'event and clk='1') thencase keys7 iswhen "0000001" => if count <4 then count:=count + 1; fullspks<= '0'; else fullspks<='1'; count:=0;end if; --1when "0000010" => if count <6 then count:=count + 1;fullspks <= '0'; else fullspks<='1'; count:=0;end if; --2when "0000100" => if count <8 then count:=count + 1;fullspks <= '0'; else fullspks<='1'; count:=0;end if; --3when "0001000" => if count <10 then count:=count + 1;fullspks <= '0'; else fullspks<='1'; count:=0;end if; --4when "0010000" =>if count <12 then count:=count + 1; fullspks<= '0'; else fullspks<='1'; count:=0;end if; --5when "0100000" =>if count <14 then count:=count + 1; fullspks<= '0'; else fullspks<='1'; count:=0;end if; --6when others => null;end case; end if;End process;国家级电工电子实验教学中心数字启航数控分频器library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity shufen isport ( clk : in std_logic ; --时钟Tone : in std_logic_vector (12 downto 0 ); clkout : out std_logic);end shufen;architecture Behavior of shufen issignal fullspks : std_logic ;begin p1: process ( clk ,Tone)variable count12 : std_logic_vector( 12 downto 0 ) ;beginif (clk 'event and clk='1') thenif count12 <"1111111111111" thencount12:=count12 + 1; fullspks <= '0'; else fullspks <='1'; count12 := Tone;end if;end if;end process;Clkout<=fullspks;end ;p1: process ( clk,Tone)variable count10 : integer ( 99 downto0 ) ; beginif (clk'event and clk='1') thenif count10 < 99 thencount10:=count10 + 1; fullspks<= '0';else fullspks<='1'; count10 := Tone;end if;end if;end process;Clkout<=fullspks;end;注意分频值与计数初值、计数器模的关系计数器模:100分频值:10计数初值:90p1: process ( clk,Tone)variable count10 : std_logic_vector( 9downto0 ) ; beginif (clk'event and clk='1') thenif count10 <"1111111111" thencount10:=count10 + 1; fullspks<= '0';else fullspks<='1'; count10 := Tone;end if;end if;end process;Clkout<=fullspks;end;再见!。

相关文档
最新文档