eda报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

EDA实验报告

实验1 Altera内嵌逻辑分析仪的应用EDA技术的应用

实验目的:设计一个正弦波和一个锯齿波的混合波,并使用Altera公司在Quartus Ⅱv.9.0或Quartus Ⅱv.13.0中内嵌的信号逻辑分析仪(Signal Tap Ⅱ Logic Analyzer )进行实时采样分析

实验原理图:

实验步骤:

1.打开实验箱,检查实验箱

2.DE2_115实验板下面不允许有导电物接触(最好垫一块绝缘塑料板)。

3.打开Quartus Ⅱ v.9.0或Quartus Ⅱ v.13.0。

4.将工程块图存入E区的新建文件夹中。

5.建立工程。主芯片选: Cyclone IV EP4CE115F29C8.

6.用左键双击图纸空白处,弹出symbol对话框,点击mega-function →arithmetic → LPM_counter。

7.LPM_counter的Parameter Setting →位宽10bit,Match

Project/default 打勾。选Up only。用VHDL语言。选取同步清零端synchronous input的clear

8.将图标粘贴在工程图纸上。

9. 建立rom的数据文件。点击file →new →memory initialization file,位宽8bit,word → 1024。然后按照第二章所讲的方法填充sin数据和锯齿波数据。保存为工程名.mif,用以备用。

10.建立LPM_rom。

11.在Quartus Ⅱv13.0的主菜单上选Processing →Start →Start Analysis & Elaboration 编译并分配引脚。再全程编译。

仿真波形图:

实验2 用VHDL语言设计一个密码控制的跑表量程为59分59秒99毫秒

实验目的:

1.用VHDL语言设计一个密码控制的跑表,量程为59分59秒99毫秒

2.密码cipher的控制功能表:

实验步骤:

1.用VHDL语言编写底层文件:cipher控制的六进制加减计数器。

2.用VHDL语言编写底层文件:cipher控制的十进制加减计数器。

3.用VHDL语言编写底层文件:基于DE2的7段数码管译码器。

4.用VHDL语言编写底层文件:基于DE2的100Hz分频器。主频为50MHz。

5.用package语句将上述4个元件打包

6.用VHDL语言编写顶层文件。

7编译

8.分配引脚。

实验代码:

程序1:cipher控制的六进制加减计数器。

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY eda_count6_updown IS

PORT(CLK,RST,ENA:IN STD_LOGIC;

OUTY:OUT STD_LOGIC_VECTOR(3DOWNTO 0);

COUT:OUT STD_LOGIC;

cipher: IN STD_LOGIC_VECTOR(7 DOWNTO 0)

);//输入输出端口声明

END eda_count6_updown;

ARCHITECTURE behave_cnt6 OF eda_count6_updown IS

SIGNAL CQI: STD_LOGIC_VECTOR(3 DOWNTO 0):="0000";

SIGNAL flag1_2: STD_LOGIC_VECTOR(1 DOWNTO 0);

SIGNAL cipher_temp: STD_LOGIC_VECTOR(7 DOWNTO 0);

BEGIN

cipher_temp<=cipher;

P_COUNT10_VT: PROCESS(CLK,RST,ENA)

BEGIN

IF RST='1' THEN CQI<="0000"; //清零

ELSIF CLK 'EVENT AND CLK='1' THEN //上升沿有效

IF ENA='1' THEN

if (flag1_2="00") then

IF CQI<5 THEN

CQI<=CQI+ 1;

ELSE

CQI<="0000"; //六进制

END IF; //加计数

elsif (flag1_2="01") then

IF CQI>0 THEN

CQI<=CQI- 1;

ELSE

CQI<="0101";

END IF;

end if;

END IF;

END IF; //减计数

OUTY<=CQI;//输出等于CQI的值

IF (flag1_2="00") THEN

COUT<= NOT( CQI(2) AND CQI(0));

ELSIF (flag1_2="01") THEN

COUT<= CQI(3) OR CQI(2) OR CQI(1) OR CQI(0);//进位信号 END IF;

END PROCESS P_COUNT10_VT;

p1: Process(clk,cipher_temp)

BEGIN

IF (clk 'EVENT AND clk='1') THEN

IF (cipher_temp="00001111") THEN

flag1_2<="00";

ELSIF (cipher_temp="11110000") THEN

flag1_2<="01";

ELSIF (cipher_temp="11001100") THEN

flag1_2<="10";

END IF;

END IF;

END PROCESS p1;

P2_stop: Process(clk,flag1_2,CQI)

BEGIN

IF (clk 'EVENT AND clk='1') THEN

IF ( flag1_2="10") THEN

CQI<=CQI;

END IF;

END IF;

END PROCESS p2_stop;//停止计数

END behave_cnt6;

程序2:cipher控制的十进制加减计数器。

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY eda_count10_updown IS

PORT(CLK,RST,ENA:IN STD_LOGIC;

OUTY:OUT STD_LOGIC_VECTOR(3DOWNTO 0);

相关文档
最新文档