西安电子科技大学可编程逻辑器件研究生实验报告1-5
西安电子科技大学可编程逻辑器件研究生实验报告1-5

西安电子科技大学可编程逻辑器件原理、应用与实验课程实验报告实验名称实验一 ---- 实验五电子工程学院学院 162 班Array姓名陈圆圆学号 1602121053同作者实验日期 2017 年 4 月 8 日(2) 要求:要考虑借位、进位。
在软件环境下,编写源文件,并用器件实现二、实验所用仪器(或实验环境)操作软件diamond 2.0以及LATTICE XP2系列实验板。
三、实验基本原理及步骤(或方案设计及理论计算)1、建立新工程jishuqi,选择器件,选择器件芯片family中选择Laattic XP2,Device选择LFXP2-5E,Part Names选择LFXP2-5E-6TN144C。
2、建立verilog源文件jishuqi。
3、综合,编译。
4、进行管脚分配,在此实验中,采用按键19开关为加、减法的选择,拨码开关55为是否有进位及借位,LED46为进位的显示,LED39、40、43、44分别为输出结果的显示。
5、程序的烧写。
四、在Diamond主界面中,进入Tools->Programmer,点击OK键,然后点击图标,在State栏出现PASS,即说明烧写成功。
四、实验数据记录(或仿真及软件设计)module jishuqi (cbin,sum,cout,sel); //cbin表示进位或借位,sel表示选择加减法input cbin;//定义进位或借位input sel;output sum,cout;5.程序的烧写。
在Diamond主界面中,进入Tools->Programmer,点击OK键,然后点击图标,在State栏出现PASS,即说明烧写成功。
三、实验数据记录(或仿真及软件设计)module seqdet(x,z,clk,rst);input x,clk,rst;output z;wire z;reg [2:0] state;parameter IDLE=3'b000,s0=3'b001,s1=3'b010,s2=3'b011,s3=3'b100;assign z=(state==s3&&x==1)?1:0;always @(posedge clk)beginif(!rst)state<=IDLE;else4. 综合在主界面Process窗口中双击Translate Design,对所编辑的代码进行综合。
可编程逻辑器件实验报告完整版

2012 秋《可编程逻辑器件》 课程设计报告报告题目:数字钟实验报告组长 组员姓名学号邮箱成绩.1 设计内容概述 1.1 功能概述:一个具有计秒、计分、复位的数字钟,数字钟从 0 开始计时,计 满 60 秒后自动清零,分钟加 1,最大计时显示 59 分 59 秒。
用 A7 按键 作为系统时钟复位,复位后全部显示 00 00,重新开始计时。
1.2 输入输出接口:NET "clk" LOC = "B8" ; NET "dula[0]" LOC = "L14" ; NET "dula[1]" LOC = "H12" ; NET "dula[2]" LOC = "N14" ; NET "dula[3]" LOC = "N11" ; NET "dula[4]" LOC = "P12" ; NET "dula[5]" LOC = "L13" ;NET "dula[6]" LOC = "M12" ; NET "dula[7]" LOC = "N13" ; NET "rst" LOC = "A7" ;NET "wela[0]" LOC = "F12" ; NET "wela[1]" LOC = "J12" ; NET "wela[2]" LOC = "M13" ; NET "wela[3]" LOC = "K14" ;2 系统框图及模块划分 采用自顶向下分层设计思想的大概设计示意图如下:计时器秒计数分计数动态显示60 进制'..3 组员任务划分 1:负责本课题的开展,组织,协调及任务分配与安排问题,查找课题相关资料,完成主程序,及接口控制文件的编写。
可编程逻辑器件实验报告

一、实验目的通过本次实验,使学生掌握可编程逻辑器件(FPGA)的基本原理和操作方法,了解其结构特点和应用领域。
通过实验,培养学生动手实践能力和创新意识,提高学生运用FPGA进行数字系统设计和验证的能力。
二、实验原理可编程逻辑器件(FPGA)是一种高度集成的数字电路,具有可编程性、可扩展性和可重用性。
FPGA主要由可编程逻辑单元、可编程互连资源、时钟管理单元、I/O单元等组成。
通过编程,用户可以根据自己的需求定制FPGA内部逻辑结构,实现各种数字电路功能。
FPGA编程通常采用硬件描述语言(HDL),如VHDL或Verilog。
HDL描述了电路的功能和结构,通过编译和综合,生成FPGA内部的逻辑资源分配和互连关系。
实验中,我们将使用Quartus II软件进行FPGA编程和仿真。
三、实验内容1. FPGA基础操作(1)安装Quartus II软件,熟悉软件界面和基本操作。
(2)搭建FPGA实验平台,包括FPGA开发板、电源、连接线等。
(3)将FPGA开发板连接到计算机,进行硬件初始化和配置。
2. FPGA编程(1)使用VHDL或Verilog语言编写实验程序,实现简单的数字电路功能,如全加器、编码器、译码器等。
(2)将编写好的程序导入Quartus II软件,进行编译和综合。
(3)观察编译报告,检查程序语法错误和资源占用情况。
(4)进行仿真,验证程序功能是否正确。
3. FPGA下载与验证(1)将编译后的程序下载到FPGA芯片中。
(2)使用示波器或逻辑分析仪等工具,观察FPGA输出的波形,验证程序功能。
(3)根据实验要求,修改程序参数,优化电路性能。
四、实验步骤1. 搭建实验平台(1)将FPGA开发板连接到计算机,确保所有连接线正确。
(2)检查电源电压,确保FPGA芯片供电正常。
2. 编写程序(1)打开Quartus II软件,创建新工程。
(2)选择合适的HDL语言,编写实验程序。
(3)保存程序,并添加到工程中。
可编程逻辑器件实验报告

可编程逻辑器件作业北京工业大学电子信息工程实验班王智一09022128一、实验内容1.3×8译码器(1)设计输入①建立新的工程,建立新的VHDL FILE,输入程序代码(注意:工程文件夹、工程名称以及顶层实体名推荐使用相同的名称):程序代码:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity demo isPort ( A : in STD_LOGIC_VECTOR (2 downto 0);EN: in STD_LOGIC;Y : out STD_LOGIC_VECTOR (7 downto 0));end demo;architecture DEC of demo issignal indata:STD_LOGIC_VECTOR (2 downto 0);beginprocess(A,EN)beginindata(0)<=A(0);indata(1)<=A(1);indata(2)<=A(2);if(EN='1')thencase indata iswhen "000" =>Y<="00000001";when "001" =>Y<="00000010";when "010" =>Y<="00000100";when "011" =>Y<="00001000";when "100" =>Y<="00010000";when "101" =>Y<="00100000";when "110" =>Y<="01000000";when "111" =>Y<="10000000";when others=>Y<="11111111";end case;end if;end process;end DEC;(2)编译实验仿真波形:图1 3×8译码器输入波形图2 3×8译码器输出波形图3 3×8译码器管脚配置截图图4 3×8译码器Xilinx仿真波形2.数码管显示(1)设计输入程序代码:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY demo ISPORT(di: in STD_LOGIC_VECTOR(3 downto 0);a: out STD_LOGIC;b: out STD_LOGIC;c: out STD_LOGIC;d: out STD_LOGIC;e: out STD_LOGIC;f: out STD_LOGIC;g: out STD_LOGIC);END demo;ARCHITECTURE a of demo isbeginprocess(di)type data_out is array(0 to 6) of std_logic;variable outp: data_out;begincase di iswhen "0000"=>outp:="1111110";when "0001"=>outp:="0110000";when "0010"=>outp:="1101101";when "0011"=>outp:="1111001";when "0100"=>outp:="0110011";when "0101"=>outp:="1011011";when "0110"=>outp:="1011111";when "0111"=>outp:="1110000";when "1000"=>outp:="1111111";when "1001"=>outp:="1111011";when "1010"=>outp:="1110111";when "1011"=>outp:="0011111";when "1100"=>outp:="1001110";when "1101"=>outp:="0111101";when "1110"=>outp:="1001111";when "1111"=>outp:="1000111";when others=>null;end case;a<=outp(0);b<=outp(1);c<=outp(2);d<=outp(3);e<=outp(4);f<=outp(5);g<=outp(6);end process;end a;(2)编译实验仿真波形:图5 数码管输出波形3.BPSK的解调(1)BPSK的解调原理:调相信号是通过载波的相位变化来传输消息的,它具有恒定的包络,而且频率上也无法分离,所以不能采用包络解调,只能采用相干解调。
可编程逻辑器件设计实验报告

可编程逻辑器件设计实验报告可编程逻辑器件设计实验报告实验背景近年来,随着计算机技术的飞速发展,可编程逻辑器件逐渐成为了计算机领域中不可或缺的一部分。
可编程逻辑器件是一种能够通过编程实现特定功能的电路器件,具有广泛的应用范围,如数字系统控制、数据处理、自动化控制等领域。
在本次实验中,我们将通过设计一个可编程逻辑器件,来加深对于逻辑电路和计算机原理的理解,并能够对数字系统进行控制和设计。
实验原理可编程逻辑器件设计的原理基本上是对于基本逻辑门的运算进行模拟,然后将模拟结果存储在器件中,再根据需要进行处理和操作。
本实验中我们采用了FPGA芯片,它具有可编程的逻辑门、可编程的触发器和可编程的连接关系等,能够在一个芯片中实现很多模块。
我们利用Verilog HDL语言,将逻辑模块设计成RTL级别的元件,并组成所需的逻辑电路,最后通过实验板实现电路的实际运行。
实验流程本次实验分为两部分:第一部分为单周期CPU实验,第二部分为五级流水线CPU实验。
1. 单周期CPU实验单周期CPU是指执行一个指令需要一个时钟周期的CPU。
本实验建立的CPU支持R-type、lw和sw三种指令。
具体的流程如下:① 取指令(instruction fetch,IF)从存储器中(ROM)读取指令并存入指令寄存器中。
② 指令译码(instruction decode,ID)将指令寄存器中存放的指令解析出来,识别出操作码和操作寄存器,并将后者中写入数据的数据读出。
③ 执行(execution,EX)根据操作码,将指令的两个操作数进行运算,并将运算结果写入数据写寄存器中。
④ 访存(memory access,MEM)从存储单元中读取或写入数据,具体包括load word(lw )指令和store word(sw)指令。
⑤ 写回(write back,WB)将执行结果写入指令寄存器。
完成后,程序会返回至IF状态,将下一条指令取入指令寄存器,可以进行下一轮操作。
可编程逻辑器件应用技术实验报告册

可编程逻辑器件应用技术实验报告册主编魏欣前言一、可编程逻辑器件应用技术实验任务EDA技术是现代电子工程领域的一门新技术,它提供了基于计算机和信息技术的电路系统设计方法。
EDA技术的发展和推广应用极大地推动了电子工业的发展。
随着EDA技术的发展,硬件电子电路的设计几乎全部可以依靠计算机来完成,这样就大大缩短了硬件电子电路设计的周期,从而使制造商可以快速开发出品种多、批量小的产品,以满足市场的需求。
EDA教学和产业界的技术推广是当今世界的一个技术热点,EDA技术是现代电子工业中不可缺少的一项技术。
二、实验内容编排本实验教材的内容编排如下:任务一是详细介绍了CPLD实验板配套的使用软件的使用方法。
任务二至实验七是基本技能单项实验。
任务八是综合实验,必须由学生们利用开发板自行设计软件和硬件实现。
附录一是芯片引脚对照表,方便在下载时查找对应的芯片引脚。
附录二是CPLD实验板的原理图,方便在实验是查找。
需要说明的是,所有的实验都没有给出参考程序,要求同学们自主设计程序,因此即使是基础实验,也可以归为设计性实验,这样可以很好的锻炼同学们的设计能力。
设计工作任务书简述Quartus Ⅱ的设计流程?设计工作任务书设计工作任务书设计工作任务书设计工作任务书Mealy型状态机框图用VHDL语言分别设计摩尔和米勒型状态机,并编译、综合、适配、仿真、实验板上的硬件测试写出经调试通过的试验程序,软件编译及仿真分析、硬件测试和实验过程、程序分析报告、仿真波形图和结果分析。
设计工作任务书40设计工作任务书42设计工作任务书44设计步骤:__________________________________________________________ __________________________________________________________ __________________________________________________________ __________________________________________________________ __________________________________________________________ __________________________________________________________ __________________________________________________________ __________________________________________________________ __________________________________________________________ __________________________________________________________ __________________________________________________________ __________________________________________________________ __________________________________________________________ __________________________________________________________ __________________________________________________________ __________________________________________________________ __________________________________________________________ __________________________________________________________ __________________________________________________________性能测试结果:__________________________________________________________ __________________________________________________________ __________________________________________________________ __________________________________________________________ __________________________________________________________ __________________________________________________________ __________________________________________________________ __________________________________________________________ __________________________________________________________ __________________________________________________________ __________________________________________________________ 结论与体会:__________________________________________________________ __________________________________________________________ __________________________________________________________ __________________________________________________________ __________________________________________________________ __________________________________________________________ __________________________________________________________ 46附录二: CPLD实验板原理图。
西安邮电大学可编程逻辑实验报告

可编程逻辑实验院系名称 :电子工程学院学生姓名 : 专业名称 : 电子科学与技术班 级 :学号 :实验名称:门电路的设计实验一:用原理图输入法设计门电路实验目的:1.掌握PLD芯片的基本使用方法,熟悉EDA软件MAX+plus的操作。
1.学会利用软件仿真和实现用硬件对数字电路的逻辑功能进行验证和分析。
器材:PC实验内容:实现1、F=/AB 2、F=AB+CD实验结果:1.F=/AB原理图:仿真结果:2.F=AB+CD原理图:仿真结果:实验二:用原理图输入法设计门电路实验目的:1.进一步掌握PLD芯片的基本使用方法,熟悉EDA软件MAX+plus的操作。
2.学会利用软件仿真和实现用硬件对数字电路的逻辑功能进行验证和分析。
3.学习初步的VHDL程序设计方法。
器材:PC实验内容:实现3、F=A⊕B4、F=/abc+/d实验结果:3、F=A⊕B源程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity xor2 isport(a,b:in std_logic;F:out std_logic);end;architecture main of xor2 isbeginF<=a xor b;end;仿真结果:4、F=/abc+/d源程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity zhonghe isport(a,b,c,d:in std_logic;F:out std_logic);end;architecture main of zhonghe issignal g,h,y,m,n:std_logic;beginm<=not a;g<=m and b;h<=g and c;n<=not d;y<=h or n;F<=y;end;仿真结果:实验小结:本实验为第一次DEA实验,不免有些兴奋和好奇,加之老师讲的比较好,所以基本上没有遇到什么问题。
可编程逻辑器件实验报告

可编程逻辑器件实验报告
一.实验目的
1.掌握数字时钟的设计方法
2.掌握CPLD设计流程,设计60进制计数器,进行仿真同时观察控制效果二.方案设计与工作原理
1.方案设计
共用时钟和复位脉冲,DIVDER进行分频(此处仿真采用2分频,实际实验采用7分频),o_comm进行数码管显示控制,counter控制进制数(本实验采用60进制,各位十进制,十位6进制),encoder进行代码转换,将十进制数转换成相应控制数码管的16进制数,scaner控制4为数码管的输出顺序。
如图所示:
2.部分代码调试
Counter:
Divder:
Encoder:
Scanner:
三.系统实现与结果仿真
四.调试结果(照片)
五.感想与建议
1.可编程逻辑器件实验课的学习,锻炼了我的动手能力,将以前学习的数字电子技术理论知识与实践相结合,加深了我对数电知识的理解。
从编程到仿真到烧写开发板,直至完成每一次的实验,我体会到一种设计逻辑器件的乐趣。
同时,在与小组成员的交流中,合作能力也得到了培养。
2.我希望以后老师上课的讲解可以放慢一点,这样可以听的更清晰,也更易于理解。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
西安电子科技大学
可编程逻辑器件原理、应用与实验课程实验报告实验名称实验一 ---- 实验五
电子工程学院学院 162班Array姓名陈圆圆学号1602121053
同作者
实验日期 2017 年 4 月8日
2、建立verilog源文件jishuqi。
3、综合,编译。
4、进行管脚分配,在此实验中,采用按键19开关为加、减法的选择,拨码开关55为是否有进位及借位,LED46为进位的显示,LED39、40、43、44分别为输出结果的显示。
5、程序的烧写。
四、在Diamond主界面中,进入Tools->Programmer,点击OK键,然后点击图标
,在State栏出现PASS,即说明烧写成功。
四、实验数据记录(或仿真及软件设计)
module jishuqi (cbin,sum,cout,sel); //cbin表示进位或借位,sel表示选择加减法
input cbin;//定义进位或借位
input sel;
output sum,cout;
reg [3:0] sum;//寄存器长度设置
reg cout;
parameter a = 4'b1010, b = 4'b0110;//计算参量的设置
always@(sel)
begin
if(sel) //sel为1进行加法运算,否则进行减法运算
{cout,sum}=a + b + cbin;
else
{cout,sum}=a - b - cbin;//减法器
end
endmodule
五、实验结果分析及回答问题(或测试环境及测试结果)
加、减法的验证:
当不按按键19时,二极管37、44亮,39、40、43灭,即显示数字为01110验证为加法运算,结果正确。
当按下按键19时,二极管37、39、43、44亮,40灭,
5.程序的烧写。
在Diamond主界面中,进入Tools->Programmer,点击OK键,然后点击图标,在State栏出现PASS,即说明烧写成功。
三、实验数据记录(或仿真及软件设计)
module seqdet(x,z,clk,rst);
input x,clk,rst;
output z;
wire z;
reg [2:0] state;
parameter IDLE=3'b000,
s0=3'b001,
s1=3'b010,
s2=3'b011,
s3=3'b100;
assign z=(state==s3&&x==1)?1:0;
always @(posedge clk)
begin
if(!rst)
state<=IDLE;
else
case(state)
IDLE: begin
if(x==0)
state<=IDLE;
else
state<=s0;
end
s0: begin
if(x==0)
界面Process框中,对Map Design,Place&Route Design,Export Files选中所有的选项,然后右键选中JEDEC File,单击其下拉菜单中的Rerun All;
管脚分配:clr:54 clk:53 input[1]:52 input[0]:50
output[3]:46 output[1]:45 output[1]:44 output[0]:43 6. 烧写程序
在Diamond主界面中,进入Tools->Programmer,点击OK键,然后点击图标,在State栏出现PASS,即说明烧写成功。
四、实验数据记录(或仿真及软件设计)
module shiyan5(clk,clr,s,cout);
input clk,clr;
input[1:0] s;
output[3:0] cout;
reg[3:0] cout;
always @(posedge clk)
begin
if(!clr) cout<=0;
else
case(s)
2'b00: if(cout>=4'b1000) cout<=0;
else cout<=cout+1;
2'b01: if(cout>=4'b1010) cout<=0;
else cout<=cout+1;
2'b10: if(cout>=4'b1100) cout<=0;
else cout<=cout+1;
2'b11: if(cout>=4'b1110) cout<=0;
else cout<=cout+1;
default: cout<=4'bxxxx;
endcase
end
endmodule
五、实验结果分析
同时按下52和50键,表示s=00,即进行模9运算,刚开始时,output[3]、output[2]、output[1]、output[0]为0000,按下、松开clk键多次,output[3]、output[2]output[1]output[0]0001,0010,0011,0100,0101,0110,0111,1000,000
clk:21 res:19 s_w:53
lucheng [0]:46 lucheng [1]:45 lucheng [2]:44 lucheng [3]:43
money [0]:40 money [1]:39 money [2]:38 money [3]:37
6. 烧写程序
在Diamond主界面中,进入Tools->Programmer,点击OK键,然后点击图标,在State栏出现PASS,即说明烧写成功。
四、数据记录
module chuzuche(clk,res,s_w,lucheng,money);
input clk,res,s_w; //s_w按下后才开始计费
output[3:0] lucheng; //
output[3:0] money;
reg[3:0] lucheng;
reg[3:0] money;
reg[28:0] count1;//计数器1
initial
begin
count1 = 0;
lucheng=4'b0000;
money=4'b0010;
end
always@(posedge clk)
begin
if(!s_w)//开关按下
begin
count1 = count1 + 1'b1;
if(count1 == 28'd5*******)//里程计数
begin
lucheng = lucheng +4'b0001;
if(lucheng > 4'b00011)//超出起步里数。