您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > SOPC课程设计实验报告
SOPC课程设计实验报告基于SOPC的警示灯设计2013电子信息工程3班李婕20134557罗丹妮20134563一、设计目的1、熟悉掌握SOPC的基本流程2、设计一个警示灯并满足基本要求3、通过设计发现问题并解决二、设计设备1、硬件:PC机、SOPC-NIOSIIEDA/SOPC系统开发平台2、软件:QUARTUSII、SOPCBuilder、NIOSIIIDE三、设计内容•初始状态为红灯(LED2)熄灭,绿灯(LED1)点亮,数码管显示为0。•当按键按下,红灯(LED2)闪烁,绿灯(LED1)熄灭,同时蜂鸣器响起,数码管开始倒计时9S,此状态持续时间为9s。•9s后,恢复初始状态。四、设计步骤1、使用QuartusII建立一个工程文件和顶层文件;2、使用SOPCBuilder建立一个简单NiosII硬件系统1)启动SOPCBuilder2)指定目标FPGA3)添加NiosII内核及其他外设A、添加NiosII、SRAM、JTAG-UART、Avalon总线的IP核B、添加一个2位的输入型PIO作为按键keyC、添加两个1位的输出型PIO作为led1及led2的输出端口D、添加一个1位的输出型PIO作为蜂鸣器的输入端口AE、添加一个3位的输出型PIO作为数码管的位选selF、添加一个8位的输出型PIO作为数码管的段选dat4)指定基地址和中断优先级5)设置NiosII复位和异常地址6)编译生成NiosII系统SOPCBuilder行程图如下:3、在QuartusII中建立一个蜂鸣器1)用VHDL语言编写蜂鸣器程序2)编译成功后Creatsymbol,生成Projectsing4、在QuartusII中编译NiosII硬件系统并生成配置文件1)在QuartusII加入NiosII系统符号到顶层文件2)给各端口加入输入输出引脚,并重命名3)设置参数4)编译顶层文件5)分配管脚6)再次编译5、在NiosIIIDE中建立C/C++工程,编写用户程序6、编译用户程序7、下载.SOF至FPGA,运行程序,观察结果五、设计程序蜂鸣器程序(VHDL):LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYsing1ISPORT(CLK:INSTD_LOGIC;p:INSTD_LOGIC;--DIGIT:BUFFERSTD_LOGIC_VECTOR(6DOWNTO0);SPEAKER:OUTSTD_LOGIC);ENDENTITY;ARCHITECTURESONGOFsing1ISSIGNALDRIVER,ORIGIN:STD_LOGIC_VECTOR(12DOWNTO0);SIGNALCOUNTER:INTEGERRANGE0TO140;SIGNALCOUNTER1:INTEGERRANGE0TO3;SIGNALCOUNTER2:INTEGERRANGE1TO10000000;SIGNALDIGIT:STD_LOGIC_VECTOR(6DOWNTO0);SIGNALCOUNT:STD_LOGIC_VECTOR(1DOWNTO0);SIGNALCARRIER,CLK_4MHZ,CLK_4HZ:STD_LOGIC;BEGINPROCESS(CLK)BEGINIFCLK'EVENTANDCLK='1'THENIFCOUNTER1=1THENCLK_4MHZ='1';COUNTER1=2;ELSIFCOUNTER1=3THENCLK_4MHZ='0';COUNTER1=0;ELSECOUNTER1=COUNTER1+1;ENDIF;IFCOUNTER2=5000000THENCLK_4HZ='1';COUNTER2=5000001;ELSIFCOUNTER2=10000000THENCLK_4HZ='0';COUNTER2=1;ELSECOUNTER2=COUNTER2+1;ENDIF;ENDIF;ENDPROCESS;PROCESS(CLK_4MHZ)BEGINIFCLK_4MHZ'EVENTANDCLK_4MHZ='1'THENIFDRIVER=1111111111111THENCARRIER='1';DRIVER=ORIGIN;ELSEDRIVER=DRIVER+1;CARRIER='0';ENDIF;ENDIF;ENDPROCESS;PROCESS(CARRIER)BEGINif(p='1')thenIFCARRIER'EVENTANDCARRIER='1'THENCOUNT=COUNT+1;IFCOUNT=00THENSPEAKER='1';ELSESPEAKER='0';ENDIF;ENDIF;endif;ENDPROCESS;PROCESS(CLK_4HZ)BEGINIFCLK_4HZ'EVENTANDCLK_4HZ='1'THENIFCOUNTER=140THENCOUNTER=0;ELSECOUNTER=COUNTER+1;ENDIF;ENDIF;CASECOUNTERISWHEN0=DIGIT=0000011;WHEN1=DIGIT=0000011;WHEN2=DIGIT=0000011;WHEN3=DIGIT=0000011;WHEN4=DIGIT=0000101;WHEN5=DIGIT=0000101;WHEN6=DIGIT=0000101;WHEN7=DIGIT=0000110;WHEN8=DIGIT=0001000;WHEN9=DIGIT=0001000;WHEN10=DIGIT=0001000;WHEN11=DIGIT=0010000;WHEN12=DIGIT=0000110;WHEN13=DIGIT=0001000;WHEN14=DIGIT=0000101;WHEN15=DIGIT=0000101;WHEN16=DIGIT=0101000;WHEN17=DIGIT=0101000;WHEN18=DIGIT=0101000;WHEN19=DIGIT=1000000;WHEN20=DIGIT=0110000;WHEN21=DIGIT=0101000;WHEN22=DIGIT=0011000;WHEN23=DIGIT=0101000;WHEN24=DIGIT=0010000;WHEN25=DIGIT=0010000;WHEN26=DIGIT=0010000;WHEN27=DIGIT=0010000;WHEN28=DIGIT=0010000;WHEN29=DIGIT=0010000;WHEN30=DIGIT=0000011;WHEN31=DIGIT=0000000;WHEN32=DIGIT=0010000;WHEN33=DIGIT=0010000;WHEN34=DIGIT=0010000;WHEN35=DIGIT=0011000;WHEN36=DIGIT=0000111;WHEN37=DIGIT=0000111;WHEN38=DIGIT=0000110;WHEN39=DIGIT=0000110;WHEN40=DIGIT=0000101;WHEN41=DIGIT=0000101;WHEN42=DIGIT=0000101;WHEN43=DIGIT=0000110;WHEN44=DIGIT=0001000;WHEN45=DIGIT=0001000;WHEN46=DIGIT=0010000;WHEN47=DIGIT=0010000;WHEN48=DIGIT=0000011;WHEN49=DIGIT=0000011;WHEN50=DIGIT=0001000;WHEN51=DIGIT=0001000;WHEN52=DIGIT=0000110;WHEN53=DIGIT=0000101;WHEN54=DIGIT=0000110;WHEN55=DIGIT=0001000;WHEN56=DIGIT=0000101;WHEN57=DIGIT=0000101;WHEN58=DIGIT=0000101;WHEN59=DIGIT=0000101;WHEN60=DIGIT=0000101;WHEN61=DIGIT=0000101;WHEN62=DIGIT=0000101;WHEN63=DIGIT=0000101;WHEN64=DIGIT=0011000;WHEN65=DIGIT=0011000;WHEN66=DIGIT=0011000;WHEN67=DIGIT=0101000;WHEN68=DIGIT=0000111;WHEN69=DIGIT=0000111;WHEN70=DIGIT=0010000;WHEN71=DIGIT=0010000;WHEN72=DIGIT=0000110;WHEN73=DIGIT=0001000;WHEN74=DIGIT=0000101;WHEN75=DIGIT=0000101;WHEN76=DIGIT=0000101;WHEN77=DIGIT=0000101;WHEN78=DIGIT=0000101;WHEN79=DIGIT=0000101;WHEN80=DIGIT=0000011;WHEN81=DIGIT=0000101;WHEN82=DIGIT=0000011;WHEN83=DIGIT=0000011;WHEN84=DIGIT=0000101;WHEN85=DIGIT=0000110;WHEN86=DIGIT=0000111;WHEN87=DIGIT=0010000;WHEN88=DIGIT=0000110;WHEN89=DIGIT=0000110;WHEN90=DIGIT=0000110;WHEN91=DIGIT=0000110;WHEN92=DIGIT=0000110;WHEN93=DIGIT=0000110;WHEN94=DIGIT=0000101;WHEN95=DIGIT=0000110;WHEN96=DIGIT=0001000;WHEN97=DIGIT=0001000;WHEN98=DIGIT=0001000;WHEN99=DIGIT=0010000;WHEN100=DIGIT=0101000;WHEN101=DIGIT=0101000;WHEN102=DIGIT=0101000;WHEN103=DIGIT=0011000;WHEN104=DIGIT=0010000;WHEN105=DIGIT=0010000;WHEN106=DIGIT=0011000;WHEN107=DIGIT=0010000;WHEN108=DIGIT=0001000;WHEN109=DIGIT=0001000;WHEN110=DIGIT=0000110;WHEN111=DIGIT=0000101;WHEN112=DIGIT=0000011;WHEN113=DIGIT=0000011;WHEN114=DIGIT=0000011;WHEN115=DIGIT=0000011;WHEN116=DIGIT=0001000;WHEN117=DIGIT=0001000;WHEN118=DIGIT=0000110;WHEN119=DIGIT=0001000;WHEN120=DIGIT=0000110;WHEN121=DIGIT=0000011;WHEN122=DIGIT=0000011;WHEN123=DIGIT=0
本文标题:SOPC课程设计实验报告
链接地址:https://www.777doc.com/doc-5421095 .html