SOPC课程设计实验报告(2)

2019-08-03 13:24

3、在 1 24、在 1件

2 3 4 5

Quartus II中建立一个蜂鸣器 ) 用VHDL语言编写蜂鸣器程序

) 编译成功后Creat symbol,生成Project sing

Quartus II中编译Nios II硬件系统并生成配置文件 ) 在Quartus II加入Nios II系统符号到顶层文) 给各端口加入输入输出引脚,并重命名 ) 设置参数 ) 编译顶层文件 ) 分配管脚

6) 再次编译

5、在Nios II IDE中建立C/C++工程,编写用户程序 6、编译用户程序

7、下载.SOF至FPGA,运行程序,观察结果

五、设计程序

蜂鸣器程序(VHDL):

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY sing1 IS PORT(

CLK:IN STD_LOGIC; p:IN STD_LOGIC;

-- DIGIT:BUFFER STD_LOGIC_VECTOR(6 DOWNTO 0); SPEAKER:OUT STD_LOGIC);

END ENTITY;

ARCHITECTURE SONG OF sing1 IS

SIGNAL DRIVER,ORIGIN:STD_LOGIC_VECTOR(12 DOWNTO 0); SIGNAL COUNTER:INTEGER RANGE 0 TO 140; SIGNAL COUNTER1:INTEGER RANGE 0 TO 3;

SIGNAL COUNTER2:INTEGER RANGE 1 TO 10000000; SIGNAL DIGIT :STD_LOGIC_VECTOR(6 DOWNTO 0); SIGNAL COUNT :STD_LOGIC_VECTOR(1 DOWNTO 0); SIGNAL CARRIER,CLK_4MHZ,CLK_4HZ:STD_LOGIC; BEGIN PROCESS(CLK) BEGIN

IF CLK'EVENT AND CLK='1' THEN

IF COUNTER1=1 THEN CLK_4MHZ<='1'; COUNTER1<=2;

ELSIF COUNTER1=3 THEN CLK_4MHZ<='0'; COUNTER1<=0;

ELSE COUNTER1<=COUNTER1+1; END IF;

IF COUNTER2=5000000 THEN CLK_4HZ<='1';

COUNTER2<=5000001;

ELSIF COUNTER2=10000000 THEN CLK_4HZ<='0'; COUNTER2<=1;

ELSE COUNTER2<=COUNTER2+1; END IF; END IF; END PROCESS;

PROCESS(CLK_4MHZ) BEGIN

IF CLK_4MHZ'EVENT AND CLK_4MHZ='1' THEN IF DRIVER=\ CARRIER<='1'; DRIVER<=ORIGIN; ELSE

DRIVER<=DRIVER+1; CARRIER<='0'; END IF; END IF; END PROCESS;

PROCESS(CARRIER)

BEGIN if(p='1')then

IF CARRIER'EVENT AND CARRIER='1' THEN COUNT<=COUNT+1; IF COUNT=\SPEAKER<='1'; ELSE

SPEAKER<='0'; END IF; END IF; end if;

END PROCESS;

PROCESS(CLK_4HZ) BEGIN

IF CLK_4HZ'EVENT AND CLK_4HZ='1' THEN IF COUNTER=140 THEN COUNTER<=0;

ELSE COUNTER<=COUNTER+1; END IF; END IF;

CASE COUNTER IS


SOPC课程设计实验报告(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:学科竞赛 一年级语文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: