XX学院
电子技术课程设计
题 目 _基FPGA计数器设计___
_________________________
学生姓名 _ XXX_________________
专业班级 电子信息工程班__ __
学 号 _ __________
院 (系) 电气信息工程学院___ ____
指导教师 _ ____________
完成时间 2013年X月X日____ ___
郑州轻工业学院
课 程 设 计 务 书
题目 基FPGA计数器程序设设计_______________
专业班级 电子信息工程 学号 姓名 _____
容基求参考资料等:
容:
求学生硬件描述语言(Verilog 者VHDL)设计基FPGA计数器源程序实现功:显示109999四位计数器四位七段数码译码显示理解数码译码原理时需做分频器理解时钟分频原理意义
基求:
1学会quartusII掌握FPGA 程序设计方法
2掌握硬件描述语言语法
3程序设计完成求quartusII中实现功仿真
参考资料:
1褚振勇 FPGA设计应(第三版)[M]西安电子科技学出版社20124
2陈怀琛MATLAB电子信息课程中应[M]北京:电子工业出版社20081
完 成 期 限: 2013621—2013625
指导教师签名: ________________
课程负责签名: ___________________
2013年 6月 18日
目 录
基FPGA计数器程序设设计 i
摘 i
1 绪 1
11 FPGA简介 1
12 硬件描述语言VHDL特点 1
13 软件开发工具Quartus II 简介 2
2 整体设计方案 3
3 模块设计功具体分析 4
31 分频器设计 4
311 设计原理 4
312 源程序仿真波形 4
313 RTL电路图 6
32 计数器设计 6
321 计数器应 6
322 计数器源程序仿真 7
33 锁存器设计 9
331 锁存器应 9
332 16位锁存器源程序仿真波形 9
34 显示部分设计 10
341 七段数码显示原理 10
342 七段数码源程序仿真 11
4 计数器顶层设计 13
411 基VHDL顶设计方法 13
432顶层设计源文件仿真波形 13
总 结 16
参考文献 17
附 录 18
基FPGA计数器程序设设计
摘
文介绍种基FPGA顶层底层设计数字频率计文包括该频率计设计基础实现方法译码显示等容 描述设计台工作原理软硬件实现设计分频器四位计数器16位锁存器数码显示电路计数器设计采VHDL硬件描述语言编程极减少硬件资源占仿真分析结果表明该数字频率计性优异软件设计语言灵活硬件简单速度快
关键词 FPGA 计数器 VHDL
1 绪
11 FPGA简介
FPGA(Field-Progrmable Gate Array)现场编程门阵列PALGALCPLD等编程器件基础进步发展产物作专集成电路(ASIC)领域中种半定制电路出现解决定制电路足克服原编程器件门电路数限缺点
1985 年Xilinx 公司推出第片中规模现场编程逻辑器件(FP2GA) FPGA 已历十年历十年程中编程器件惊发展初1200 利门天25 万利门规模增200 倍 FPGA 供应商Xilinx 枝独秀天20 厂商分庭抗争FPGA 单基SRAM结构天种结构类型出现充分体现编程器件巨市场吸引力 FPGA 仅解决电子系统型化低功耗高性等问题开发周期短开发软件投入少芯片价格
断降低目前电子产品生命周期相缩短相功产品派生设计增等特点促FPGA 越越取代ASIC 市场特国众科研单位说批量品种产品需求FPGA 成首选
12 硬件描述语言VHDL特点
功强设计灵活VHDL具功强语言结构简洁明确源代码描述复杂逻辑控制具层次设计描述功层层细化直接生成电路级描述VHDL支持步电路异步电路机电路设计硬件描述语言拟VHDL支持种设计方法支持底设计支持顶设计支持模块化设计支持层次化设计支持广泛易修改VHDL已成IEEE标准规范硬件描述语言目前数EDA工具支持VHDLVHDL进步推广广泛应奠定基础硬件电路设计程中设计文件VHDL编写源代码VHDL易读结构化易修改设计强系统硬件描述力VHDL具层次设计描述功描述系统级电路描述门级电路描述采行描述寄存器传输描述结构描述采三者混合混合级描述外VHDL支持惯性延迟传输延迟准确建立硬件电路模型VHDL支持预定义定义数类型硬件描述带较度设计员够方便创建高层次系统模型独立器件设计工艺关设计员VHDL进行设计时需首先考虑选择完成设计器件集中精力进行设计优化设计描述完成种器件结构实现功强移植力VHDL种标准化硬件描述语言设计描述工具支持设计描述移植成
13 软件开发工具Quartus II 简介
AlteraQuartus II 设计软件提供完整台设计环境轻易满足种特定设计需单芯片编程系统 (SOPC) 设计综合性环境SOPC开发基设计工具Altera DSP开发包进行系统模型设计提供集成综合环境Quartus II设计工具完全支持VHDLVerilog设计流程部嵌VHDLVerilog逻辑综合器
Quartus II 包括模块化编译器编译器包括功模块分析综合器(Analysis&Synthesis)适配器(Fitter)装配器(Assembler)时序分析器(Timing Analyzer)设计辅助模块(Design Assistant)等通选择 Start Compilation (Processing 菜单)运行编译器模块 单独运行模块通选择 Start(Processing 菜单)然 Start 子菜单中模块选择相应指令外通选择 Compiler Tool (Tools 菜单) Compiler Tool窗口中运行该模块启动编译器模块 Compiler Tool 窗口中开该模块设置文件报告文件开相关窗口
Quartus II支持层次化设计新编辑输入环境中输入设计方式完成模块进行调试解决原理图HDL混合输入设计问题设计输入Quartus II编译器出设计输入错误报告Quartus II带RTL Viewer观察综合RTL图Quartus II动设计处理环节设计流程包括设计输入编辑设计分析综合适配编译文件汇编(装配)时序参数提取编程载步骤
2 整体设计方案
设计基FPGA计数器求显示109999四位计数器4模10十进制计数器级联成显示频率范围19999HZ频率计功分割成四模块:分频计计数器输出锁存器译码显示电路模块均VHDL语言描述quartus2进行仿真设计采数控分频计信号实现分频输出信号作计数器输入锁存器外部脉控制控制显示部分显示周期系统正常工作时输入信号标提供频率分频器分频产生计数信号送入计数器模块计数模块输入脉数进行计数数结束计数结果送入锁存器中保证系统稳定显示数计数结果够显示七段数码显示
clk11
计数器
分频计
锁存器
显示电路
ena0
rest0
clk2
图1 设计方案
3 模块设计功具体分析
31 分频器设计
311 设计原理
分频器指输出信号频率输入信号频率整数分电子电路许电子设备中电子钟频率合成器等需种频率信号协工作常方法稳定度高晶体振荡器振源通变换需种频率成分分频器种变换手段早期分频器正弦分频器着数字集成电路发展脉分频器(称数字分频器)逐渐取代正弦分频器输入输出信号均正弦波时采模数转换-数字分频-数模转换方法实现分频正弦分频器输入信噪低频率极高场合已少
数控分频器功输入端定数时输入时钟信号分频N分频器分频出时钟周期原时钟周期N倍频率变原1N8位计数器果输入数DD然启动计数器工作D倍时钟周期计数器溢出时输出full变高电full敏感信号fout进行取反操作N2D计数次重新计数反复进行直输入赋予新值数控分频数器装载计数初始值时会频率溢出信号输出数控分频器利计数值行预置加法计数器设计完成
312 源程序仿真波形
LIBRARY IEEE
USE IEEESTD_LOGIC_1164ALL
USE IEEESTD_LOGIC_UNSIGNEDALL
ENTITY DVF IS
PORT ( CLK IN STD_LOGIC
DD IN STD_LOGIC_VECTOR(7 DOWNTO 0)
FOUT OUT STD_LOGIC )
END
ARCHITECTURE one OF DVF IS
SIGNAL FULL STD_LOGIC
BEGIN
P_REG PROCESS(CLK)
VARIABLE CNT8 STD_LOGIC_VECTOR(7 DOWNTO 0)
BEGIN
IF CLK'EVENT AND CLK '1' THEN
IF CNT8 11111111 THEN
CNT8 DD CNT8计数计满时输入数D步预置计数器CNT8
FULL < '1' 时溢出标志信号FULL输出高电
ELSE CNT8 CNT8 + 1 否继续作加1计数
FULL < '0' 输出溢出标志信号FULL低电
END IF
END IF
END PROCESS P_REG
P_DIV PROCESS(FULL)
VARIABLE CNT2 STD_LOGIC
BEGIN
IF FULL'EVENT AND FULL '1' THEN
CNT2 NOT CNT2 果溢出标志信号FULL高电D触发器输出取反
IF CNT2 '1' THEN FOUT < '1' ELSE FOUT < '0'
END IF
END IF
END PROCESS P_DIV
END
图2 分频器仿真波形
313 RTL电路图
图3 分频器RTL电路图
32 计数器设计
321 计数器应
计数种简单基运算计数器实现种运算逻辑电路计数器数字系统中脉数进行计数实现测量计数控制功时兼分频功计数器基计数单元控制门组成计数单元系列具存储信息功类触发器构成触发器RS触发器T触发器D触发器JK触发器等计数器数字系统中应广泛电子计算机控制器中指令址进行计数便序取出条指令运算器中作法法运算时记加法减法次数数字仪器中脉计数等等计数器显示产品工作状态般说表示产品已完成少份折页配页工作指标计数器位数常见3位4位显然3位数计数器显示9994位数显示9999数字电子技术中应时序逻辑电路计数器仅时钟脉计数分频定时产生节拍脉脉序列进行数字运算等法显示计算结果般通外接LCDLED屏显示
322 计数器源程序仿真
(1) 十进制计数器
加数合法设计范围09输入加数9时候统变换成0实验采带异步复位步时钟十进制加法计数器种计数器许实际处果rst1时钟清零果1clk信号允许计数器数计数器9计数器加1否清零第二if语句功计数器cqi达9时产生进位溢出信号
library ieee
use ieeestd_logic_1164all
use ieeestd_logic_unsignedall
entity cnt10 is
port (rstclkenain std_logic
cout out std_logic
outy out std_logic_vector(3 downto 0))
end cnt10
architecture behv of cnt10 is
begin
process (rstenaclk)
variable cqi std_logic_vector(3 downto 0)
begin
if rst'1' then cqi (others >'0')
elsif clk'event and clk'1' then
if ena '1' then
if cqi < 9 then cqicqi+1cout<'0'
elsif cqi9 then
cqi (others >'0')
cout<'1'
end if
elsif ena'0' then cqi(others >'0')
end if
end if
outy
end behv
图4 十进制计数器仿真波形
(2)四位计数器
面含计数异步复位功4位计数器 rst异步清信号高电效
library ieee
use ieeestd_logic_1164all
entity cnt10_4 is
port(clkkrstenain std_logic
dout std_logic_vector(15 downto 0))
end entity
architecture one of cnt10_4 is
component cnt10
port (rstclkenain std_logic
cout out std_logic
outy out std_logic_vector(3 downto 0))
end component
signal estd_logic_vector(3 downto 0)
begin
u1cnt10 port map(clk>clkkrst>rstena>enacout>e(0)outy>d(3 downto 0))
u2cnt10 port map(clk>e(0)rst>rstena>enacout>e(1)outy>d(7 downto 4))
u3cnt10 port map(clk>e(1)rst>rstena>enacout>e(2)outy>d(11 downto 8))
u4cnt10 port map(clk>e(2)rst>rstena>enacout>e(3)outy>d(15 downto 12))
end architecture one
33 锁存器设计
331 锁存器应
谓锁存器输出端状态会输入端状态变化变化仅锁存信号时输入状态保存输出直锁存信号时改变典型锁存器逻辑电路D 触发器电路LED数码显示方面维持数显示持续快速刷新尤四段八位数码等选通显示设备类够接受刷新频率概三十毫秒刷新次占处理器处理时间消耗处理器处理力浪费处理器功耗锁存器缓解处理器方面压力处理器数传输锁存器锁存锁存器输出引脚便会直保持数状态直次锁存新数止样数码显示容变前处理器处理时间IO引脚便释放出处理器处理时间仅限显示容发生变化时候整显示时间非常少部分处理器处理完更时间执行务锁存器LED数码显示方面作节省宝贵MCU时间
332 16位锁存器源程序仿真波形
library ieee
use ieeestd_logic_1164all
use ieeestd_logic_unsignedall
entity reg16b is
port (load in std_logic
din in std_logic_vector(15 downto 0)
dout out std_logic_vector(15 downto 0))
end reg16b
architecture art of reg16b is
begin
process(loaddin)
begin
if load'event and load'1'then
dout
end process
end architecture art
图5 锁存器波形
34 显示部分设计
341 七段数码显示原理
机交互式单片机系统说仅需响应户输入时需测控信息输出显示显示信息提供实时数图形结果便掌握系统状态进行分析处理目前常LED数码显示成低廉简便显示数字特定字符数码数码种半导体发光器件数码分七段数码八段数码区八段数码七段数码发光二极单元基单元发光二极数码通脚输入相
图6 七段数码原理
电流发亮显示出数字够显示 时间日期温度等数字表示参数器件电器特家电领域应极广泛显示屏空调热水器冰箱等等绝数热水器数码家电液晶屏荧光屏
7段阳极LED数码7条形发光二极数点位构成引脚配置图示部结构图示图中出中7发光二极构成字形8显示数字发光二极构成数点种数码时称8段LED数码显示器
LED数码引脚图资料LED数码实际七发光组成8字形构成加段分字母abcdefg表示数码特定段加电压特定段会发亮形成眼睛 28数码字样:显示2字应a亮b亮g亮e亮d亮f亮c亮
表1 七段LED段码表
字符
阴极
阳极
字符
阴极
阳极
0
3FH
C0H
A
77H
88H
1
06H
F9H
B
7CH
83H
2
5BH
A4H
C
39H
C6H
3
4FH
B0H
D
5EH
A1H
4
66H
99H
E
79H
86H
5
6DH
92H
F
71H
8EH
6
7DH
82H
H
76H
09H
7
07H
F8H
P
73H
8CH
8
7FH
80H
U
3EH
C1H
9
6FH
90H
灭
00H
FFH
实际应中单LED数码情况较少常需时LED数码显示1位数字符串4LED数码列情况例4数码显示999~9999间数字时显示4字符构成字符串见LED数码扩展显示信息量
342 七段数码源程序仿真
library ieee
use ieeestd_logic_1164all
use ieeestd_logic_unsignedall
entity led_controller is
port(din std_logic_vector(3 downto 0)
aout std_logic_vector(6 downto 0))
end led_controller
architecture one of led_controller is
begin
process(d)
begin
case d is
when 0000> a< 0111111when 0001> a< 0000110
when 0010> a< 1011011when 0011> a< 1001111
when 0100> a< 1100110when 0101> a< 1101101
when 0110> a< 1111101when 0111> a< 0000111
when 1000> a< 1111111when 1001> a< 1101111
when 1010> a< 1110111when 1011> a< 1111100
when 1100> a< 0111001when 1101> a< 1011110
when 1110> a< 1111001when 1111> a< 1110001
when others > null
end case
end process
end
图7 七段数码仿真波形
4 计数器顶层设计
411 基VHDL顶设计方法
谓顶设计方法采完全独立芯片厂商产品结构描述语功级设计产品进行定义结合功仿真技术确保设计正确性定义完成利逻辑综合技术功描述转换成某具体结构芯片网表文件输出厂商布局布线器进行布局布线布局布线结果反标回仿真器进行包括功时序验证保证布局布线带门延时线延时会影响设计性
顶设计方法优越性显易见首先功描述完全独立芯片结构设计初阶段设计师受芯片结构约束集中精力进行产品设计避免传统设计方法带重新设计风险缩短设计周期次设计利保证目前电子产品正模块化发展谓模块化设计成果进行修改组合利产生全新派生设计顶设计方法功描述芯片结构关种IP方式进行存档便重新利 第三设计规模提高简单语言描述完成复杂功需手工绘图第四芯片选择更加灵活设计师较短时间采种结构芯片完成功描述设计规模速度芯片价格系统性求等方面进行衡选择佳结果
412顶层设计源文件仿真波形
library ieee
use ieeestd_logic_1164all
use ieeestd_logic_unsignedall
use ieeestd_logic_arith
use ieeestd_logic_signed
entity ccnntt is
port(ena0rst0in std_logic
clk1clk2in std_logic
ledoutout std_logic_vector(27 downto 0)
din in std_logic_vector(7 downto 0)
end entity
architecture one of ccnntt is
component DVF
port ( clkin std_logic
DD in std_logic_vector(7 downto 0)
fout out std_logic
component cnt10_4
port(clkkrstenain std_logic
dout std_logic_vector(15 downto 0))
end component
component reg16b
port(load in std_logic
din in std_logic_vector(15 downto 0)
dout out std_logic_vector(15 downto 0))
end component
component led_controller
port(din std_logic_vector(3 downto 0)
aout std_logic_vector(6 downto 0))
end component
signal ystd_logic
signal bhstd_logic_vector(15 downto 0)
signal ledsstd_logic_vector(27 downto 0)
begin
u1 DVF port map(clk>clk1DD>dinfout>y)
u2 cnt10_4 port map(clkk>yrst>rst0 ena>ena0 d>b)
u3 reg16b port map(load>clk2din>b(15 downto 0)dout>h(15 downto 0))
u4led_controller port map(d>h(3 downto 0)a>leds(6 downto 0))
u5 led_controller port map(d>h(7 downto 4)a>leds(13 downto 7))
u6 led_controller port map(d>h(11 downto 8)a>leds(20 downto 14))
u7 led_controller port map(d>h(15 downto 12)a>leds(27 downto 21))
ledout
图8 总程序仿真波形
总 结
期周课程设计结束啦整计数器设计实现程中学会少新知识时学语言进步深刻理解现里谈心体会
作电子信息类专业学生FPGA重课程事电子设计力工具通该课程学电子设计动化更进步理解通数字滤波器设计解计数器基结构基特性更加牢固掌握相关理知识时提高动手实践力次课程设计重部分quartus2运学程序基操作般设计编译仿真够熟练掌握
次课程设计终利完成设计中遇专业知识问题学帮助努力终迎刃解时学实知识
参考文献
[1]褚振勇 FPGA设计应(第三版)[M]西安电子科技学出版社20124
[2]陈怀琛MATLAB电子信息课程中应[M]北京:电子工业出版社20081
[3]王新安FPGACPLD新实技术指南(第版)[M]北京:清华学出版社2005
[4]林明权VHDL数字控制系统设计范例(第版)[M]北京:电子工业出版社2003年
[5]黄继业EDA技术实教程(第二版)[M]北京:科学出版社2005年
[6]杨恒新顶法设计交通灯控制系统[J]电气电子教学学报2006年第四期
[7]素琼EDA技术数字电路中探讨[J]实验科学技术2005年第期
[8]陈赜PLDFPGAASIC设计实践教程[M].北京:科学出版社2005
[9]王金明.数字系统设计Verilog HDL [M].北京:电子工业出版社2009
附 录
文档香网(httpswwwxiangdangnet)户传
《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档