FPGA编程基础之实验程序.docx
- 文档编号:11585383
- 上传时间:2023-03-19
- 格式:DOCX
- 页数:9
- 大小:30.26KB
FPGA编程基础之实验程序.docx
《FPGA编程基础之实验程序.docx》由会员分享,可在线阅读,更多相关《FPGA编程基础之实验程序.docx(9页珍藏版)》请在冰豆网上搜索。
FPGA编程基础之实验程序
目录
分频器实验:
2
1、分频倍数为2N2
2、分频倍数为偶数,但不是2N2
(1)10分频,每10个clk输出一个高脉冲。
2
(2)10分频,占空比为50%3
(3)一般偶数分频程序4
3、分频倍数为奇数5
串并-并串变换实验6
1、数字信源模块:
6
2、串并变换模块:
6
3、串并-并串顶层电路图8
4、仿真波形8
正选信号发生器实验:
9
分频器实验:
1、分频倍数为2N
例如:
32分频
--============================
--计数器(0~31)
--============================
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.all;
USEIEEE.STD_LOGIC_UNSIGNED.all;
ENTITYcounter32IS
PORT(clk:
INSTD_LOGIC;
d:
BUFFERSTD_LOGIC_VECTOR(4DOWNTO0));--进行32计数,数据类型宽度为5
ENDcounter32;
ARCHITECTUREbehavOFcounter32IS
BEGIN
PROCESS(clk)
BEGIN
IF(clk'eventANDclk='1')THEN
d<=d+1;
ENDif;
ENDPROCESS;
ENDbehav;
2、分频倍数为偶数,但不是2N
例如:
10分频
(1)10分频,每10个clk输出一个高脉冲。
--================================
--10分频,每10个clk输出一个高脉冲。
--================================
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
--USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYfenpin10IS
PORT(clk:
INSTD_LOGIC;
clkout:
OUTSTD_LOGIC);
ENDfenpin10;
ARCHITECTUREbehavOFfenpin10IS
BEGIN
PROCESS(clk)
VARIABLEn:
INTEGERrange0to9:
=0;
BEGIN
IFclk'EVENTANDclk='1'THEN
IFn<9THEN--10分频
n:
=n+1;
clkout<='0';
ELSE
n:
=0;
clkout<='1';
ENDIF;
ENDIF;
ENDPROCESS;
ENDbehav;
(2)10分频,占空比为50%
--================================
--10分频,占空比为50%。
--================================
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
--USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYfenpin_10IS
PORT(clk:
INSTD_LOGIC;
clkout:
BUFFERSTD_LOGIC);
ENDfenpin_10;
ARCHITECTUREbehavOFfenpin_10IS
BEGIN
PROCESS(clk)
VARIABLEn:
INTEGERRANGE0to4:
=0;
BEGIN
IFclk'EVENTANDclk='1'THEN
IFn<4THEN--10分频
n:
=n+1;
ELSE
n:
=0;
clkout<=NOTclkout;
ENDIF;
ENDIF;
ENDPROCESS;
ENDbehav;
(3)一般偶数分频程序
--================================
--i分频(i为偶数),占空比为50%。
--定义常数m,m=i/2-1
--================================
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYfenpin_iIS
PORT(clk:
INSTD_LOGIC;
clkout:
BUFFERSTD_LOGIC);
ENDfenpin_i;
ARCHITECTUREbehavOFfenpin_iIS
CONSTANTm:
integer:
=4;--设置参数m=i/2-1,实现i分频
BEGIN
PROCESS(clk)
VARIABLEn:
INTEGERRANGE0tom:
=0;
BEGIN
IFclk'EVENTANDclk='1'THEN
IFn n: =n+1; ELSE n: =0; clkout<=NOTclkout;--i分频 ENDIF; ENDIF; ENDPROCESS; ENDbehav; 3、分频倍数为奇数 例如,7分频 mod=分频数/2+0.5=7/2+0.5=4 串并-并串变换实验 1、数字信源模块: libraryieee; useieee.std_logic_1164.all; entitym_15is port(clk: instd_logic; m: outstd_logic); endm_15; architecturebehavofm_15is constantm_15: std_logic_vector(0to14): ="000111101011001"; begin process(clk) variablen: integerrange0to14: =0; begin ifclk'eventandclk='1'then m<=m_15(n); ifn=14then n: =0; elsen: =n+1; endif; endif; endprocess; endbehav; 2、串并变换模块: --=================================== --串并变换 --1路串行码输入(m),4路并行码输出(dataout1_4[3..0]) --en为串行输入使能端,高电平有效 --oe为并行输出使能端,高电平指示输出起始时刻,持续一个时钟周期 --s用于循环计数(0,1,2,3),并串变换时有用 --==================================== LIBRARYIEEE; USEIEEE.STD_LOGIC_1164.ALL; ENTITYs_p_1_4IS PORT(clk,m,en: INSTD_LOGIC; dataout1_4: OUTSTD_LOGIC_VECTOR(3DOWNTO0); oe: BUFFERSTD_LOGIC; s: BUFFERINTEGERRANGE0TO3); ENDs_p_1_4; ARCHITECTUREbehavOFs_p_1_4IS SIGNALy: STD_LOGIC_VECTOR(3DOWNTO0); BEGIN P1: PROCESS(clk,en) BEGIN IF(clk'EVENTANDclk='1')THEN IF(en='0')THEN--en为串行输入使能端,高电平有效 s<=0; ELSE y(s)<=m;--先移入的为低位 s<=s+1; IF(s=3)THEN oe<='1'; ELSE oe<='0'; ENDIF; ENDIF; ENDIF; ENDPROCESSP1; P2: PROCESS(oe) BEGIN IF(oe='1')THEN--oe为并行输出使能端 dataout1_4<=y; ENDIF; ENDPROCESSP2; ENDbehav; 3、串并-并串顶层电路图 4、仿真波形 正选信号发生器实验: --============================= --正弦信号产生模块; --输入信号: 时钟clk,使能端ena(低电平有效),输出8bit采样值编码: s: [7..0]; --8个采样点,量化后取值分别为0,54,76,54,0,-54,-76,-54; --每个采样点进行8bit二进制编码; --最高位'1'表示正数,'0'表示负数,负数用补码表示(正数取反+1)。 --============================== LIBRARYIEEE; USEIEEE.STD_LOGIC_1164.all; ENTITYsinIS PORT(clk: INSTD_LOGIC; ena: INSTD_LOGIC; s: OUTSTD_LOGIC_VECTOR(7DOWNTO0)); ENDsin; ARCHITECTUREbehavOFsinIS SIGNALn: INTEGERRANGE0TO7; BEGIN PROCESS(ena,clk) BEGIN IFena='1'THEN n<=0; ELSE IF(clk'EVENTANDclk='1')THEN CASEnIS WHEN0=>s<="10000000"; WHEN1=>s<="10110110"; WHEN2=>s<="11001100"; WHEN3=>s<="10110110"; WHEN4=>s<="10000000"; WHEN5=>s<="01001010"; WHEN6=>s<="00110100"; WHEN7=>s<="01001010"; ENDCASE; n<=n+1; ENDIF; ENDIF; ENDPROCESS; ENDbehav;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- FPGA 编程 基础 实验 程序