通信与电子实验4.docx
《通信与电子实验4.docx》由会员分享,可在线阅读,更多相关《通信与电子实验4.docx(9页珍藏版)》请在冰豆网上搜索。
通信与电子实验4
实验四D/A实验
一.实验目的
了解EDA技术在数模、模数变换中的应用,学会用FPGA控制DAC0832转换和利用EDA构造状态机完成ADC0809的采样、数据显示的时序过程。
二.实验要求
(1)构造波形发生器,产生方波、三角波、锯齿波和正弦波;
(2)可按键改变输出波形频率。
三.实验原理
DAC0832有三种连接方式:
直通方式、单缓冲方式和双缓冲方式。
实验原理如图4.1所示.
图4.1D/A实验原理图
在本实验中,DAC0832工作在直通方式下。
CS1和WR1直接给低电平。
DAC0832直通工作;数据产生模块不停地将8bit的变化数据输入到DAC0832的8位数字量输入线上,DAC0832输出相应的变化的模拟量。
实验中,由于EAB单元大小的限制和波形精度的要求,一个周期波形用256点还原。
构造的ROM为8×256大小。
四.实验的顶层原理图
五.功能实现
系统包括三大模块:
可变分频模块PINCHOOSE、地址扫描输出模块SOURCE和波形生成模ROMBOXIN。
通过分频控制ROM地址扫描速度以得到不同频率的波形输出;通过替换配置文件改变波形生成模块中初始数据可得到锯齿波、方波、三角波和正弦波等多种波形。
1)PINCHOOSE的模块
PINCHOOSE产生125KHZ和250KHZ
libraryieee;
useieee.std_logic_1164.all;
entitypinchooseis
port(f1m:
instd_logic;
key1:
instd_logic;
f125k:
outstd_logic);
endpinchoose;
architecturebehaveofpinchooseis
signalcount:
integerrange0to7;
begin
divideclk:
process(f1m)
begin
if(f1m'eventandf1m='1')then
ifkey1='1'then
ifcount<3thenf125k<='0';count<=count+1;
elsifcount<7thenf125k<='1';count<=count+1;
elsifcount>=7thenf125k<='0';count<=0;
endif;
else
ifcount<1thenf125k<='0';count<=count+1;
elsifcount<3thenf125k<='1';count<=count+1;
elsifcount>=3thenf125k<='0';count<=0;
endif;
endif;
endif;
endprocess;
endbehave;
功能仿真波形
当KEY按下(即KEY=1)时将1MHZ8分频输出125KHZ,当KEY松开时将1MHZ4分频输出250KHZ.
2)SOURCES地址扫描源
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entitysourcesis
port(clk:
instd_logic;
outer:
outstd_logic_vector(7downto0));
endsources;
architecturebehaveofsourcesis
signaltemp:
std_logic_vector(7downto0);
begin
process(clk)
begin
if(clk'eventandclk='1')thentemp<=temp+1;
endif;
endprocess;
outer<=temp;
endbehave;
3)P1MHZ产生
将实验箱的50MHZ50分频成1MHZ
lIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYPIN1MZIS
PORT(CLKIN:
INSTD_LOGIC;
CLKOUT:
OUTSTD_LOGIC);
ENDPIN1MZ;
ARCHITECTUREAOFPIN1MZIS
BEGIN
PROCESS(CLKIN)
VARIABLECNTTEMP:
INTEGERRANGE0TO49;
BEGIN
IFCLKIN='1'ANDCLKIN'EVENTTHEN
IFCNTTEMP=49THENCNTTEMP:
=0;
ELSE
IFCNTTEMP<25THENCLKOUT<='1';
ELSECLKOUT<='0';
ENDIF;
CNTTEMP:
=CNTTEMP+1;
ENDIF;
ENDIF;
ENDPROCESS;
ENDA;
4)romfb模块
使用MAX+PLUS11的宏向导工具实现不同宽度和深度的ROM的设计
实验波形
没按键没放大时的方波
按键没放大的方波
没按键有放大的方波
有按键有放大的方波
将填充物改下就可以产生三角波
波形图
没按键没放大的三角波
有按键没放大的三角波
没按键有放大的三角波
有按键有放大的三角波
锯齿波
没按键没放大的锯齿波
按键没放大的锯齿波
没按键放大的锯齿波
有按键有放大的锯齿波
正弦波
没有按键没有放大的正弦波
有按键没有放大的正弦波
没有按键有放大的正弦波
有按键有放大的正弦波
六.调试过程
1.反相器not的作用
SOURCES是产生256个地址,反相器是使隔半个周期再来根据地址来取点,一个周期波形用256点还原。
2.可以通过PINCHOOSE这个模块来改变输出波形的频率,将1MHZ通过不同的分频来改变输出的频率。