EDA测试序列检测器.docx

上传人:b****1 文档编号:13595074 上传时间:2023-06-15 格式:DOCX 页数:16 大小:234.26KB
下载 相关 举报
EDA测试序列检测器.docx_第1页
第1页 / 共16页
EDA测试序列检测器.docx_第2页
第2页 / 共16页
EDA测试序列检测器.docx_第3页
第3页 / 共16页
EDA测试序列检测器.docx_第4页
第4页 / 共16页
EDA测试序列检测器.docx_第5页
第5页 / 共16页
EDA测试序列检测器.docx_第6页
第6页 / 共16页
EDA测试序列检测器.docx_第7页
第7页 / 共16页
EDA测试序列检测器.docx_第8页
第8页 / 共16页
EDA测试序列检测器.docx_第9页
第9页 / 共16页
EDA测试序列检测器.docx_第10页
第10页 / 共16页
EDA测试序列检测器.docx_第11页
第11页 / 共16页
EDA测试序列检测器.docx_第12页
第12页 / 共16页
EDA测试序列检测器.docx_第13页
第13页 / 共16页
EDA测试序列检测器.docx_第14页
第14页 / 共16页
EDA测试序列检测器.docx_第15页
第15页 / 共16页
EDA测试序列检测器.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

EDA测试序列检测器.docx

《EDA测试序列检测器.docx》由会员分享,可在线阅读,更多相关《EDA测试序列检测器.docx(16页珍藏版)》请在冰点文库上搜索。

EDA测试序列检测器.docx

EDA测试序列检测器

EDA实验报告

实验目的:

设计一个含数码管显示的七位二进制序列发生器。

实验内容:

1.原理说明:

多位数码显示电路由显示字符的段选线和选通数码管的位选线控制。

各位数码管共用8位段选线的电路结构使得同一时刻选通的各位数码管显示相同字符。

通过采用动态扫描显示方式,利用人眼视觉暂留效应及数码管余辉特性,可以“同时”显示出多位数码管的字符。

2.工程结构框架:

移位寄存器(序列发生器)

7SEG译码器

控制abcdefg七段

实验流程:

1设计移位寄存器

2设计7SEG译码器

3完成顶层电路图连接,构成完整序列发生器

4完成仿真,下载测试

实验具体步骤:

1、设计移位寄存器(序列发生器)

序列发生器是产生一组0、1二进制码按特定顺序排列的串行信号的仪器。

利用移位寄存器设计一个七位二进制序列发生器。

创建工程文件:

单击界面左上角的file,执行file--->NewProjectWizard命令,打开工程导向,在第一页中分别输入新建工程所在路径,工程名称和顶层实体名称(同名)

器件选择:

如上图,在Family中选择MAXII,如需修改可以选择菜单Assignments->Device命令,弹出Device设置对话框修改Devicefamily和Availabledevices选项。

创建设计文件:

利用lpm定制移位寄存器,在对话框左侧列表中选择InstalledPlug-Ins—>Storage

—>lpm_shiftreg项

在参数设置中,设置移位方向为左移,数据并入并出端和串入串出端,异步清零。

定制完成后生成的VHDL程序:

--megafunctionwizard:

%LPM_SHIFTREG%

--GENERATION:

STANDARD

--VERSION:

WM1.0

--MODULE:

lpm_shiftreg

--============================================================

--FileName:

xulie.vhd

--MegafunctionName(s):

--lpm_shiftreg

--

--SimulationLibraryFiles(s):

--lpm

--============================================================

--************************************************************

--THISISAWIZARD-GENERATEDFILE.DONOTEDITTHISFILE!

--

--9.0Build18404/29/2009SP1SJWebEdition

--************************************************************

 

--Copyright(C)1991-2009AlteraCorporation

--YouruseofAlteraCorporation'sdesigntools,logicfunctions

--andothersoftwareandtools,anditsAMPPpartnerlogic

--functions,andanyoutputfilesfromanyoftheforegoing

--(includingdeviceprogrammingorsimulationfiles),andany

--associateddocumentationorinformationareexpresslysubject

--tothetermsandconditionsoftheAlteraProgramLicense

--SubscriptionAgreement,AlteraMegaCoreFunctionLicense

--Agreement,orotherapplicablelicenseagreement,including,

--withoutlimitation,thatyouruseisforthesolepurposeof

--programminglogicdevicesmanufacturedbyAlteraandsoldby

--Alteraoritsauthorizeddistributors.Pleaserefertothe

--applicableagreementforfurtherdetails.

 

LIBRARYieee;

USEieee.std_logic_1164.all;

LIBRARYlpm;

USElpm.all;

ENTITYxulieIS

PORT

aclr:

INSTD_LOGIC;

clock:

INSTD_LOGIC;

data:

INSTD_LOGIC_VECTOR(6DOWNTO0);

load:

INSTD_LOGIC;

shiftin:

INSTD_LOGIC;

q:

OUTSTD_LOGIC_VECTOR(6DOWNTO0);

shiftout:

OUTSTD_LOGIC

);

ENDxulie;

 

ARCHITECTURESYNOFxulieIS

SIGNALsub_wire0:

STD_LOGIC_VECTOR(6DOWNTO0);

SIGNALsub_wire1:

STD_LOGIC;

 

COMPONENTlpm_shiftreg

GENERIC(

lpm_direction:

STRING;

lpm_type:

STRING;

lpm_width:

NATURAL

);

PORT(

load:

INSTD_LOGIC;

aclr:

INSTD_LOGIC;

clock:

INSTD_LOGIC;

q:

OUTSTD_LOGIC_VECTOR(6DOWNTO0);

data:

INSTD_LOGIC_VECTOR(6DOWNTO0);

shiftout:

OUTSTD_LOGIC;

shiftin:

INSTD_LOGIC

);

ENDCOMPONENT;

BEGIN

q<=sub_wire0(6DOWNTO0);

shiftout<=sub_wire1;

lpm_shiftreg_component:

lpm_shiftreg

GENERICMAP(

lpm_direction=>"RIGHT",

lpm_type=>"LPM_SHIFTREG",

lpm_width=>7

PORTMAP(

load=>load,

aclr=>aclr,

clock=>clock,

data=>data,

shiftin=>shiftin,

q=>sub_wire0,

shiftout=>sub_wire1

);

 

ENDSYN;

--============================================================

--CNXfileretrievalinfo

--============================================================

--Retrievalinfo:

PRIVATE:

ACLRNUMERIC"1"

--Retrievalinfo:

PRIVATE:

ALOADNUMERIC"0"

--Retrievalinfo:

PRIVATE:

ASETNUMERIC"0"

--Retrievalinfo:

PRIVATE:

ASET_ALL1NUMERIC"1"

--Retrievalinfo:

PRIVATE:

CLK_ENNUMERIC"0"

--Retrievalinfo:

PRIVATE:

INTENDED_DEVICE_FAMILYSTRING"FLEX10K"

--Retrievalinfo:

PRIVATE:

LeftShiftNUMERIC"0"

--Retrievalinfo:

PRIVATE:

ParallelDataInputNUMERIC"1"

--Retrievalinfo:

PRIVATE:

Q_OUTNUMERIC"1"

--Retrievalinfo:

PRIVATE:

SCLRNUMERIC"0"

--Retrievalinfo:

PRIVATE:

SLOADNUMERIC"1"

--Retrievalinfo:

PRIVATE:

SSETNUMERIC"0"

--Retrievalinfo:

PRIVATE:

SSET_ALL1NUMERIC"1"

--Retrievalinfo:

PRIVATE:

SYNTH_WRAPPER_GEN_POSTFIXSTRING"0"

--Retrievalinfo:

PRIVATE:

SerialShiftInputNUMERIC"1"

--Retrievalinfo:

PRIVATE:

SerialShiftOutputNUMERIC"1"

--Retrievalinfo:

PRIVATE:

nBitNUMERIC"7"

--Retrievalinfo:

CONSTANT:

LPM_DIRECTIONSTRING"RIGHT"

--Retrievalinfo:

CONSTANT:

LPM_TYPESTRING"LPM_SHIFTREG"

--Retrievalinfo:

CONSTANT:

LPM_WIDTHNUMERIC"7"

--Retrievalinfo:

USED_PORT:

aclr0000INPUTNODEFVALaclr

--Retrievalinfo:

USED_PORT:

clock0000INPUTNODEFVALclock

--Retrievalinfo:

USED_PORT:

data0070INPUTNODEFVALdata[6..0]

--Retrievalinfo:

USED_PORT:

load0000INPUTNODEFVALload

--Retrievalinfo:

USED_PORT:

q0070OUTPUTNODEFVALq[6..0]

--Retrievalinfo:

USED_PORT:

shiftin0000INPUTNODEFVALshiftin

--Retrievalinfo:

USED_PORT:

shiftout0000OUTPUTNODEFVALshiftout

--Retrievalinfo:

CONNECT:

@clock0000clock0000

--Retrievalinfo:

CONNECT:

q0070@q0070

--Retrievalinfo:

CONNECT:

@shiftin0000shiftin0000

--Retrievalinfo:

CONNECT:

shiftout0000@shiftout0000

--Retrievalinfo:

CONNECT:

@load0000load0000

--Retrievalinfo:

CONNECT:

@aclr0000aclr0000

--Retrievalinfo:

CONNECT:

@data0070data0070

--Retrievalinfo:

LIBRARY:

lpmlpm.lpm_components.all

--Retrievalinfo:

GEN_FILE:

TYPE_NORMALxulie.vhdTRUE

--Retrievalinfo:

GEN_FILE:

TYPE_NORMALxulie.incFALSE

--Retrievalinfo:

GEN_FILE:

TYPE_NORMALxulie.cmpTRUE

--Retrievalinfo:

GEN_FILE:

TYPE_NORMALxulie.bsfTRUE

--Retrievalinfo:

GEN_FILE:

TYPE_NORMALxulie_inst.vhdFALSE

--Retrievalinfo:

LIB_FILE:

lpm

2、设计7SEG译码器

7seg译码器VHDL程序

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entityseg_7is

port(

scan_clk,cnt_aclr:

instd_logic;

z0,z1,z2,z3,z4,z5,z6:

instd_logic;

seg7:

outstd_logic_vector(6downto0);

wei:

outstd_logic_vector(6downto0));

endseg_7;

architecturertlofseg_7is

signalseg_wire:

std_logic;

signalwei_wire:

std_logic_vector(6downto0);

typestis(k_0,k_1,k_2,k_3,k_4,k_5,k_6);

signalst_nxt:

st;

begin

scan_st:

process(scan_clk,cnt_aclr,st_nxt)

begin

ifcnt_aclr='1'then

st_nxt<=k_0;

elsif(scan_clk'eventandscan_clk='1')then

casest_nxtis

whenk_0=>st_nxt<=k_1;

whenk_1=>st_nxt<=k_2;

whenk_2=>st_nxt<=k_3;

whenk_3=>st_nxt<=k_4;

whenk_4=>st_nxt<=k_5;

whenk_5=>st_nxt<=k_6;

whenk_6=>st_nxt<=k_0;

endcase;

endif;

endprocess;

scan_o:

process(st_nxt,z0,z1,z2,z3,z4,z5,z6)

begin

casest_nxtis

whenk_0=>

seg_wire<=z0;

wei_wire<="0000001";

whenk_1=>

seg_wire<=z1;

wei_wire<="0000010";

whenk_2=>

seg_wire<=z2;

wei_wire<="0000100";

whenk_3=>

seg_wire<=z3;

wei_wire<="0001000";

whenk_4=>

seg_wire<=z4;

wei_wire<="0010000";

whenk_5=>

seg_wire<=z5;

wei_wire<="0100000";

whenk_6=>

seg_wire<=z6;

wei_wire<="1000000";

endcase;

endprocess;

seg7<="1111110"whenseg_wire='0'else

"0110000"whenseg_wire='1';

wei<=wei_wire;

endrtl;、

 

3、完成顶层电路图连接

创建子模块的符号文件:

在7SEG译码器VHDL程序文件中选择菜单File—>Create/update—>CreateSymbolFileforCurrentFile命令

并连接完成顶层电路图:

各模块功能说明:

设定发生序列,发生序列设为1010101;

利用LPM定制的移位寄存器,完成序列发生功能,利用shiftout端发生内定序列1010101。

当移位寄存器并行输出端全为零时,重新载入序列1010101

7段译码器,完成数码管显示功能。

4.功能仿真:

在simulatorsettings中选择功能仿真

功能仿真波形图:

放大版:

如上所示,scan_clk为七段译码器的时钟信号,在时钟上升沿时改变选通数码管的位选线,seg7为该数码管的位选线,因scan_clk时钟信号频率较高,利用人眼视觉暂留效应及数码管余辉特性,可以“同时”显示出多位数码管的字符。

缩小版:

如上图所示,clock为移位寄存器的数据串出端,在时钟上升沿改变向外输出,发射序列为1010101。

5.管脚分配及下载

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高中教育 > 高中教育

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2