基于fpga的数字闹钟设计内容摘要:
ess(clk) begin if clk39。 event and clk=39。 139。 then if (sec1=0101 and sec2=1001)then sec1=0000。 else if sec2=1001then sec1=sec1+1。 end if。 end if。 end if。 end process s110。 秒个位 s220:process(clk) begin if clk39。 event and clk=39。 139。 then if sec2=1001 then sec2=0000。 else sec2=sec2+1。 end if。 end if。 end process s220。 时间设置小时部分 sethour1:process(clk,seth2) begin if clk39。 event and clk=39。 139。 then if seth1=0010and seth2=0011 then seth1=0000。 elsif seth2=1001 then seth1=seth1+1。 end if。 end if。 end process sethour1。 sethour2:process(clk,md1,md2,seth1) begin if clk39。 event and clk=39。 139。 then if (seth1=0010and seth2=0011)or seth2=1001then 选题背景 12 seth2=0000。 elsif md1=39。 139。 and md2=00 then seth2=seth2+1。 end if。 end if。 end process sethour2。 时间设置分钟部分 setmin1:process(clk,setm2) begin if clk39。 event and clk=39。 139。 then if setm1=0101and setm2=1001then setm1=0000。 elsif setm2=1001then setm1=setm1+1。 end if。 end if。 end process setmin1。 setmin2:process(clk,md1,md2) begin if clk39。 event and clk=39。 139。 then if setm2=1001then setm2=0000。 elsif md1=39。 139。 and md2=01then setm2=setm2+1。 end if。 end if。 end process setmin2。 闹铃 speaker:process(clk,hou1,hou2,min1,min2) begin if clk39。 event and clk=39。 139。 then if seth1=hou1 and seth2=hou2 and setm1=min1 and setm2=min2 then clken=39。 139。 else clken=39。 039。 end if。 end if。 end process speaker。 disp:process(md1,hou1,hou2,min1,min2,sec1,sec2,seth1,seth2,setm1,setm2) begin if md1=39。 039。 then计时时间显示和设置模式 h1=hou1。 h2=hou2。 m1=min1。 m2=min2。 s1=sec1。 s2=sec2。 else 闹铃时间现实和设置模式 h1=seth1。 h2=seth2。 m1=setm1。 m2=setm2。 s1=1111。 s2=1111。 end if。 end process disp。 end one。 第四 章 模块电路设计 13 3)乐曲演奏模块: LIBRARY IEEE。 USE。 USE。 ENTITY Speakera IS PORT ( clk : IN STD_LOGIC。 Tone : IN STD_LOGIC_VECTOR (10 DOWNTO 0)。 SpkS : OUT STD_LOGIC )。 END。 ARCHITECTURE one OF Speakera IS SIGNAL PreCLK, FullSpkS : STD_LOGIC。 BEGIN DivideCLK : PROCESS(clk) VARIABLE Count4 : STD_LOGIC_VECTOR (3 DOWNTO 0)。 BEGIN PreCLK = 39。 039。 将 CLK 进行 16 分频, PreCLK 为 CLK 的 16 分频 IF Count411 THEN PreCLK = 39。 139。 Count4 := 0000。 ELSIF clk39。 EVENT AND clk = 39。 139。 THEN Count4 := Count4 + 1。 END IF。 END PROCESS。 GenSpkS : PROCESS(PreCLK, Tone) 11 位可预置计数器 VARIABLE Count11 : STD_LOGIC_VECTOR (10 DOWNTO 0)。 BEGIN IF PreCLK39。 EVENT AND PreCLK = 39。 139。 THEN IF Count11 = 167FF THEN Count11 := Tone。 FullSpkS = 39。 139。 ELSE Count11 := Count11 + 1。 FullSpkS = 39。 039。 END IF。 END IF。 END PROCESS。 DelaySpkS : PROCESS(FullSpkS)将输出再 2 分频,展宽脉冲,使扬声器有足够功率发音 VARIABLE Count2 : STD_LOGIC。 BEGIN IF FullSpkS39。 EVENT AND FullSpkS = 39。 139。 THEN Count2 := NOT Count2。 IF Count2 = 39。 139。 THEN SpkS = 39。 139。 ELSE SpkS = 39。 039。 END IF。 END IF。 END PROCESS。 END。 LIBRARY IEEE。 USE。 USE。 ENTITY NoteTabs IS PORT (clk : IN STD_LOGIC。 ToneIndex : OUT STD_LOGIC_VECTOR (3 DOWNTO 0) )。 END。 ARCHITECTURE one OF NoteTabs IS COMPONENT MUSIC 音符数据 ROM PORT(address : IN STD_LOGIC_VECTOR (7 DOWNTO 0)。 选题背景 14 inclock : IN STD_LOGIC。 q : OUT STD_LOGIC_VECTOR (3 DOWNTO 0))。 END COMPONENT。 SIGNAL Counter : STD_LOGIC_VECTOR (7 DOWNTO 0)。 BEGIN CNT8 : PROCESS(clk,Counter) BEGIN IF Counter=138 THEN Counter = 00000000。 ELSIF (clk39。 EVENT AND clk = 39。 139。 ) THEN Counter = Counter+1。 END IF。 END PROCESS。 u1 : MUSIC PORT MAP(address=Counter , q=ToneIndex, inclock=clk)。 END。 LIBRARY IEEE。 USE。 ENTITY ToneTaba IS PORT ( Index : IN STD_LOGIC_VECTOR (3 DOWNTO 0)。 Tone : OUT STD_LOGIC_VECTOR (10 DOWNTO 0)。 en : IN STD_LOGIC)。 END。 ARCHITECTURE one OF ToneTaba IS BEGIN PROCESS(Index,en) BEGIN IF en=39。 039。 THEN Tone=11111111111。 使能信号 ELSE CASE Index IS 译码电路,查表方式,控制音调的预置数 WHEN 0000 = Tone=11111111111。 WHEN 0001 = Tone=01100000101。 WHEN 0010 = Tone=01110010000。 WHEN 0011 = Tone=10000001100。 WHEN 0101 = Tone=10010101101。 WHEN 0110 = Tone=10100001010。 WHEN 0111 = Tone=10101011100。 WHEN 1000 = Tone=10110000010。 WHEN 1001 = Tone=10111001000。 WHEN 1010 = Tone=11000000110。 WHEN 1100 = Tone=11001010110。 WHEN 1101 = Tone=11010000100。 WHEN 1111 = Tone=11011000000。 WHEN OTHERS = NULL。 END CASE。 END IF。 END PROCESS。 END。 LIBRARY ieee。 USE。 LIBRARY altera_mf。 USE。 ENTITY music IS PORT 第四 章 模块电路设计 15 ( address : IN STD_LOGIC_VECTOR (7 DOWNTO 0)。 inclock : IN STD_LOGIC。 q : OUT STD_LOGIC_VECTOR (3 DOWNTO 0))。 END music。 ARCHITECTURE SYN OF music IS SIGNAL sub_wire0 : STD_LOGIC_VECTOR (3 DOWNTO 0)。 COMPONENT altsyncram GENERIC (intended_device_family : STRING。 width_a : NATURAL。 widthad_a : NATURAL。 numwords_a : NATURAL。 operation_mode : STRING。 outdata_reg_a : STRING。 address_aclr_a : STRING。 outdata_aclr_a : STRING。 width_byteena_a : NATURAL。 init_file : STRING。 lpm_hint : STRING。 lpm_type : STRING)。 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。基于fpga的数字闹钟设计
相关推荐
SRAM组成。 这 3种可编程电路是:可编程逻辑模块( CLBConfigurable Logic Block) 、输入 /输出模块( IOBI/O Block)和互连资源( IR—Interconnect Resource)。 可编程逻辑模块 CLB是实现逻辑功能的 基本单元,它们通常规则的排列成一个阵列,散布于整个芯片;可编程输入 /输出模块( IOB)主要完成芯片上的逻辑与外部封装脚的接口
系统进行验证以及错误的检验。 同时也可以进行检查设计者的设计的程序是否满足设计的要求来进行的仿真。 Quartus II 简介 Quartus II 专门为开发的软件 FPGA 提供的集成环境。 Quartus II 的 设计工具支持 的一般有 软件 VHDL、 软件 HDL 和图形的设计, 这 些软件中在 其内部有 VHDL、 HDL 逻辑编辑器 对其设计的对象进行编译。 Quartus II
0)。 MING: OUT STD_LOGIC)。 END FENGMING。 ARCHITECTURE BHV OF FENGMING IS SIGNAL ING : STD_LOGIC。 BEGIN PROCESS (BCD) BEGIN IF BCD=0000000000000000 THEN ING=39。 139。 ELSE IF BCD=0001000000000000 THEN
使用一些简单的算法。 这些优势使得 FIR 数字滤波器已成为设计工程师的首选。 采用 VHDL 硬件描述语言或用 VerilogHDL 设计数字滤波器。 自写程序往往不能达到很好的优化,使得在性能 一般 ,但良好的IPcore Altera 公司需要 收费的。 因此, 使用 DSP Builder 的 FPGA 设计方法, FIR滤波器设计的基础上更加简单,同时也能满足设计要求。 FIR 滤波器
0 年代初,从CAD(计算机辅助没计)、 CAM(算机辅助制造)、 CAT(计算机辅助测试 )和 CAE(计算机辅助工程 )的概念发展而来的。 EDA 技术就是以计算机为工具,在EDA 软件平台上,对以硬件描述语言 VHDL 为系统逻辑描述手段完成的设计文件自动地完成逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑行局布线、逻辑仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工 作
,具有灵活性和及时面市优势的 FPGA与 ASIC 相比更有竞争性,在数字 消费市场上的应用也急剧增加。 第一代 Cyclone 系列迄今发售了 3百多万片,在全球拥有 3,000 多位客户,对大批量低成本数字消费市场有着巨大的影响,该市场消纳了三分之一的器件。 根据 Gartner Dataquest 调查,显示 通信 系统时钟分频 A/D 转换 开始 . . 在 2020 年仅消费电子市场对