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