基于Quartus_II的流水灯设计仿真
7实验七 基于LMP_ROM的流水灯控制器设计与调试-推荐下载
实验七基于LPM_ROM的LED流水灯设计与调试一、实验目的1、掌握QuartusII采用原理图结合VHDL编程方式进行设计的流程。
2、学会调用LPM模块的操作步骤。
掌握基于LPM_ROM设计的基本方法。
二、实验原理:基于LPM_ROM的LED流水灯控制器的顶层原理图文件图7-1 所示,包含2 个部分:由6位二进制计数器担任的ROM的地址信号发生器和由LPM_ROM模块构成一个存储显示花样数据的ROM。
在系统时钟的作用下,地址计数器轮流读出LPM_ROM中的数据,使实验箱上的8个LED根据预先存储在ROM中的数据按各种花样变化。
三、实验步骤在QuartusII中可以用LPM模块设计ROM、RAM、FIFO、PLL,在本实验中将以ROM为例,介绍LPM功能的使用。
1、建立工程在F盘建立新的工程2、分模块设计1)地址计数器模块(CNT16.VHD)设计:a) 建立VHDL文件,写入程序。
(源程序略)b) 编译通过之后,将VHDL文档封装生成CNT16元件(当前VHDL编辑界面下,点击File——Creat/Update——Creat Symbol Files for current File)2)设计ROM初始化数据文件在此首先确定图 7-1 中ROM 内的数据文件。
QuartusII 能接受的LPM_ROM 中的初始化数据文件的格式有2 种:Memory Initialization File (.mif)格式和Hexadecimal(Intel-Format)File(.hex)格式。
实际应用中只要使用其中一种格式文件即可。
以下以64点LED花样显示数据为例说明(.mif)文件的建立。
①首先在Quartus II 中选择ROM 数据文件编辑窗,即在File 菜单中选择New,并在New窗中选择Other files 页,再选择Memory Initialization File 项,单击OK 按钮后产生ROM 数据文件大小选择窗。
实验三基于QuartusII的流水灯设计仿真
实验收获与体会
理论与实践相结合
通过本次实验,我们将数字电路设计与FPGA应用开发的理论知识与实践相结合,加深了对理论知识的理解,提高了 实际操作能力。
团队合作的重要性
在实验过程中,我们小组成员之间进行了充分的讨论和交流,共同解决问题。这使我们深刻体会到团队合作在解决问 题中的重要性。
不断探索与创新
03 通过设计实现流水灯,培养数字电路设计能力。
实验背景
FPGA(现场可编程门阵列)是一种可编artus II是Altera公司推出的一款FPGA开发软件,提供了完整的FPGA设计流程, 包括设计输入、综合、布局布线、仿真和下载等。
Verilog是一种硬件描述语言,用于描述数字电路的行为和结构,广泛应用于FPGA 设计和ASIC设计领域。
高度集成
Quartus II软件集成了设计、编译、仿真和编程等所有必要 的工具,方便用户进行FPGA开发。
高效编译
Quartus II软件采用了高效的编译算法,能够快速将设计转 换为FPGA可执行的配置文件。
灵活设计
Quartus II软件支持多种硬件描述语言,如VHDL和Verilog, 以及多种设计约束格式,方便用户进行灵活的设计。
03 流水灯设计原理
流水灯简介
01
流水灯是一种常见的LED显示设 备,通过控制LED灯的亮灭顺序 和时间间隔,实现动态的视觉效 果。
02
流水灯通常由多个LED灯珠组成 ,按照一定的顺序排列在一条线 上,通过控制每个LED灯的亮灭 状态,形成连续的视觉效果。
流水灯工作原理
流水灯的工作原理主要是通过控 制每个LED灯的亮灭状态和时间 间隔,实现动态的视觉效果。
控制每个LED灯的亮灭状态通常 是通过微控制器或数字逻辑电路 实现的,时间间隔则通过程序控
实验三基于QaurtusII的流水灯设计仿真
实验内容和目标
加深对数字电路和FPGA原理的理解; 提高分析和解决问题的能力。
02
QuartusII软件简介
QuartusII软件概述
01
Quartus II是Intel公司推出的一款综合性FPGA/CPLD开发软 件
02
支持原理图、VHDL、Verilog等多种设计输入形式
掌握VHDL语言的编程方法
VHDL是一种硬件描述语言,用于描述数字电路和系统的结构和行为。本实验将通过编写 VHDL程序来实现流水灯的设计,帮助学生掌握VHDL语言的编程方法和技巧。
加深对数字电路和FPGA原理的理解
通过本实验的实践操作,学生可以更加深入地理解数字电路和FPGA的原理和工作方式, 提高分析和解决问题的能力。
时序控制
流水灯的时序控制是关键,通过设定一定的时间间隔,控制每个LED灯的亮灭 状态,从而实现灯光的流动。这通常通过微控制器或FPGA等可编程逻辑器件实 现。
数字电路基础
流水灯的设计涉及到数字电路的基本知识,如逻辑门、触发器、 计数器等。这些电路元件用于实现LED灯的驱动和控制逻辑。
硬件描述语言(HDL)实现
03
Project"添加源文件,包括VHDL或Verilog代码文件。
编译工程并生成仿真波形
01
在QuartusII软件中,选择"Processing"->"Start"->"Start Analysis & Synthesis"开始编译工程。
02
编译完成后,选择"Tools"->"RTL Viewer"可以查看RTL级 电路图。
EDA实验设计报告流水灯
EDA实验设计报告姓名:张炫学号:2011128085班级:11电工设计内容:设计8位流水灯的4种循环模式,并用quartusII进行编译和仿真,用LED灯实现需求。
控制系统方案:四种循环模式(1)灯从右到左依次都闪亮(2)灯从右向左逐次闪亮(3)灯从右向左逐次闪亮(4) 从右向左每间隔一个闪亮设计方案:通过复位端reset 与按键端right,left,shan,yici控制,当复位reset为 1 时led 灯最左端点亮,再通过else-if语句控制试验程序:module light(clk,reset,right,left,shan,yici,led);input clk,reset,right,left,shan,yici;output[7:0] led;reg[7:0] led;always @ (posedge clk)beginif(reset)beginled<=8’b00000001;endelsebeginif(yici)beginled<=((led<<1)+8’b00000001);if(led==8’b11111111)led<=8’b00000001;endif(right)beginled<=led>>1;if(led==8’b00000001)led<=8’b10000000;endif(left)beginled<=led<<1;if(led==8’b10000000)led<=8’b00000001;endif(shan)beginif(led==8’b01010101)led<=8’b10101010;elseled<=8’b01010101;endendendendmodule实验总结:经过本次课程设计使我进一步巩固了从课堂上学到的知识,虽然在实验过程中多次出错,但通过不断的检查和调试终于成功的实现了8位流水灯的控制。
数字系统设计QuartusⅡ的VerilogHDL建模与仿真
使用Quartus II软件的设计输入工具, 将设计转换为可编程的硬件描述语言或
原理图。
仿真
使用Quartus II软件的仿真工具,对 设计进行功能仿真和时序仿真,以确
保设计的正确性。
综合与布局布线
将设计转换为可编程的配置文件,并 进行布局布线,以确保设计的正确性。
编程与配置
将生成的配置文件下载到FPGA芯片 中,完成数字系统的设计和实现。
VS
优化设计
根据仿真结果分析和实际需求,对 Verilog HDL代码进行优化,提高设计的 性能和可靠性。
05
数字系统设计实例
实例一
总结词
简单计数器
详细描述
简单计数器是一个常见的数字系统设计实例,用于对输入信号进行计数。通过Verilog HDL建模,可 以实现计数器的逻辑功能,并在Quartus II中进行仿真测试。
模块化设计
将复杂的数字系统划分为若干个 较小的模块,每个模块具有明确 的功能和接口,便于设计和验证。
行为描述
使用Verilog HDL的逻辑运算符、 控制语句等对数字系统的行为进 行描述,实现逻辑功能。
层次化设计
将不同层次的模块按照层次结构 组织起来,上层模块调用下层模 块,实现系统的层次化设计。
Verilog HDL的仿真流程和工具
移位运算符:左移、右移。
04
05
数据类型:`reg`、`wire`、 `integer`等。
03
Quartus II软件介绍
Quartus II软件的特点和功能
高度集成
Quartus II软件集成了数字系统设计所需的所有工具,包括编辑器、 编译器、仿真器等,方便用户进行一站式设计。
实验一、4-2编码器及流水灯实验_简洁版
实验一、4-2编码器及流水灯实验注意事项:1、特别注意:在做Quartus II 工程时必须将未分配的管脚置为三态输入。
Quartus II --> Assignments --> Device … --> Device --> Device & Pin Options … --> Unused Pins --> Reserve all unused pins : AS input tri-stated 。
2、按键SW1—SW4与LED 指示灯LED1—LED4分布图如下:FPGA 管脚备注3、系统复位与系统时钟(50MHz )分配脚4、对EP3C25-B 型电路板的LED 与按键测试程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; ENTITY LED_BUTTON ISPORT ( BUTTON_IN:IN STD_LOGIC_VECTOR(3 DOWNTO 0);LED_OUT: OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END LED_BUTTON;ARCHITECTURE A OF LED_BUTTON ISBEGINLED_OUT <= not BUTTON_IN;END A;管脚分配为:BUTTON_IN分别接N1(SW1)、N2(SW2)、U9(SW3)、V9(SW4);LED_OUT分别接:P11(LED1)、U11(LED2)、R11(LED3)、N11(LED4)。
按注意事项1进行设置!!!之后再次编译!内容一、4-2编码器的设计1、有按键按下时则进行编码输出给LED显示,采用优先编码方式;2、自行编写4-2编码器VHDL代码;3、管脚分配注意事项:参照LED与按键测试程序。
内容二、4位流水灯的实现1、编写实现1s时间间隔流水灯VHDL代码;2、管脚分配注意事项:参照LED与按键测试程序。
实验五 流水灯的设计
实验五流水灯的设计一、实验目的1、了解流水灯的工作原理。
二、实验原理及内容实验原理要完成本实验,首先必须了解流水灯的原理。
所谓的流水灯实际上就是由多个LED发光二极管构成的电路,当发光二极管可以依次点亮时,即能呈现流水的效果。
实验内容1、设计能带8个LED发光管发光,并按照要求轮流发光,产生流水灯的流动效果。
2、应具有两种以上不同风格的流动闪亮效果。
比如依次点亮或者依次熄灭。
(选作)3、有起动、停止控制键。
(选作)4、有流动闪亮效果选择设置键。
(选作)5、对所编写的电路进行编译及正确的仿真。
三、实验条件Quartus II实验环境四、实验与仿真顶层文件如下:Cp为时钟信号R为异步清零端。
当r=1时清零。
S[2..0]为输入端。
根据s的不同取值来实现不同的功能。
D[7..0]为预制数Q[7..0]为输出功能表如下VHDL编码如下library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity traffic isport(clk,enb:in std_logic;ared,agreen,ayellow,bred,bgreen,byellow:buffer std_logic;acounth,acountl,bcounth,bcountl:buffer std_logic_vector(3 downto 0));end traffic;architecture one of traffic isbeginprocess(clk,enb)variable lightstatus:std_logic_vector(5 downto 0);beginif(clk'event and clk='1')thenlightstatus:=ared&agreen&ayellow&bred&bgreen&byellow;if((acounth="0000" and acountl="0000") or(bcounth="0000" and bcountl="0000"))thencase lightstatus iswhen "010100"=>lightstatus:="001100";acountl<="0101";acounth<="0000";bcountl<="0101";bcounth<="0000"; when"001100"=>if(enb='1')thenlightstatus:="100010";acountl<="0000";acounth<="0011";bcountl<="0101";bcounth<="0010";elselightstatus:="010100";acountl<="0101";acounth<="0100";bcountl<="0000";bcounth<="0101"; end if;when "100010"=>lightstatus:="100001";acountl<="0101";acounth<="0000";bcountl<="0101";bcounth<="0000";when"100001"=>lightstatus:="010100";acountl<="0101";acounth<="0100";bcountl<="0000";bcounth<="0101";when others=>lightstatus:="010100";acountl<="0101";acounth<="0100";bcountl<="0000";bcounth<="0101";end case;elseif(acountl="0000")thenacounth<=acounth-1;acountl<="1001";elseacountl<=acountl-1;end if;if(bcountl="0000")thenbcounth<=bcounth-1;bcountl<="1001";elsebcountl<=bcountl-1;end if;end if;end if;ared<=lightstatus(5);agreen<=lightstatus(4);ayellow<=lightstatus(3);bred<=lightstatus(2);bgreen<=lightstatus(1);byellow<=lightstatus(0); end process;end one;仿真:右移:依次点亮灯左移:依次点亮灯循环右移:循环点亮循环左移:循环点亮。
quartusII输入原理图及仿真步骤
quartusII输⼊原理图及仿真步骤
在Quartus II中输⼊原理图以及实现仿真是学习基本数字电路的好⽅法。
下⾯以⼀个基本的D锁存器为例,在quartus II 13.0中⼀步⼀步来实现原理图输⼊以及仿真过程。
1,创建⼯程
指定⼯程名字以及顶层⽂件名
跳过。
我⽤的是⼩梅哥的AC620开发板,按下⾯的图进⾏选择:
因为输⼊原理图以及⽤波形⽂件来仿真,所以EDA⼯具-simulation中选None
点finish,完成⼯程创建。
随后,创建⼀个波形⽂件。
选择nand2,⼆个输⼊的与⾮门,依次添加四个and2和⼀个⾮门not
通过⼯具栏上⾯输⼊输出⼯具,以及连线⼯具,设计出以下的电路图。
保存电路图为:
启动分析与综合,编译原理图⽂件。
如果有编译错误,修改原理图,直到没有错误。
也要检查警告信息,看是否连线连接正确。
编译后,⽤rtl viewer,可以看到下⾯硬件电路图。
创建vwm格式波形⽂件,输⼊激励源。
插⼊Node和bus后,得到下⾯的波形
通过⼯具栏上⾯⼯具按钮,编辑输⼊Clk和D信号。
产⽣时钟信号:
⽤⿏标选择D,Q信号Q_n,,进⾏编辑,编辑好后,运⾏功能仿真。
功能仿真后的波形,满⾜D latch的时序,全编译后,也可以运⾏时序仿真。
7实验七 基于LMP_ROM的流水灯控制器设计与调试
实验七基于LPM_ROM的LED流水灯设计与调试一、实验目的1、掌握QuartusII采用原理图结合VHDL编程方式进行设计的流程。
2、学会调用LPM模块的操作步骤。
掌握基于LPM_ROM设计的基本方法。
二、实验原理:基于LPM_ROM的LED流水灯控制器的顶层原理图文件图 7-1 所示,包含2 个部分:由6位二进制计数器担任的ROM的地址信号发生器和由LPM_ROM模块构成一个存储显示花样数据的ROM。
在系统时钟的作用下,地址计数器轮流读出LPM_ROM中的数据,使实验箱上的8个LED根据预先存储在ROM中的数据按各种花样变化。
三、实验步骤在QuartusII中可以用LPM模块设计ROM、RAM、FIFO、PLL,在本实验中将以ROM为例,介绍LPM功能的使用。
1、建立工程在F盘建立新的工程2、分模块设计1)地址计数器模块(CNT16.VHD)设计:a) 建立VHDL文件,写入程序。
(源程序略)b) 编译通过之后,将VHDL文档封装生成 CNT16元件(当前VHDL编辑界面下,点击File——Creat/Update——Creat Symbol Files for current File)2)设计ROM初始化数据文件在此首先确定图 7-1 中ROM 内的数据文件。
QuartusII 能接受的LPM_ROM 中的初始化数据文件的格式有2 种:Memory Initialization File (.mif)格式和Hexadecimal(Intel-Format)File(.hex)格式。
实际应用中只要使用其中一种格式文件即可。
以下以64点LED花样显示数据为例说明(.mif)文件的建立。
①首先在Quartus II 中选择ROM 数据文件编辑窗,即在File 菜单中选择New,并在New窗中选择Other files 页,再选择Memory Initialization File 项,单击OK 按钮后产生ROM 数据文件大小选择窗。
FPGA入门系列实验教程——流水灯
FPGA入门系列实验教程——LED流水灯1.实验任务让实验板上的8个LED实现流水灯的功能。
通过这个实验,进一步掌握采用计数与判断的方式来实现分频的VHDL的编程方法以及移位运算符的使用。
2.实验环境硬件实验环境为艾米电子工作室型号EP2C8Q208C8增强版开发套件。
软件实验环境为Quartus II8.1开发软件。
3.实验原理流水灯,顾名思义就是让LED象水一样的点亮。
如果把流水做慢动作播放,可以想象到其实就是移动,即:把水块不断地向同一方向移动,而原来的水块保持不动,就形成了流水。
同样,如果使得最左边的灯先亮;然后,通过移位,在其右侧的灯,由左向右依次点亮,而已经亮的灯又不灭,便形成了向右的流水灯。
初始状态时,8个灯都不亮。
每来一个时钟脉冲CLK,计数器就加1。
每当判断出计数器中的数值达到25000000时,就会点亮一个灯,并进行移位。
FPGA输出的数据就应该首先是10000000,隔1秒钟变成11000000……一直变化到11111111,这样,依次点亮所有的灯,就形成了流水灯。
而当8个灯都点亮时,需要一个操作使得所有的灯恢复为初始状态,即:灯都不亮。
然后,再一次流水即可。
如果是右移位,就出现向右流水的现象;反之,向左流水。
4.实验程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity LED isport(clk:in std_logic;//设置时钟输入dout:out std_logic_vector(7downto0));//8位端口输出end LED;architecture behave of LED issignal p:std_logic_vector(31downto0);//信号变量signal t:std_logic_vector(8downto0);beginprocess(clk)beginif(clk'event and clk='1')then//判断上升沿信号p<=p+1;if(p=25000000)thent(8downto1)<=t(7downto0);//将低8位移至高8位t(0)<='1';//最地位置1p<="00000000000000000000000000000000";end if;if(t(8)='1')thent<="000000000";end if;end if;end process;dout<=t(7downto0);//将低8位赋给输出端口end behave;代码分析:先定义一个二进制32位的信号变量P和一个9位的信号变量t,时钟每产生一个上升沿的时钟跳变,P自动加1。
Proteus硬件仿真(单片机控制流水灯)实 验 报 告
湖州师院Proteus硬件仿真(单片机控制流水灯)实验报告姓名汪健雷班级092833学号07083438一、实验目的1、了解proteus软件,掌握Proteus在单片机仿真中的应用,为开发、调试单片机应用系统做准备。
2、熟练掌握isis环境电路图的建立(流水灯电路图)二、实验仪器1、PC机2、proteus仿真软件三、实验内容1、选择元器件,画出电路图,学会硬件的设计2、在仿真软件上实现相应的功能四、实验步骤1、软件打开2、双击桌面上的ISIS 7 Professional图标或者单击屏幕左下方的“开始”→“程序”→“Proteus 7 Professional”→“ISIS 7 Professional”,出现如图所示界面,随后就进入了Proteus ISIS集成环境。
2、Proteus ISIS的工作界面是一种标准的Windows界面,如图1-2所示。
包括:标题栏、主菜单、标准工具栏、绘图工具栏、状态栏、对象选择按钮、预览对象方位控制按钮、仿真进程控制按钮、预览窗口、对象选择器窗口、图形编辑窗口。
3、添加元器件将所需元器件加入到对象选择器窗口。
Picking Components into the Schematic单击对象选择器按钮,根据元件预览区域的显示,双击你所需要的元件,则所选元件出现在原理图编辑环境的元件列表区中,如图所示。
用同样的方法找出原理图中需要的所有元件。
4、放置元器件放置元器件至图形编辑窗口Placing Components onto the Schematic 在对象选择器窗口中,选中AT89C51,将鼠标置于图形编辑窗口该对象的欲放位置、单击鼠标左键,该对象被完成放置。
其他元器件放置方法相同。
EDA:流水灯实验
end process;
led_8bit<=tmp;
end keyboard1;
在完成流水灯源程序的编辑后,执行”Processing”菜单下的“Start Compilation”命令,对keyboard1.vhd进行编译。
在完成对源文件的编译后,执行“File”菜单的“New”命令,或者直接按主窗口上的“创建新的文本文件”按钮,在弹出的新文件类型选择对话框中,选择“Vector Waveform File”生成仿真文件。
对引脚进行锁定。
执行”Assignments”菜单下的“Pins”命令,根据下图进行引脚设置。
用电缆连接电脑与设备箱,执行”Tools”菜单下的“Programmer”命令,在弹出的对话框中,单击“Hardware Setup”并在新弹出的对话框中选择驱动,然后退出至上一层对话框,单击“Start”进行下载烧录。
【实验数据整理与归纳】
keyboard11.vhd 实际效果图
keyboard11.vwf
【实验结果与分析】
计数译码系统电路的仿真波形如图keyboard11.vwf所示,键值为"1110"时,LED0~LED7的状态应为"11000000";键值为"1101"时,LED0~LED7的状态应为"00110000",依此类推。
仿真结果验证了设计的正确性。
而实际情况与仿真结果相吻合。
【实验中遇到的问题及解决方案】
1.不知道如何对引脚进行锁定。
解决方案:上网搜寻教程。
2.驱动安装失败。
解决方案:根据老师发的教程,更换别的方法进行安装。
QUARTUSII软件开放性实验报告材料
开放性实验报告专业:电子信息工程班级: *电信*班姓名:学号:指导老师:实验一:流水灯一.实验内容利用QUARTUSII软件,构建NIOSII软核系统,编写程序,实现实验箱上LED灯的流水功能。
二.实验原理通过提前设定NIOSII软核处理器的相关寄存器,控制led 的IO 口的高低电平输出及响应间隔时间,从而改变LED的亮灭并达到流水灯效果。
三.实验步骤1.硬件设计(1).构建NIOSII软核NIOSII软核处理器包括cpu,sdram控制器,串行flash控制器,jtag_uart,sysid,pio端口。
(2).PLL模块的构建实验箱的板载有源晶振频率为50MHZ,NIOSII及SDRAM需要100MHZ 的时钟源,因此需要用PLL模块进行倍频。
PLL模块的配置如图所示:输入时钟频率为50MHZ输出时钟c0为输入时钟的2倍频输出时钟c1为输入时钟的2倍频,相位偏移-75度,为SDRAM 提供工作时钟PLL模块:(3).系统连线及引脚分配qsf文件中的引脚分配:set_location_assignment PIN_AF21 -to sdram_addr[0] set_location_assignment PIN_AE20 -to sdram_addr[1] set_location_assignment PIN_AF20 -to sdram_addr[2] set_location_assignment PIN_AE19 -to sdram_addr[3] set_location_assignment PIN_B20 -to sdram_addr[4] set_location_assignment PIN_A21 -to sdram_addr[5] set_location_assignment PIN_B21 -to sdram_addr[6] set_location_assignment PIN_A22 -to sdram_addr[7] set_location_assignment PIN_B22 -to sdram_addr[8] set_location_assignment PIN_A23 -to sdram_addr[9] set_location_assignment PIN_AE21 -to sdram_addr[10] set_location_assignment PIN_B23 -to sdram_addr[11] set_location_assignment PIN_B24 -to sdram_addr[12] set_location_assignment PIN_AE22 -to sdram_ba[0]set_location_assignment PIN_AF22 -to sdram_ba[1] set_location_assignment PIN_AE24 -to sdram_cas_n set_location_assignment PIN_B25 -to sdram_ckeset_location_assignment PIN_AF23 -to sdram_cs_n set_location_assignment PIN_AD25 -to sdram_dq[0] set_location_assignment PIN_AC25 -to sdram_dq[1] set_location_assignment PIN_AC26 -to sdram_dq[2] set_location_assignment PIN_AB25 -to sdram_dq[3] set_location_assignment PIN_AB26 -to sdram_dq[4] set_location_assignment PIN_AA25 -to sdram_dq[5] set_location_assignment PIN_AA26 -to sdram_dq[6] set_location_assignment PIN_Y25 -to sdram_dq[7] set_location_assignment PIN_W26 -to sdram_dq[8] set_location_assignment PIN_V25 -to sdram_dq[9] set_location_assignment PIN_V26 -to sdram_dq[10] set_location_assignment PIN_U25 -to sdram_dq[11] set_location_assignment PIN_U26 -to sdram_dq[12] set_location_assignment PIN_T25 -to sdram_dq[13] set_location_assignment PIN_R25 -to sdram_dq[14] set_location_assignment PIN_P24 -to sdram_dq[15] set_location_assignment PIN_N24 -to sdram_dq[16] set_location_assignment PIN_M25 -to sdram_dq[17] set_location_assignment PIN_L25 -to sdram_dq[18] set_location_assignment PIN_K26 -to sdram_dq[19] set_location_assignment PIN_K25 -to sdram_dq[20] set_location_assignment PIN_J26 -to sdram_dq[21] set_location_assignment PIN_J25 -to sdram_dq[22] set_location_assignment PIN_H26 -to sdram_dq[23] set_location_assignment PIN_G25 -to sdram_dq[24] set_location_assignment PIN_F26 -to sdram_dq[25] set_location_assignment PIN_F25 -to sdram_dq[26] set_location_assignment PIN_E26 -to sdram_dq[27] set_location_assignment PIN_E25 -to sdram_dq[28] set_location_assignment PIN_D26 -to sdram_dq[29] set_location_assignment PIN_D25 -to sdram_dq[30] set_location_assignment PIN_C25 -to sdram_dq[31] set_location_assignment PIN_Y26 -to sdram_dqm[0] set_location_assignment PIN_W25 -to sdram_dqm[1] set_location_assignment PIN_H25 -to sdram_dqm[2] set_location_assignment PIN_G26 -to sdram_dqm[3] set_location_assignment PIN_AE23 -to sdram_ras_n set_location_assignment PIN_AE25 -to sdram_we_n set_location_assignment PIN_F21 -to clk_sdram2.软件设计system.h文件中关于PIO_LED的宏定义#define PIO_LED_NAME "/dev/pio_LED"#define PIO_LED_TYPE "altera_avalon_pio"#define PIO_LED_BASE 0x00001800#define PIO_LED_SPAN 16#define PIO_LED_DO_TEST_BENCH_WIRING 0#define PIO_LED_DRIVEN_SIM_VALUE 0#define PIO_LED_HAS_TRI 0#define PIO_LED_HAS_OUT 1#define PIO_LED_HAS_IN 0#define PIO_LED_CAPTURE 0#define PIO_LED_DATA_WIDTH 8#define PIO_LED_RESET_VALUE 0#define PIO_LED_EDGE_TYPE "NONE"#define PIO_LED_IRQ_TYPE "NONE"#define PIO_LED_BIT_CLEARING_EDGE_REGISTER 0#define PIO_LED_BIT_MODIFYING_OUTPUT_REGISTER 0#define PIO_LED_FREQ 100000000#define ALT_MODULE_CLASS_pio_LED altera_avalon_pio利用system.h文件编写sopc.h,通过操作结构体PIO_STR完成对PIO_寄存器的操作。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
a
6
计数译码型流水灯参考设计
1、异步模八计数器设计(在QuartusII中画图)
由JK→T’构成异步模八计数器为74LS138产生连续变化的 地址信号;
f1为连续脉冲CP,为便于视觉观察,输入频率一般应为110Hz;
Q2、Q1、Q0分别接到74138的地址端A2、A1、A0;
a
7
2、译码器应用(在QuartusII中进行图形设计)
Q0 A0
CP
8进制 Q1 A1 3-8线
计数器 Q2 A2 译码器
八进制计数器可以通过将3个JK或D触发器 先组成T’触发器,然后再级联为异步计数器
a
4
2.移位寄存器构成顺序脉冲发生器实现
移位寄存器构成顺序脉冲发生器可用来控制LED灯按 照设计的顺序节拍进行变化,从而实现流水效果。
74LS194是双向4位移位寄存器,为了控制8个灯,可 以将2片74LS194级联后构成8位顺序脉冲发生器
Q2、Q1、Q0接三个JK触发器的Q端输出,接收 前端计数器输出的地址信号;
Y0、Y1、……Y7与实验板上的LED灯进行连接 (在QuartusII下进行引脚锁定),观察流水现象;
a
8
五、实验步骤
1. 通过QuartusII建立一个新项目; 2. 建立项目时选Cyclone系s,注册请求界面已消失。
a
12
若注册请求界 面还未消失
请按左图选择
在下图中重设 文件指向路径
a
13
2、Quartus II 6.0主界面操作环境
1、Project Navigator(工程管理器)
2、Status window(状态窗口) 2、Message window(信息窗口)
(3)新建波形激励文件并配置测试端口,合理设置仿真时间长 度及仿真时钟周期;
(4)启动仿真。仿真运行完毕后会生成报告波形。分析仿真波 形的特征,印证设计目标,是否达到预期设计。
2.设计一个移存型流水灯的逻辑电路并完成仿真测试,电路 采用8灯结构,8个灯按1亮7暗的规律循环流动。
设计的步骤要求同上。
址physiccal address;
用写字板或记事本打开本机QuartusII软件实际安装目录下 的license.dat文件。如C:\Altera\ license.dat
使用“全部替换”功能将其中的所有的Host ID替换为本机 实际的物理地址即完成破解。
(替换时需注意不能插入空格并去掉符号“-” )
QuartusII软件可到实验中心网站上下载,要注意它 的破解步骤。
a
10
一、准备
1、使用QuartusII软件之前,请确保软件已正常破解
若启动QuartusII时看到如下注册请求界面,则说明软件尚 未注册许可,需要进行认证后才能正常使用:
a
11
在开始菜单\运行中输入命令:cmd,打开MS-DOS命令窗; 在命令窗中输入: ipconfig/all,回车后即列出本机物理地
a
2
三、实验原理
………………………………
流水灯是一种效果灯光,它通过按固定的规律将LED 点亮或熄灭
上图给出了一种简单的流水灯状态变化示意图,用逻 辑电路控制8个LED灯,始终保持7亮1暗,在脉冲信 号CP的推动下循环流动;
将灯亮用1表示,灯灭用0表示;
a
3
1.二进制译码器结合计数器实现
使用八进制计数器产生74LS138地址端所需的8个地址 信号,将计数输出Q0、Q1、Q2分别接入74LS138的 A0、A1、A2,为计数器提供低频连续脉冲CP,即可 在74LS138的8个输出端获得流水灯的连续状态输出
文件菜单
选择文件的存放路径 工程文件名,任取,建立 在用户自己的目录下,不 要使用软件的安装目录或 系统目录 顶层实体名,一般和工程 名相同
Q0 Q1 Q2 Q3 M1
Q0 Q1 Q2 Q3 M1
1
CR 74 LS 194 M0
1
CR 74 LS 194 M0
DSR
DSL
DSR
DSL
D0 D1 D2 D3
D0 D1 D2 D3
CP 0 0 0 0
CP 0 0 0 1
1
K 0
1
顺序脉冲发生器启动时需要通过置数功能先预置状态初值, 然后再切换回移位状态,这需要对74LS194的M1、M0 模式控制端使用开关进行模式切换
a
14
3、常用工具栏
扩展控制按钮
编译报告
若QuartusII界面上 To reset views:
一些默认的按钮被 关闭,影响使用,
1.Tools Customize Toolbars Reset All
可按右边的操作步 2.Restart Quartus II
骤来复原
a
15
二、在QuartusII6.0环境下建立工程
实验三:基于QuartusII原理 图的流水灯设计及仿真
1
一、实验目的
掌握EDA集成工具软件Quartus II的使用; 了解基于PLD的EDA设计流程; 熟悉使用QuartusII原理图方式进行数字逻辑电路设计
的方法; 熟练掌握使用QuartusII对逻辑电路进行仿真。
二、实验设备
计算机
a
5
四、实验内容和要求
1.设计一个计数译码型流水灯的逻辑电路并完成仿真测试, 电路采用8灯结构,8个灯按7亮1暗的规律循环流动,步骤要求 如下:
(1)在Quartus II软件环境下,采用原理图方式,完成逻辑电 路设计。
(2)启动全程编译,若存在严重的逻辑问题编译时会报错,修 改直至电路无误;
(devices)EP1C3T144C8 3. 新建图形设计文件,调用相关元件,设计总体电路原理
图,并编译通过; 4. 新建波形矢量文件,添加引脚端口并编辑激励波形,保
存该文件并执行时序仿真,观察并分析仿真结果。
a
9
QuartusII软件操作流程
请同学们参照后面的步骤,提前做好预习,熟悉 QuartusII软件的操作环境;
工程创建时的准备工作
QuartusII通过“工程(Project)”来管理设计文 件,必须为此工程创建一个放置与此工程相关的 所有设计文件的文件夹;
此文件夹名不宜用中文,也最好不要用数字,应 放到磁盘上容易找到的地方,不要放在软件的安 装目录中;
建立完工程文件夹后再进行后续操作……
a
16
1、项目创建向导