g)点击编译器processing/StartCompilation,再点击StartSimulation命令启动仿真器,查看仿真波形并记录F1NgHcUqUBrqyn14ZNXI
h)连接好pc机和GW48-CK实验箱,下载编译好的程序到实验箱,用示波器观察输出端波形,检验设计的信号发生器功能并记录F1NgHcUqUBEmxvxOtOco
六.实验结果:
a)当键3、键2、键1组合为000时,输出方波仿真图形记录如下:
b)当键3、键2、键1组合为001时,输出阶梯波仿真图形记录如下:
c)当键3、键2、键1组合为010时,输出正弦波仿真图形记录如下:
d)当键3、键2、键1组合为011时,输出三角波仿真图形记录如下:
e)当键3、键2、键1组合为100时,输出斜降锯齿波仿真图形记录如下:
f)当键3、键2、键1组合为101时,输出斜升锯齿波仿真图形记录如下:
七.实验心的体会:
通过俩周的设计,我的设计较好地完成了既定目标,能够产生正弦波、方波、三角波、锯齿波等6种波形,并能改变波形发生的频率。
通过三个按键组合,可在6种波形中任意切换,使所设计系统容易使用。
成功的实现了系统的功能。
F1NgHcUqUBSixE2yXPq5
在实验中也有失败,如当经过几天的努力把各个信号模块做好后进行了整体的运作后,波形怎么也不出现。
后来才知道原来我们设计的电路只有在特定的实验箱特定的参数设置后才能实验成功,多亏老师的指导让我们少走很多弯路。
也从中发现自己还有很多知识不懂,最终把波形弄出来了!
在这次设计中,我更进一步地了解了开发工程该如何组织进行,对正弦波信号发生器、方波信号发生器、三角波信号发生器、锯齿波信号发生器的实现有了更好的理解。
同时也提高了查阅文档解决问题的能力,对EDA技术的运用有了深一层的认识,对VHDL程序语言设计有了更深的理解,并熟练掌握了杭州康芯硬件结构动态可配置型EDA+SOPC实验箱、北京达盛公司全开方式EDA+SOPC实验箱的用法。
F1NgHcUqUB6ewMyirQFL
通过本实验设计更增加了我对电子技术的热爱,对专业知识有了更透彻的认识!
有因掌握了这一技术而更加自信。
相信通过今后的学习会更成为一个科技含量高的技术人才!
在实验过程中,充分体会到团队精神的重要,我们很默契很团结,才最终把实验做成功。
通过实验也给自己一个成就感,让平时所学的知识有了实用的机会,达到了理论与实际相结合的目的,不仅学到了不少知识,而且锻炼了自己的能力,让我以后更有信心,无论遇到什么困难都要勇于克服,遇到问题要善于思考并虚心请教。
F1NgHcUqUBkavU42VRUs
附录:
<1).多功能信号发生器FPGA芯片配置说明:
本次多功能信号发生器设计采用VHDL语言设计并通过QUARTUSII软件编译、仿真完成后,需将生成的配置文件下载到EDA实验箱中测试输出波形。
有关配制情况说明如下:
F1NgHcUqUBy6v3ALoS89
1.实验平台:
GW48系列EDA/SOC实验开发系统
2.FPGA芯片型号:
AlteraEP1K30TC144-3
3.芯片管脚分配:
<实验模式设置:
5)
信号名称
EP1K30TC144-3引脚
信号含义
实验箱按键
clk
126
时钟
reset
19
复位
键8
sel0
8
状态选择0
键1
sel1
9
状态选择1
键2
sel2
10
状态选择2
键3
q0
41
数据输出位0
q1
42
数据输出位1
q2
65
数据输出位2
q3
67
数据输出位3
q4
68
数据输出位4
q5
69
数据输出位5
q6
70
数据输出位6
q7
72
数据输出位7
(二>.程序:
1.--锯齿波<斜升)
LIBRARYIEEE。
USEIEEE.STD_LOGIC_1164.ALL。
USEIEEE.STD_LOGIC_UNSIGNED.ALL。
ENTITYniushengli_xsjcbIS--牛胜利<40604030109)
PORT(clk,reset:
INSTD_LOGIC。
q:
OUTSTD_LOGIC_VECTOR(7DOWNTO0>>。
ENDniushengli_xsjcb。
ARCHITECTUREbehaveOFniushengli_xsjcbIS
BEGIN
PROCESS(clk,reset>
VARIABLEtmp:
STD_LOGIC_VECTOR(7DOWNTO0>。
BEGIN
IFreset='0'THEN
tmp:
="00000000"。
ELSIFclk'EVENTANDclk='1'THEN
IFtmp="11111111"THEN
tmp:
="00000000"。
ELSE
tmp:
=tmp+1。
ENDIF。
ENDIF。
q<=tmp。
ENDPROCESS。
ENDbehave。
2.--方波
LIBRARYIEEE。
USEIEEE.STD_LOGIC_1164.ALL。
ENTITYniushengli_fbIS--牛胜利<40604030109)
PORT(clk,reset:
INSTD_LOGIC。
q:
OUTINTEGERRANGE0TO255>。
ENDniushengli_fb。
ARCHITECTUREbehaveOFniushengli_fbIS
SIGNALa:
BIT。
BEGIN
PROCESS(clk,reset>
VARIABLEcnt:
INTEGER。
BEGIN
IFreset='0'THEN
A<='0'。
ELSIFclk'EVENTANDclk='1'THEN
IFcnt<63THEN
Cnt:
=cnt+1。
ELSE
cnt:
=0。
a<=NOTa。
ENDIF。
ENDIF。
ENDPROCESS。
Process(clk,a>
BEGIN
IFclk'EVENTANDclk='1'THEN
IFa='1'THEN
Q<=255。
ELSE
Q<=0。
ENDIF。
ENDIF。
ENDPROCESS。
ENDbehave。
3.--双阶梯波
libraryieee。
useieee.std_logic_1164.all。
useieee.std_logic_unsigned.all。
entityniushengli_jtbis
port(clk,reset:
instd_logic。
q:
outstd_logic_vector(7downto0>>。
endniushengli_jtb。
architectureaofniushengli_jtbis
begin
process(clk,reset>
variabletmp:
std_logic_vector(7downto0>。
begin
ifreset='0'then
tmp:
="00000000"。
elseifclk'eventandclk='1'then
iftmp="11111111"then
tmp:
="00000000"。
else
tmp:
=tmp+16。
endif。
endif。
endif。
q<=tmp。
endprocess。
enda。
4.--正弦波
libraryieee。
useieee.std_logic_arith.all。
useieee.std_logic_1164.all。
useieee.std_logic_unsigned.all。
entityniushengli_sinis--牛胜利<40604030109)
port(clk:
instd_logic。
reset:
instd_logic。
q:
outstd_logic_vector(7downto0>>。
endniushengli_sin。
architecturebehavofniushengli_sinis
signalb:
integerrange0to63。
signald:
integerrange0to255。
begin
process(clk>
begin
ifreset='0'thenb<=0。
elsifclk'eventandclk='1'then
ifb=63thenb<=0。
elseb<=b+1。
endif。
endif。
endprocess。
process(b>
begin
casebis
when00=>d<=255。
when01=>d<=254。
when02=>d<=252。
when03=>d<=249。
F1NgHcUqUBM2ub6vSTnP
when04=>d<=245。
when05=>d<=239。
when06=>d<=233。
when07=>d<=225。
F1NgHcUqUB0YujCfmUCw
when08=>d<=217。
when09=>d<=207。
when10=>d<=197。
when11=>d<=186。
1IYGVb4rTveUts8ZQVRd
when12=>d<=174。
when13=>d<=162。
when14=>d<=150。
when15=>d<=137。
1IYGVb4rTvsQsAEJkW5T
when16=>d<=124。
when17=>d<=112。
when18=>d<=99。
when19=>d<=87。
1IYGVb4rTvGMsIasNXkA
when20=>d<=75。
when21=>d<=64。
when22=>d<=53。
when23=>d<=43。
1IYGVb4rTvTIrRGchYzg
when24=>d<=34。
when25=>d<=26。
when26=>d<=19。
when27=>d<=13。
1IYGVb4rTv7EqZcWLZNX
when28=>d<=8。
when29=>d<=4。
when30=>d<=1。
when31=>d<=0。
1IYGVb4rTvlzq7IGf02E
when32=>d<=0。
when33=>d<=1。
when34=>d<=4。
when35=>d<=8。
1IYGVb4rTvzvpgeqJ1hk
when36=>d<=13。
when37=>d<=19。
when38=>d<=26。
when39=>d<=34。
1IYGVb4rTvNrpoJac3v1
when40=>d<=43。
when41=>d<=53。
when42=>d<=64。
when43=>d<=75。
1IYGVb4rTv1nowfTG4KI
when44=>d<=87。
when45=>d<=99。
when46=>d<=112。
when47=>d<=124。
1IYGVb4rTvfjnFLDa5Zo
when48=>d<=137。
when49=>d<=150。
when50=>d<=162。
when51=>d<=174。
1IYGVb4rTvtfnNhnE6e5
when52=>d<=186。
when53=>d<=197。
when54=>d<=207。
when55=>d<=217。
1IYGVb4rTvHbmVN777sL
when56=>d<=225。
when57=>d<=233。
when58=>d<=239。
when59=>d<=245。
1IYGVb4rTvV7l4jRB8Hs
when60=>d<=249。
when61=>d<=252。
when62=>d<=254。
when63=>d<=255。
1IYGVb4rTv83lcPA59W9
whenothers=>null。
endcase。
endprocess。
q<=conv_std_logic_vector(d,8>。
endbehav。
5--三角波
LIBRARYIEEE。
USEIEEE.STD_LOGIC_1164.ALL。
USEIEEE.STD_LOGIC_UNSIGNED.ALL。
ENTITYniushengli_sjbIS--牛胜利<40604030109)1IYGVb4rTvmZkklkzaaP
PORT(clk,reset:
INSTD_LOGIC。
q:
OUTSTD_LOGIC_VECTOR(7DOWNTO0>>。
ENDniushengli_sjb。
ARCHITECTUREbehaveOFniushengli_sjbIS
BEGIN
PROCESS(clk,reset>
VARIABLEtmp:
STD_LOGIC_VECTOR(7DOWNTO0>。
VARIABLEa:
STD_LOGIC。
BEGIN
IFreset='0'THEN
tmp:
="00000000"。
ELSIFclk'EVENTANDclk='1'THEN
IFa='0'THEN
IFtmp="11111110"THEN
tmp:
="11111111"。
a:
='1'。
ELSE
tmp:
=tmp+1。
ENDIF。
ELSE
IFtmp="00000001"THEN
tmp:
="00000000"。
a:
='0'。
ELSE
Tmp:
=tmp-1。
ENDIF。
ENDIF。
ENDIF。
q<=tmp。
ENDPROCESS。
ENDbehave。
6.--锯齿波<斜降)
LIBRARYIEEE。
USEIEEE.STD_LOGIC_1164.ALL。
USEIEEE.STD_LOGIC_UNSIGNED.ALL。
ENTITYniushengli_xjcIS--牛胜利<40604030109)
PORT(clk,reset:
INSTD_LOGIC。
q:
OUTSTD_LOGIC_VECTOR(7DOWNTO0>>。
ENDniushengli_xjc。
ARCHITECTUREbehaveOFniushengli_xjcIS
BEGIN
PROCESS(clk,reset>
VARIABLEtmp:
STD_LOGIC_VECTOR(7DOWNTO0>。
BEGIN
IFreset='0'THEN
tmp:
="11111111"。
ELSIFclk'EVENTANDclk='1'THEN
IFtmp="00000000"THEN
Tmp:
="11111111"。
ELSE
tmp:
=tmp-1。
ENDIF。
ENDIF。
q<=tmp。
ENDPROCESS。
ENDbehave。
7.--六选一选择器
LIBRARYIEEE。
USEIEEE.STD_LOGIC_1164.ALL。
ENTITYniushengli_MUX61IS--牛胜利<40604030109)
PORT(sel:
INSTD_LOGIC_VECTOR(2DOWNTO0>。
d0,d1,d2,d3,d4,d5:
INSTD_LOGIC_VECTOR(7DOWNTO0>。
1IYGVb4rTvAVktR43bpw
q:
OUTSTD_LOGIC_VECTOR(7DOWNTO0>>。
ENDniushengli_MUX61。
ARCHITECTUREbehaveOFniushengli_MUX61IS
BEGIN
PROCESS(sel>
BEGIN
CASEselIS
WHEN"000"=>q<=d0。
WHEN"001"=>q<=d1。
WHEN"010"=>q<=d2。
WHEN"011"=>q<=d3。
WHEN"100"=>q<=d4。
WHEN"101"=>q<=d5。
WHENOTHERS=>NULL。
ENDCASE。
ENDPROCESS。
ENDbehave。
申明:
所有资料为本人收集整理,仅限个人学习使用,勿做商业用途。
申明:
所有资料为本人收集整理,仅限个人学习使用,勿做商业用途。