文档库 最新最全的文档下载
当前位置:文档库 › 实验一-QUARTUS-II入门和分频器设计

实验一-QUARTUS-II入门和分频器设计

实验一-QUARTUS-II入门和分频器设计
实验一-QUARTUS-II入门和分频器设计

实验一-QUARTUS-II入门和分频器设计

实验报告

课程名称EDA技术与VHDL设计

实验项目Quartus II入门

实验仪器计算机、Quartus II

系别信息与通信工程学院

专业电子信息工程

班级/学号电信1201 / 2012010970 学生姓名张宗男

实验日期

成绩

指导教师

实验一 QUARTUS II入门和分频器设计

一、实验目的

1.掌握QUARTUS II工具的基本使用方法;2.掌握FPGA基本开发流程和DE2开发板的使用方法;

3.学习分频器设计方法。

二、实验内容

1.运用QUARTUS II 开发工具编写简单LED和数码管控制电路并下载到DE2 实验开发板。2.在QUARTUS II 软件中用VHDL语言实现十分频的元器件编译,并用电路进行验证,画出仿真波形。

三、实验环境

1.软件工具:QUARTUS II 软件;开发语言:VHDL;2.硬件平台:DE2实验开发板。

四、实验过程

1.设计思路

(1)、

18个开关控制18个LED灯,通过低位四个开关的‘1’‘0’控制LED灯上7段灯的显示(2)、

实现10分频IF(count="1001") THEN

count<="0000";

clk_temp<=NOT clk_temp;

达到9的时候,把“0000”给到cout,然后clk_temp 信号翻转,从而实现10分频。

2.VHDL源程序

(1)、

LIBRARY ieee;

USE ieee.std_logic_1164.all;

ENTITY e_zhangzongnan IS

PORT(SW :IN STD_LOGIC_VECTOR(0 TO

17);

HEX0 :OUT STD_LOGIC_VECTOR(0 TO 6);

LEDR :OUT STD_LOGIC_VECTOR(0 TO 17));

END e_zhangzongnan;

ARCHITECTURE Behavior OF e_zhangzongnan IS SIGNAL temp :STD_LOGIC_VECTOR(0 TO 3); BEGIN

LEDR<=SW;

temp(3)<=SW(0);

temp(2)<=SW(1);

temp(1)<=SW(2);

temp(0)<=SW(3);

PROCESS(temp)

BEGIN

CASE temp IS

WHEN "0000"=>HEX0<="0000001";

WHEN "0001"=>HEX0<="1001111";

WHEN

"0010"=>HEX0<="0010010";

WHEN "0011"=>HEX0<="0000110"; WHEN "0100"=>HEX0<="1001100"; WHEN "0101"=>HEX0<="0100100"; WHEN "0110"=>HEX0<="0100000"; WHEN "0111"=>HEX0<="0001111"; WHEN "1000"=>HEX0<="0000000"; WHEN "1001"=>HEX0<="0000100"; WHEN OTHERS=>HEX0<="1001000";

END CASE;

END PROCESS;

END Behavior;

(2)、

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY f_zhangzongnan IS

PORT(clk: IN STD_LOGIC;

clk_div10: OUT STD_LOGIC);

END ENTITY f_zhangzongnan;

ARCHITECTURE rtl OF f_zhangzongnan IS

SIGNAL count: STD_LOGIC_VECTOR(3 DOWNTO 0);

SIGNAL clk_temp: STD_LOGIC;

BEGIN

PROCESS(clk)

BEGIN

IF(clk'event AND clk='1') THEN IF(count="1001") THEN

count<="0000";

clk_temp<=NOT clk_temp;

ELSE

count<=count+1; END IF;

END IF;

END PROCESS;

clk_div10<= clk_temp;

END ARCHITECTURE rtl;

实验结果分析

(1)、

能够实现相应的功能。

(2)、

从波形图可以看出,能够实现10分频。

六、实验总结

通过这次实验,我对QUARTUS的新建,输代码,运行,仿真,烧写,和学习板的操作都相应的有了认识和学习,通过代码的编写和修改,对EDA语言有了比课堂上更加深刻的认识和掌握,为以后的学习奠定了一定的基础。

程序设计基础实验指导书

说明 每个实验做完以后,按照实验报告模板格式完成相应的实验报告,存储为word 文档,最终提交的实验文档数量种类和命名原则如下例:(不按要求 者拒收) 目录结构图目录实验 1 内的文件种类和命名原则实验报告成绩将作为平时成绩的一部分计算到期末总成绩中。 实验报告严禁相互抄袭,一经发现抄袭和被抄袭者本次实验按零分计算!

实验1 C 的实验环境和C 语言的数据类型 1. 实验目的 ⑴ 了解在具体的语言环境下如何编辑、编译、连接和运行一个C 程序。 ⑵ 通过运行简单的C 程序,初步了解C 源程序的特点。 ⑶ 掌握C 语言数据类型, 熟悉如何定义一个整型、字符型和实型的变量,以及对它 们赋值的方法。 ⑷ 掌握不同的类型数据之间赋值的规律。 ⑸ 学会使用C 的有关算术运算符,以及包含这些运算符的表达式,特别是自加(+ +)和自减(--)运算符的使用。 2. 实验内容和步骤 检查所用的计算机系统是否已安装了C 编译系统并确定他所在的子目录。 进入所用的集成环境。 熟悉集成环境的界面和有关菜单的使用方法。 输入并运行一个简单的、正确的程序。 3. 实验题目 输入下面的程序 # include "stdio.h" void main() { printf( "This is a c program.\n" ); } 程序无误,其运行的结果为:(请填写) ⑵ 输入并编辑一个有错误的 C 程序。 # include “ stdio.h ” void main() { int a,b,sum a=123; b=456; sum=a+b print( “ suism%d n” ,sum); } 运行后程序出现几处错误,请分别指出,并逐一更改: ⑶ 若k,g 均为int 型变量, 则下列语句的输出为, : # include "stdio.h" void main() { int k, g; k=017; g=111;

哈工大FPGA设计与应用分频器设计实验报告

FPGA设计与应用 分频器设计实验报告 班级:1105103班 姓名:郭诚 学号:1110510304 日期:2014年10月11日

实验性质:验证性实验类型:必做开课单位:电信院学时:2学时 一、实验目的 1、了解Quartus II软件的功能; 2、掌握Quartus II的HDL输入方法; 3、掌握Quartus II编译、综合、适配和时序仿真; 4、掌握Quartus II管脚分配、数据流下载方法; 5、了解设计的资源消耗情况; 6、掌握分频器和计数器的实现原理; 7、掌握数码管的静态和动态显示原理 二、实验准备(1分) 2.1 EP2C8的系统资源概述 逻辑单元8,256 M4K RAM 块(4k比特+512校验比特) 36 总的RAM比特数165,888 嵌入式乘法器18 锁相环PLLs 2

2.2 工程所用到的FPGA引脚及功能说明 工程所用到的FPGA引脚及功能说明: PIN_23是时钟引脚; PIN_114 PIN_117 PIN_127 PIN_134是数码管的位选引脚; PIN_133 PIN_116 PIN_110 PIN_112 PIN_128 PIN_118 PIN_115是数码管段选信号引脚;实验所用的LED是共阴级连接 2.3 数码管的动态显示原理 动态显示是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O 线控制,当输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于FPGA对位选通COM端电路的控制,所以只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。

VHDL非整数分频器设计实验报告

非整数分频器设计 一、 输入文件 输入时钟CLK: IN STD_LOGIC 二、 设计思路 1. 方法一:分频比交错 (1) 确定K 值 先根据学号S N 确定M 和N :为了保证同学们的学号都不相同,取学号的后四位,即N S =1763 ()mod 1920(mod 17)0 17mod 17 S S S N N if N then M else M N =+=== 由以上公式,得N=(1763 mod 19)+20=35 M=(1763 mod 17)=12 然后根据下式计算分频比K 的值: 8()9N M M K N -+= = =8.34285714 (2) 确定交错规律 使在35分频的一个循环内,进行12次9分频和23次8分频,这样,输出F_OUT 平均为F_IN 的8.34285714分频。为使分频输出信号的占空比尽可能均匀,8分频和9分频应‘交替’进 (3) 设计框图:要求同步时序设计

(4)代码 在实体内定义两个进程(PROCESS P1和PROCESS P2),一个进程控制输出8/9分频,一个进程控制35分频周期比例输出。控制器输出FS_CTL信号控制输出是8分频还是9分频,分频器输出C_ENB信号来控制35分频计数器计数。 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; ENTITY DIV IS--定义实体,实体名DIV PORT(F_IN: IN STD_LOGIC;--输入时钟信号 F_OUT: OUT STD_LOGIC--输出时钟信号 ); END DIV; ARCHITECTURE A OF DIV IS SIGNAL CN1: INTEGER RANGE 0 TO 7;--8分频计数器 SIGNAL CN2: INTEGER RANGE 0 TO 8;--9分频计数器 SIGNAL CN: INTEGER RANGE 0 TO 34;--整体计数器 SIGNAL C_ENB: STD_LOGIC;--整体计数器时钟驱动信号 SIGNAL FS_CTL: STD_LOGIC;--控制8、9分频比例信号,高电平8分频,低电平9分频 BEGIN P1:PROCESS(F_IN)--8、9分频计数进程 BEGIN IF (F_IN'EVENT AND F_IN='1') THEN IF(FS_CTL='0') THEN--9分频 IF CN2=8 THEN--计数 CN2<=0; ELSE CN2<=CN2+1; END IF; IF CN2>4 THEN--控制输出,占空比0.5 F_OUT<='1'; ELSE F_OUT<='0'; END IF; IF CN2=8 THEN--控制整体计数器驱动信号 C_ENB<='1'; ELSE C_ENB<='0'; END IF; ELSE IF CN1=7 THEN--8分频计数,同上 CN1<=0; ELSE CN1<=CN1+1; END IF; IF CN1>3 THEN F_OUT<='1'; ELSE F_OUT<='0'; END IF; IF CN1=7 THEN C_ENB<='1'; ELSE C_ENB<='0'; END IF; END IF; END IF; END PROCESS P1; P2:PROCESS(C_ENB)--整体计数进程 BEGIN IF (C_ENB'EVENT AND C_ENB='1') THEN--由驱动信号驱动 IF CN=34 THEN--计数 CN<=0; ELSE CN<=CN+1; END IF; IF (CN=34 OR CN=2 OR CN=5 OR CN=8 OR CN=11 OR CN=14 OR CN=17 OR CN=20 OR CN=23 OR CN=26 OR CN=29 OR CN=32) THEN FS_CTL<='0'; ELSE FS_CTL<='1'; END IF;--8、9分频比例分配 ELSE CN<=CN; END IF; END PROCESS P2; END A;

程序设计基础实验内容

实验指导 实验一 Visual C++开发环境使用 1.实验目的 (1)熟悉Visual C++集成开发环境。 (2)掌握C语言程序的书写格式和C语言程序的结构。 (3)掌握C语言上机步骤,了解C程序的运行方法。 (4)能够熟练地掌握C语言程序的调试方法和步骤 2. 实验内容 输入如下程序,实现两个数的乘积。 #include ; int main() { x=10,y=20 p=prodct(x,t) printf("The product is : ",p) int prodct(int a ,int b ) int c c=a*b return c } (1)在编辑状态下照原样键入上述程序。 (2)编译并运行上述程序,记下所给出的出错信息。 (3)再编译执行纠错后的程序。如还有错误,再编辑改正,直到不出现语法错误为止。3.分析与讨论 (1)记下在调试过程中所发现的错误、系统给出的出错信息和对策。分析讨论成功或失败的原因。 (2)总结C程序的结构和书写规则。 实验二数据类型、运算符和表达式 1.实验目的 (1)理解常用运行符的功能、优先级和结合性。 (2)熟练掌握算术表达式的求值规则。 (3)熟练使用赋值表达式。 (4)理解自加、自减运算符和逗号运算符 (5)掌握关系表达式和逻辑表达式的求值 2.实验内容 (1)整数相除 #include<> int main() {

int a=5,b=7,c=100,d,e,f; d=a/b*c; e=a*c/b; f=c/b*a; printf("d=%d , e=%d ,f=%d\n",d,e,f); return 0; } (2)自加、自减运算 #include<> int main() { int a=5,b=8; printf("a++=%d\n",a++); printf("a=%d\n",a); printf("++b=%d\n",++b); printf("b=%d\n",b); return 0; } (3)关系运算和逻辑运算 #include<> int main() { int a=5,b=8,c=8; printf("%d,%d,%d,%d\n",a==b&&a==c,a!=b&&a!=c,a>=b&&a>=c,a<=b&&a<=c); printf("%d,%d\n",a<=b||a>=c,a==b||b==c); printf("%d,%d,%d,%d\n",!(a==b),!(a>=b),!(a>=c),!(a<=b)); return 0; } (1)在编辑状态下输入上述程序。 (2)编译并运行上述程序。 3.分析与讨论 (1)整数相除有什么危险?应如何避免这种危险? (2)分析a++和++a的区别。 (3)条件表达式和逻辑表达式的意义是什么,它们取值如何? (4)如何比较两个浮点数相等?为什么? 实验三格式化输入输出函数的使用 1.实验目的 (1)掌握格式字符使用的方法。 (2)掌握printf()进行格式化输出的方法。 (3)掌握scanf()进行格式化输入的方法。 2.实验内容 (1)输入如下程序,观察运行结果 #include<>

分频器实验报告

分频器实验报告 分频器实验报告 start simulation直至出现 simulation as suessful,仿真结束。观察仿真结果。 时序仿真 图 : 六.实验过程所出现的问题及其解决 通过本次实验,初步掌握了语言的初步设计,收获颇多。但在实验过 程中也遇到了许多的问题,通过自己的独立思考和老师同学的相互讨 论对这个实验有了进一步的了解和认识。在最初建立工程的地方出现 了不少问题,因为没有详细阅读教材,导致无法成功建立工程运行程 序,最后认真熟读教材后,解决了问题。通过对错误的分析和解决, 让自己更好的掌握这一软件的基础操作,为下一次试验打下了见识的 基础。篇五: 八位十进制分频器实验报告 重庆交通大学信息科学与工程学院综合性实 验报告 姓名: 赵娅琳学号 10950214 班级:

通信工程专业201X级 2班 实验项目名称: 8位16进制频率及设计 实验项目性质: 设计性 实验所属课程: 数字设计基础 实验室 BEGIN IF CLKK'EVENT AND CLKK='1' THEN --1Hz时钟2分频 Div2CLK <= NOT Div2CLK; END IF; END PROCESS; PROCESS BEGIN IF CLKK='0' AND Div2CLK='0' THEN RST_CNT<='1'; --产生计数器清零信号 ELSE RST_CNT <='0'; END IF; END PROCESS; Load <= NOT Div2CLK; CNT_EN <= Div2CLK; END behav; 3、十进制计数模块

EDA 实验2简单分频时序逻辑电路设计 实验报告

时序电路设计 实验目的: 1.掌握条件语句在简单时序模块设计中的使用。 2.学习在Verilog模块中应用计数器。 实验环境: Windows 7、MAX+PlusⅡ10等。 实验内容: 1.模为60的8421BCD码加法计数器的文本设计及仿真。 2.BCD码—七段数码管显示译码器的文本设计及仿真。 3.用For语句设计和仿真七人投票表决器。 4.1/20分频器的文本设计及仿真。 实验过程: 一、模为60的8421BCD码加法计数器的文本设计及仿真: (1)新建文本:选择菜单File下的New,出现如图5.1所示的对话框,在框中选中“Text Editor file”,按“OK”按钮,即选中了文本编辑方式。 图5.1 新建文本 (2)另存为V erilog编辑文件,命名为“count60.v”如图5.2所示。 (3)在编辑窗口中输入程序,如图5.3所示。

图5.2 另存为.V编辑文件图5.4 设置当前仿真的文本设计 图5.3 模为60的8421BCD码加法计数器的设计代码

(4)设置当前文本:在MAX+PLUS II中,在编译一个项目前,必须确定一个设计文件作为当前项目。按下列步骤确定项目名:在File菜单中选择Project 中的Name选项,将出现Project Name 对话框:在Files 框内,选择当前的设计文件。选择“OK”。如图5.4所示。 (5)打开编译器窗口:在MAX—plusⅡ菜单内选择Compiler 项,即出现如图5.5的编译器窗口。 图5.5 编译器窗口 选择Start即可开始编译,MAX+PLUS II编译器将检查项目是否有错,并对项目进行逻辑综合,然后配置到一个Altera 器件中,同时将产生报告文件、编程文件和用于时间仿真用的输出文件。 (6)建立波形编辑文件:选择菜单File下的New选项,在出现的New对话框中选择“Waveform Editor File”,单击OK后将出现波形编辑器子窗口。 (7)仿真节点插入:选择菜单Node下的Enter Nodes from SNF选项,出现如图5.6所示的选择信号结点对话框。按右上侧的“List”按钮,在左边的列表框选择需要的信号结点,然后按中间的“=>”按钮,单击“OK”,选中的信号将出现在波形编辑器中。 图5.6 仿真节点插入

C语言程序设计基础实验报告3【VIP专享】

实验3 逻辑结构程序设计一、实验目的 1、了解C 语言表示逻辑量的方法(以0代表“假”,以非0代表“真” )。 2、学会正确使用逻辑运算符和逻辑表达式。 3、熟练掌握if 语句和switch 语句。 4、结合程序掌握一些简单的算法。 5、学习调试程序。 二、实验内容和步骤 本实验要求事先编好解决下面问题的程序,然后上机输入程序并调试运行程序。 1、改错题。给定程序MODI1.C 的功能是:对于如下函数: 用scanf 函数输入x 的值,求y 值。/* MODI1.C */#include void main() { int x, y; /***********found***********/ scanf ("%d", &x);if ( x < 1 )y = x; /***********found***********/else if ( 1 <=x&& x < 10 ) y = 2*x -1 ; else y = 3*x -11; printf("y = %d\n", y ); } 程序中有两处错误,错误都在提示行: /***********found***********/的下面一行。请改正程序中的错误, 使它能得出正确的结果。注意:不要随意改动程序,不得增行或删行,也不得更改程序的结构! 修改程序后,运行程序,输入x 的值(分别为x<1、1≤x<10、x ≥10三种情况,如0.5、8、15),检查输 出的y 值是否正确。 ?? ? ??≥-<≤-<=)10(113) 101(12)1(x x x x x x y

2、从键盘输入某学生的考试成绩,要求输出成绩等级A 、B 、C 、D 、E 。学生的成绩可分成5个等级,90- 100分为A 级,80-89分为B 级,70-79分为C 级,60-69分为D 级,0-59分为E 级。要求在输入负数时, 给出错误提示。 ① 事先编好程序,要求分别用if 语句和switch 语句实现。运行程序,并检查结果是否正确。 ② 再运行一次程序,输入分数为负值(如-70),这显然是输入时出错,不应给出等级。修改程序,使之 能正确处理任何数据。当输入数据大于100或小于0时,通知用户“输入数据错”,程序结束。 3、给一个不多于5位的正整数,要求:①求出它是几位数;②分别打印出每一位数字;③按逆序打印出各位 数字,例如:原数据为321,应输出123。(BX4.6) 分别用1位正整数、2位正整数、3位正整数、4位正整数、5位正整数作为测试数据进行测试。 除此之外,程序还应当对不合法的输入作必要的处理。例如:当输入负数时或输入的数超过5位(如123 456)数时。4、输入3 个整数,要求按由小到大的顺序输出。

八位十进制分频器实验报告

重庆交通大学 信息科学与工程学院 综合性实验报告 姓 名: 赵娅琳 学 号 10950214 班 级: 通信工程专业2010级 2班 实验项目名称: 8位16进制频率及设计 实验项目性质: 设计性 实验所属课程: 数字设计基础 实验室(中心): 现代电子实验中心 指 导 教 师 : 李 艾 星 实验完成时间: 2012 年 6 月 18 日

教师评阅意见: 签名:年月日 实验成绩: 一、课题任务与要求 1、验证8位16进制频率计的程序; 2、根据8位16进制频率计的程序设计8位10进制频率计; 二、设计系统的概述 频率计的基本原理是用一个频率稳定度高的频率源作为基准时钟,对比测量其他信号的频率,通常情况下计算每秒内待测的脉冲个数,此时闸门时间为1秒,闸门时间也可以大于或小于1秒。频率信号易于传输,抗干扰性强,可以获得较好的测量精度。 数字频率计的关键组成部分包括一个测频控制信号发生器、一个计数器和一个锁存器,另外包括脉冲发生器、姨妈驱动电路和显示电路。 工作过程:系统正常工作时,脉冲信号发生器输入1HZ的标准信号,经过测频控制信号发生器的处理,2分频后即可产生一个脉宽为1秒的时钟信号,以此作为计数闸门信号。测量信号时,将被测信号通过计数器作为时钟。当技术闸门信号高平有效时,计数器开始计数,并将计数结果送入锁存器中。设置锁存器的好处是现实的数据稳定,不会由于周期的清零信号而不断闪烁。最后将所存的数值由外部的译码器并在数码管上显示。 三、单元电路的设计与分析(重点描述自己设计部分) 1、八位十进制计数顶层模块设计 (1)、此模块是元件例化语句将各个元件(测频控制模块、十进制计数模块、测频锁存器模块)连接形成一个整体,完成最终频率计所期望的功能。

数控分频器实验报告

《数控分频实验》 姓名:谭国榕班级:12电子卓越班学号:201241301132 一、实验目的 1.熟练编程VHDL语言程序。 2.设计一个数控分频器。 二、实验原理 本次实验我是采用书上的5分频电路进行修改,通过观察其5分频的规律进而修改成任意奇数分频,再在任意奇数分频的基础上修改为任意偶数分频,本次实验我分为了三个部分,前两部分就是前面所说的任意奇数分频和任意偶数分频,在这个基础上,再用奇数输入的最低位为1,偶数最低位为0的原理实现合并。 三、实验步骤 1.任意奇数分频 程序: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; ENTITY DIV1 IS PORT(CLK:IN STD_LOGIC; D:IN INTEGER RANGE 0 TO 255; K1,K2,K_OR:OUT STD_LOGIC ); END; ARCHITECTURE BHV OF DIV1 IS SIGNAL TEMP3,TEMP4:STD_LOGIC_VECTOR(7 DOWNTO 0); SIGNAL M1,M2:STD_LOGIC; --SIGNAL OUT1,OUT2,OUT3:STD_LOGIC; BEGIN PROCESS(CLK,TEMP3) BEGIN IF RISING_EDGE(CLK) THEN IF(TEMP3=D-1) THEN TEMP3<="00000000"; ELSE TEMP3<=TEMP3+1; END IF; IF(TEMP3=D-(D+3)/2) THEN M1<=NOT M1; ELSIF (TEMP3=D-2) THEN M1<=NOT M1; END IF; END IF; END PROCESS; PROCESS(CLK,TEMP4) BEGIN IF FALLING_EDGE(CLK) THEN IF(TEMP4=D-1) THEN TEMP4<="00000000"; ELSE TEMP4<=TEMP4+1; END IF; IF(TEMP4=D-(D+3)/2) THEN M2<=NOT M2; ELSIF (TEMP4=D-2) THEN M2<=NOT M2;

实验一 QUARTUS II入门和分频器设计

实验报告 课程名称EDA技术与VHDL设计 实验项目Quartus II入门 实验仪器计算机、Quartus II 系别信息与通信工程学院 专业电子信息工程 班级/学号电信1201 / 2012010970 学生姓名张宗男 实验日期 成绩 指导教师

实验一 QUARTUS II入门和分频器设计 一、实验目的 1.掌握QUARTUS II工具的基本使用方法; 2.掌握FPGA基本开发流程和DE2开发板的使用方法; 3.学习分频器设计方法。 二、实验内容 1.运用QUARTUS II 开发工具编写简单LED和数码管控制电路并下载到DE2 实验开发板。2.在QUARTUS II 软件中用VHDL语言实现十分频的元器件编译,并用电路进行验证,画出仿真波形。 三、实验环境 1.软件工具:QUARTUS II 软件;开发语言:VHDL; 2.硬件平台:DE2实验开发板。 四、实验过程 1.设计思路 (1)、 18个开关控制18个LED灯,通过低位四个开关的‘1’‘0’控制LED灯上7段灯的显示(2)、 实现10分频IF(count="1001") THEN count<="0000"; clk_temp<=NOT clk_temp; 达到9的时候,把“0000”给到cout,然后clk_temp 信号翻转,从而实现10分频。 2.VHDL源程序 (1)、 LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY e_zhangzongnan IS PORT(SW :IN STD_LOGIC_VECTOR(0 TO 17); HEX0 :OUT STD_LOGIC_VECTOR(0 TO 6);

集成电路设计基础复习

1、解释基本概念:集成电路,集成度,特征尺寸 参考答案: A、集成电路(IC:integrated circuit)是指通过一系列特定的加工工艺,将晶体管、二极管等有源器件和电阻、电容等无源器件,按照一定的电路互连,“集成”在一块半导体晶片(如硅或砷化镓)上,封装在一个外壳内,执行特定电路或系统功能的集成块。 B、集成度是指在每个芯片中包含的元器件的数目。 C、特征尺寸是代表工艺光刻条件所能达到的最小栅长(L)尺寸。 2、写出下列英文缩写的全称:IC,MOS,VLSI,SOC,DRC,ERC,LVS,LPE 参考答案: IC:integrated circuit;MOS:metal oxide semiconductor;VLSI:very large scale integration;SOC:system on chip;DRC:design rule check;ERC:electrical rule check;LVS:layout versus schematic;LPE:layout parameter extraction 3、试述集成电路的几种主要分类方法 参考答案: 集成电路的分类方法大致有五种:器件结构类型、集成规模、使用的基片材料、电路功能以及应用领域。根据器件的结构类型,通常将其分为双极集成电路、MOS集成电路和Bi-MOS 集成电路。按集成规模可分为:小规模集成电路、中规模集成电路、大规模集成电路、超大规模集成电路、特大规模集成电路和巨大规模集成电路。按基片结构形式,可分为单片集成电路和混合集成电路两大类。按电路的功能将其分为数字集成电路、模拟集成电路和数模混合集成电路。按应用领域划分,集成电路又可分为标准通用集成电路和专用集成电路。 4、试述“自顶向下”集成电路设计步骤。 参考答案: “自顶向下”的设计步骤中,设计者首先需要进行行为设计以确定芯片的功能;其次进行结构设计;接着是把各子单元转换成逻辑图或电路图;最后将电路图转换成版图,并经各种验证后以标准版图数据格式输出。 5、比较标准单元法和门阵列法的差异。 参考答案:

程序设计基础实验内容

实验指导 实验一 Visual C++6.0开发环境使用 1.实验目的 (1)熟悉Visual C++6.0集成开发环境。 (2)掌握C语言程序的书写格式和C语言程序的结构。 (3)掌握C语言上机步骤,了解C程序的运行方法。 (4)能够熟练地掌握C语言程序的调试方法和步骤 2. 实验内容 输入如下程序,实现两个数的乘积。 #include (stdio.h); int main() { x=10,y=20 p=prodct(x,t) printf("The product is : ",p) int prodct(int a ,int b ) int c c=a*b return c } (1)在编辑状态下照原样键入上述程序。 (2)编译并运行上述程序,记下所给出的出错信息。 (3)再编译执行纠错后的程序。如还有错误,再编辑改正,直到不出现语法错误为止。3.分析与讨论 (1)记下在调试过程中所发现的错误、系统给出的出错信息和对策。分析讨论成功或失败的原因。 (2)总结C程序的结构和书写规则。 实验二数据类型、运算符和表达式 1.实验目的 (1)理解常用运行符的功能、优先级和结合性。 (2)熟练掌握算术表达式的求值规则。 (3)熟练使用赋值表达式。 (4)理解自加、自减运算符和逗号运算符 (5)掌握关系表达式和逻辑表达式的求值 2.实验内容

(1)整数相除 #include int main() { int a=5,b=7,c=100,d,e,f; d=a/b*c; e=a*c/b; f=c/b*a; printf("d=%d , e=%d ,f=%d\n",d,e,f); return 0; } (2)自加、自减运算 #include int main() { int a=5,b=8; printf("a++=%d\n",a++); printf("a=%d\n",a); printf("++b=%d\n",++b); printf("b=%d\n",b); return 0; } (3)关系运算和逻辑运算 #include int main() { int a=5,b=8,c=8; printf("%d,%d,%d,%d\n",a==b&&a==c,a!=b&&a!=c,a>=b&&a>=c,a<=b&& a<=c); printf("%d,%d\n",a<=b||a>=c,a==b||b==c); printf("%d,%d,%d,%d\n",!(a==b),!(a>=b),!(a>=c),!(a<=b)); return 0; } (1)在编辑状态下输入上述程序。 (2)编译并运行上述程序。 3.分析与讨论 (1)整数相除有什么危险?应如何避免这种危险? (2)分析a++和++a的区别。 (3)条件表达式和逻辑表达式的意义是什么,它们取值如何? (4)如何比较两个浮点数相等?为什么? 实验三格式化输入输出函数的使用 1.实验目的

EDA分频器实验教案

实验三:整数分频器的设计 一实验目的 了解利用类属设计可配置的重用设计技术。 二实验原理 利用类属n 可以改变分频器的分频系数,输出q的频率是输入信号clk频率的1/n。通过给n赋不同的值,就可以得到需要的频率。 三实验器材 EDA实验箱 四实验内容 1.参考教材第5章中5.3.1,完成整数分频器的设计。 2.修改5. 3.1中的分频系数n,观察仿真波形和实验箱输入/输出信号的变化。 3.在试验系统上硬件验证分频器的功能。 在实验三中,建议将实验箱的实验电路结构模式设定为模式7。输入信号clk由键7的输出来模拟,输入信号reset_n由键8模拟,输出信号q接至LED:D14。当然,也可以由实验者设定到其它功能相似的键或者LED。

代码:(参考教材第5章中5.3.1) library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity div is generic(n:integer:=8); port(clk,reset_n:in std_logic; q: out std_logic); end div; architecture behavl_div of div is signal count:integer range n-1 downto 0; begin process(reset_n,clk) begin if reset_n='0' then q<='0'; count<=n-1; elsif(clk'event and clk='1' and clk'last_value='0')then count<=count-1; if count>=(n/2)then q<='0'; else q<='1'; end if; if count<=0 then count<=n-1; end if; end if; end process; end behavl_div; 五实验注意事项 1.编写代码时一定要书写规范 2模式的选择和引脚的配置一定要合理 六实验报告 简述实验过程,将实验项目分析设计,仿真和测试写入实验报告。

分频器的设计

分频器的设计 一、课程设计目的 1.学会使用电路设计与仿真软件工具Hspice,熟练地用网表文件来描述模拟电路,并熟悉应用Hspice内部元件库。通过该实验,掌握Hspice的设计方法,加深对课程知识的感性认识,增强电路设计与综合分析能力。 2.分频器大多选用市售成品,但市场上出售的分频器良莠不齐,质量上乘者多在百元以上,非普通用户所能接受。价格在几十元以下的分频器质量难以保证,实际使用表现平庸。自制分频器可以较少的投入换取较大的收获。 二.内容 分频器-概述 分频器是指使输出信号频率为输入信号频率整数分之一的电子电路。在许多电子设备中如电子钟、频率合成器等,需要各种不同频率的信号协同工作,常用的方法是以稳定度高的晶体振荡器为主振源,通过变换得到所需要的各种频率成分,分频器是一种主要变换手段。早期的分频器多为正弦分频器,随着数字集成电路的发展,脉冲分频器(又称数字分频器)逐渐取代了正弦分频器,即使在输入输出信号均为正弦波时也往往采用模数转换-数字分频-数模转换的方法来实现分频。正弦分频器除在输入信噪比低和频率极高的场合已很少使用。

分频器-作用 分频器是音箱中的“大脑”,对音质的好坏至关重要。功放输出的音乐讯号必须经过分频器中的各滤波元件处理,让各单元特定频率的讯号通过。要科学、合理、严谨地设计好音箱之分频器,才能有效地修饰喇叭单元的不同特性,优化组合,使得各单元扬长避短,淋漓尽致地发挥出各自应有的潜能,使各频段的频响变得平滑、声像相位准确,才能使高、中、低音播放出来的音乐层次分明、合拍,明朗、舒适、宽广、自然的音质效果。 在一个扬声器系统里,人们把箱体、分频电路、扬声器单元称为扬声器系统的三大件,而分频电路对扬声器系统能否高质量地还原电声信号起着极其重要的作用。尤其在中、高频部分,分频电路所起到的作用就更为明显。其作用如下: 合理地分割各单元的工作频段; 合理地进行各单元功率分配; 使各单元之间具有恰当的相位关系以减少各单元在工作中出现的声干涉失真; 利用分频电路的特性以弥补单元在某频段里的声缺陷; 将各频段圆滑平顺地对接起来。 分频器-分类 1)功率分频器:位于功率放大器之后,设置在音箱内,通过LC滤波网络,将功率放大器输出的功率音频信号分为低音,中音和高音,分别送至各自扬声器。连接简单,使用方便,但消耗功率,出现音频谷

计算机程序设计基础实验12个实验

《计算机程序设计基础》实验教学 大纲 课程编号:1303072 实验学时:24课程学分:3.5 课程类型:必修教学对象:全校各非计算机专业先修课程: ㈠实验目的与要求  本实验课程面向文法学院学生,通过本课程的学习与实验,使学生了解程序设计的一些基本概念,掌握计算机程序设计的一般方法,具备使用计算机解决实际问题的初步能力。 在实验教学中提倡“实验前要准备,实验中要认真,实验后要总结”;突出上机实践操作环节,强调在教师指导下的以学生为中心完成每次上机的具体内容和要求;对于普遍问题采用领练、辅导有机

结合的方法;尽量采用 CAI 辅助教学软件。 通过实验教学使学生能够建立计算机程序设计的基本概念;在简单的程序设计过程中掌握Visual Basic可视化设计的步骤,逐步搞清什么是对象、对象的属性以及事件和方法等重要概念。在此基础上,掌握程序设计的3种基本结构。 ㈡实验考核方式与成绩评定方法考核方式: 1.考核学生每次实验完成情况; 2.考核学生的计算机基本操作能力; 3.上机考试 成绩评定:学生应按照每次实验的要求,完成指定的实验任务,并按要求提交实验报告和实验文件,成绩评定由实验指导教师根据学生实验完成情况按照优秀、良好、中等、合格、不合格五个等级给出,实验成绩占20%计入学生课程成绩。  本学期需上交实验报告为三次,实验报告实验要求用本校实验报告册书写。要求填写学号、班级、姓名、实验指导老师、实验日期,报告内容包括实验名称、实验目的、实验内容、详细操作步骤及结果,最好写出自己的上机体会和总结。

㈢ 实验项目设置 根据教学内容和实验教学目的,共设4个实验项目: 项目一,认识Visual Basic,包括2个实验; 项目二,程序设计基础,,包括6个实验; 项目三,常用控件及界面设计,包括2个实验;项目四,文件管理,包括1个实验; 总的实验数为12个实验。 实验项目名称实验内容与学时分配总学时 数 认识Visual Basic 1.Visual Basic 程序设计环 境 2.窗体和最基 本控件 4 程序设计基础1.数据类型及函数 2.顺序程序设计 3.分支结构程序设计4.循环结构程序设计5.数组 6.过程 12 常用控件及界面设计1.常用标准控件 2.界面设计 4 文件管理1.文件管理2

实验报告1 简单分频器

课程名称:FPGA指导老师:_竺老师_______成绩:__________________ 实验名称:简单分频器的设计实验类型:_______同组学生姓名:__俞杰草______ 一、实验目的和要求(必填)二、实验内容和原理(必填) 三、主要仪器设备(必填)四、操作方法和实验步骤 五、实验数据记录和处理六、实验结果与分析(必填) 七、讨论、心得 一.实验目的 a)熟悉Xilinx ISE软件,学会设计,仿真,综合和下载。 b)熟悉实验板电路设定频率的方法。 二.实验内容 根据实验板上晶振的输入频率50MHz,如果直接用这么高的时钟频率来驱动LED的闪烁,人眼将无法分辨。因此本实验着重介绍如何通过分频计数器的方式将50MHz的输入频率降低为人眼可分辨的频率(10Hz以下),并在实验板的LED2~LED5上显示出来。 三.实验记录 【实验现象】 当将rst_n信号对应的开关拨下,led0熄灭,其他所有led亮。 当将rst_n信号对应的开关往上拨,有7盏led亮,1盏led灭,且灭的led从led0向led7,再跳回led0不断循环往复的移动。 【主要程序段分析】 reg[22:0]cnt; always@(posedge clk) if(rst_n)cnt<=23'd0; else cnt<=cnt+1'b1;//带复位键的位宽为24位的分频计数器,以降低闪烁频率reg[7:0]led; always@(posedge clk) if(rst_n) led<=8'b00000001;//按键复位 else if((cnt==23'h7fffff)&&(led==8'b10000000)) led<=8'b00000001;//循环一周后从D5开始下一周的循环 else if(cnt==23'h7fffff) led<=led<<1;//左移一位,右端补零 assign led_d2=~led[2]; assign led_d4=~led[4];

C语言程序设计基础实验报告8

实验8 指针 一、实验目的 1、通过实验进一步掌握指针的概念,会定义和使用指针变量; 2、能正确使用数组的指针和指向数组的指针变量; 3、能正确使用字符串的指针和指向字符串的指针变量; 二、实验内容和步骤 1、改错 (1)指出下面程序错误的原因. main( ) { int x=10,y=5,*px,*py; px=py; px=&x; py=&y; printf("*px=%d,*py=%d,*px,*py); } #include void main() { int x=10,y=5,*px,*py; px=&x; py=&y; printf("px=%d,py=%d",*px,*py); } (2)下面的程序试图有如下运行结果: which style you want to : Capital ( c ) or uncapital ( a ):c ↙ COMPUTER Which sytle you want to : Capital ( c ) or uncapital ( a ) : u↙ computer 请调试下面的程序,使其有如上执行结果. #include main () { char s*;char c; printf("which style you want to :ln"); printf("capital ( c ) or uncapital(a):"); c=getchar(); …… if(c='c')strcpy(s,"COMPUTER"); else strcpy(s,"computer"); put(s); } #include #include #include void main() { char *s;char c; printf("which style you want to :\n"); printf("capital(c) or uncapital(a):"); c=getchar();

译码器和分频器实验报告

VHDL硬件描述语言实 验报告 实验一:十六进制7段数码显示译码器 实验二:十分频器设计 姓名:xxx 学号:xxx 班级:xxxx 专业:集成电路工程类

实验一:十六进制7段数码显示译码器一.实验目的 主要是初步学会硬件描述语言训练,即VHDL程序设计。通过利用该语言来实践电路的设计,掌握设计文件的编译,设计电路的波形仿真分析。 二、实验器材 QuartusII软件 三、实验原理 7段数码管是纯组合电路,通常的小规模专用IC,如74或4000系列的器件只能做十进制BCD译码,然而数字系统中的处理和运算都是二进制,所以输出表达都是十六进制的,为了满足十六进制数的译码显示,最方便的方法就是利用译码程序在FPGA/CPLD中来实现。本实验中的7段译码管输出信号LED7S的7位分别接数码管的7个段,高位在左,低位在右。

四、实验内容 完成一个十六进制7段数码显示译码器的程序设计,包括编辑、编译、综合、适配、仿真,引脚及硬件测试,并且将信号引出,在数码管上显示出来。 五、实验步骤: 1.打开Quartus Ⅱ,选菜单File→New Project Wizard, 在弹出的New Project Wizard对话框中选择存入D盘中的hr文件夹中,工程命名为hr,然后点击下一步, 直到后面没有了之后,点击FINISH。之后按File→New

中VHDL File。然后在这个文件中输入程序,程序输入 完成后,先保存在hr文件夹中,然后检测,找到错误 改正。 2.程序文件存盘。选择菜单File→Save As, 将此原理图 文件存于刚建立的目录D:\hr中。 3.绘制一位十进制计数器原理图。选择File→New中 Vector Waveform File然后在波形图的左边空白地 方双击左键两次,对话框中选择Node Finder在选择 List,之后导入到右边,点击OK。之后绘制好电路图,保存在同一个文件里面。 4.仿真测试。全程编译后,启动仿真器,点击processing|start simulation直至出现 simulation was successful,仿真结束。观察仿真结果。 时序仿真图:

相关文档
相关文档 最新文档