实验一:交通灯设计 学院:研究生院 学号:1400030034 姓名:张秋明
一、 实验目的及要求
(1)任务:设计简易交通灯。
(2)要求:信号灯交互关闭和开启。
(3)在软件环境下,编写源文件,用器件实现。
二、 实现程序
library ieee;
use ieee.std_logic_1164.all;
entity traffic is
port(clk:in std_logic;
clr:in std_logic;
s1:out std_logic_vector(2 downto 0);--red,yellow,green
s2:out std_logic_vector(2 downto 0));
end traffic;
architecture behave of traffic is
signal count:integer:=0;
begin
process(clk,clr)
begin
if(clr='0')then
count
s1
s2
elsif(rising_edge(clk))then
count
if(count
s1
s2
elsif(count
s1
s2
elsif(count
s1
s2
else
count
end if;
end if;
end process;
end behave;
三、 实验步骤
1. 打开操作软件diamond 。
2. 建工程并选器件
新建工程file->new->project->next,然后在弹出来的对话框中填写相关内容led ,在Location 栏上选用上面已经建好的文件夹(F/boge);
3. 建立源文件
新建项目file->new->file在对话框New File中,选择verilog ;在name 栏中输入文件名(traffic),点击FINISH ,在Lattice Diamond主界面出现traffic.v ,在TextEditer 中编辑输入Verilog 语言源程序并保存;
4. 综合
在主界面Process 窗口中双击Translate Design,对所编辑的代码进行综合。
5. 管脚分配
在pin 一栏中填入各输入输出映射的管脚。分配完管脚之后点击保存,在主界面Process 框中,对Map Design,Place&Route Design,Export Files选中所有的选项,然后右键选中JEDEC File,单击其下拉菜单中的Rerun All;
管脚分配:如下图
6. 烧写程序
在Diamond 主界面中,进入Tools->Programmer,点击OK 键,然后点击图标,在State 栏出现PASS ,即说明烧写成功。
四、 实验结果
通过把clk 设置成
50
五、 实验心得
该实验让我对乘法器的工作原理有了一些了解,实验过程重点在于移位。在完成本实验过程中对diamond 和verilog 语言更加熟悉。整个实验进行比较顺利。同时复习了一下数字逻辑电路设计的基本方法和基本原则,加深了我对数字电路设计的理解,提高了我在电路设计上的能力。
实验一:交通灯设计 学院:研究生院 学号:1400030034 姓名:张秋明
一、 实验目的及要求
(1)任务:设计简易交通灯。
(2)要求:信号灯交互关闭和开启。
(3)在软件环境下,编写源文件,用器件实现。
二、 实现程序
library ieee;
use ieee.std_logic_1164.all;
entity traffic is
port(clk:in std_logic;
clr:in std_logic;
s1:out std_logic_vector(2 downto 0);--red,yellow,green
s2:out std_logic_vector(2 downto 0));
end traffic;
architecture behave of traffic is
signal count:integer:=0;
begin
process(clk,clr)
begin
if(clr='0')then
count
s1
s2
elsif(rising_edge(clk))then
count
if(count
s1
s2
elsif(count
s1
s2
elsif(count
s1
s2
else
count
end if;
end if;
end process;
end behave;
三、 实验步骤
1. 打开操作软件diamond 。
2. 建工程并选器件
新建工程file->new->project->next,然后在弹出来的对话框中填写相关内容led ,在Location 栏上选用上面已经建好的文件夹(F/boge);
3. 建立源文件
新建项目file->new->file在对话框New File中,选择verilog ;在name 栏中输入文件名(traffic),点击FINISH ,在Lattice Diamond主界面出现traffic.v ,在TextEditer 中编辑输入Verilog 语言源程序并保存;
4. 综合
在主界面Process 窗口中双击Translate Design,对所编辑的代码进行综合。
5. 管脚分配
在pin 一栏中填入各输入输出映射的管脚。分配完管脚之后点击保存,在主界面Process 框中,对Map Design,Place&Route Design,Export Files选中所有的选项,然后右键选中JEDEC File,单击其下拉菜单中的Rerun All;
管脚分配:如下图
6. 烧写程序
在Diamond 主界面中,进入Tools->Programmer,点击OK 键,然后点击图标,在State 栏出现PASS ,即说明烧写成功。
四、 实验结果
通过把clk 设置成
50
五、 实验心得
该实验让我对乘法器的工作原理有了一些了解,实验过程重点在于移位。在完成本实验过程中对diamond 和verilog 语言更加熟悉。整个实验进行比较顺利。同时复习了一下数字逻辑电路设计的基本方法和基本原则,加深了我对数字电路设计的理解,提高了我在电路设计上的能力。