fpga底层代码,正弦波,方波,三角波,锯齿波

fpga底层代码,正弦波,方波,三角波,锯齿波

ID:10013778

大小:48.50 KB

页数:7页

时间:2018-05-20

fpga底层代码,正弦波,方波,三角波,锯齿波_第1页
fpga底层代码,正弦波,方波,三角波,锯齿波_第2页
fpga底层代码,正弦波,方波,三角波,锯齿波_第3页
fpga底层代码,正弦波,方波,三角波,锯齿波_第4页
fpga底层代码,正弦波,方波,三角波,锯齿波_第5页
资源描述:

《fpga底层代码,正弦波,方波,三角波,锯齿波》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、一.频率控制模块代码LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYFREQUENCYISPORT(CLK:INSTD_LOGIC;A:INSTD_LOGIC_VECTOR(4DOWNTO0);--设置A的初值FOUT:OUTSTD_LOGIC);END;ARCHITECTUREoneOFFREQUENCYISSIGNALFULL:STD_LOGIC;BEGINP_REG:PROCESS(CLK)VARIABLECNT1:STD_LOGIC_VECTOR(4DOW

2、NTO0);BEGINIFCLK'EVENTANDCLK='1'THENIFCNT1="11111"THENCNT1:=A;--当CNT1计数计满时,输入数据D被同步预置给计数器CNT1FULL<='1';--同时使溢出标志信号FULL输出为高电平ELSECNT1:=CNT1+1;--否则继续作加1计数FULL<='0';--且输出溢出标志信号FULL为低电平ENDIF;ENDIF;ENDPROCESSP_REGP_DIV:PROCESS(FULL)VARIABLECNT2:STD_LOGIC;BEGINIFFULL'EVENTANDFULL='1'THENCNT2

3、:=NOTCNT2;--如果溢出标志信号FULL为高电平,D触发器输出取反IFCNT2='1'THENFOUT<='1';ELSEFOUT<='0';ENDIF;ENDIF;ENDPROCESSP_DIVEND;一.按键选择模块 代码 LIBRARY IEEE;  USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL;  USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY BUTTON IS     PORT ( d : IN  STD_LOGIC_VECTOR(2 DOWNT

4、O 0)               a,b,c  : OUT STD_LOGIC  )    END; ARCHITECTURE ONE OF BUTTON IS BEGIN PROCESS( d ) BEGIN     CASE d IS         WHEN "000" => NULL;         WHEN OTHERS => a <= d(0);--dlt                        b <= d(1);--sqr                       c <= d(2);--sin  END CASE;  END PROC

5、ESS; END; 三角波信号产生模块 代码 library ieee;  use ieee.std_logic_1164.all;  use ieee.std_logic_arith.all;  use ieee.std_logic_unsigned.all;  entity delta is port ( clk : in  std_logic               clr : in  std_logic;            q  : out std_logic_vector(7 downto 0)  )    end delta; architect

6、ure one of delta is  begin process( clk,clr)   variable num : std_logic_vector(7 downto 0);   variable ff : std_logic;     begin    if clr = '0' then       num := "00000000";    else if clk'event and clk = '1' then--时钟信号有上升沿时有效     if ff = '0' then       if  num = "11111000" then      

7、     ff :='1';            else           num := num + 8;      end if;--以上,ff=0时,上升,直至num加到11111000时,使ff=1    else    if num = "00000111" then       num := "00000000";       ff := '0';    else       num := num -8;--以上,ff=1时,下降,直至num减到00000111时,使ff=0      end if;      end if;      end 

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。