设计报告
课程名称: 基FPGA现代数字系统设计
设计名称: 基原理图数字跑表设计
姓 名:
学 号
班 级:
指导教师:
XX学信息工程学院
实验目
1 设计数字跑表具复位暂停秒表等功
二 实验原理
1完成具数显输出数字跑表计数器设计原理图图示
数字跑表计数器原理图
务分析
输入端口:
1)复位信号CLRCLR1输出全部置0CLR0系统正常工作
2)暂停信号PAUSEPAUSE1暂停计数PAUSE0正常计数 3)系统时钟CLKCLK50MHz
输出端口:
数码驱动DATA1位宽14位中DATA1[7:0]数 码显示值DATA1[14:8]数码控制端口
屏蔽未端口ctr位宽2未两数码显示关闭
(1) 跑表计时范围001s~59min5999s计时精度10ms
(2) 具异步复位清零启动计时暂停功
(3) 输入时钟频率100Hz
(4) 求数字跑表输出够直接驱动阴极7段数码显示
顶设计应该分模块:
分频载板50MHz时钟分频周期001秒时钟提供百分计数
计数1百分计数输入周期001秒时钟计数满100进位注意位十位生成
计数260进制计数器输入百分位者秒位进位计数满60高位进位注意位十位生成
数码显示控制驱动数码数显示控制端口
三 实验步骤
1 数码显示驱动模块设计
(1)建立工程:file>New Project注意器件EDA工具正确选择
(2)建立新Verilog HDL模块编辑窗口选择资源类型Verilog Module输入合法文件名文编辑窗口输入代码
(3)执行综合综合电路进行功时序仿真
2计数器模块设计
设计步骤数码设计完成模块设计输入综合功仿真
3数码计数器组合系统
Verilog HDL数码计数器组合模块完成综合功仿真分析波形修正设计
4电路进行综合编译锁定引脚载板子进行实际仿真验证
四 实验结果分析
1Design窗口中选择Design Utilities→Create Schematic Symbol创建跑表模块
2 时序图
激励文件代码
`timescale 1ns 1ps
module TSET
reg CLK
reg CLR
reg PAUSE
wire [130] DATA1
paobiao uut (CLK(CLK) CLR(CLR) PAUSE(PAUSE) DATA1(DATA1))
initial begin
CLK 0CLR 0PAUSE 0
#10 CLR1
#10 CLR0
forever begin
#10 CLKCLK
end
end
Endmodule
解释:10时间clk110时间clk010时间clk值进行次翻转生成时钟周期20时间单位
3 锁定引脚
# PlanAhead Generated physical constraints
NET CLK LOC V10
NET CLR LOC D14
NET PAUSE LOC C14
NET DATA1[0] LOC R7
NET DATA1[1] LOC V7
NET DATA1[2] LOC U7
NET DATA1[3] LOC V6
NET DATA1[4] LOC T6
NET DATA1[5] LOC P6
NET DATA1[6] LOC N5
NET DATA1[7] LOC P7
NET DATA1[13] LOC N8
NET DATA1[12] LOC M8
NET DATA1[11] LOC T8
NET DATA1[10] LOC R8
NET DATA1[9] LOC V9
NET DATA1[8] LOC T9
开关实现数字清操作
开关二实现数字暂停操作
五 体会
初步掌握Verilog HDL种目前应广泛硬件描述语言编写方法联机载硬件验证整流程圆满完成设计务 程序设计次实验重点通老师课讲容实际做进位程序分频程序基掌握 写完程序发现调程序模块学点拨改成程序模块生成具体模块整系统正常工作 程序设计遇数码法显示瓶颈老师指导终解决问题
次课程设计程中提升学力动手力笔收获
代码:
`timescale 1ns 1ps
module paobiao(CLKCLRPAUSEDATA1)
input CLKCLR
input PAUSE
output[130] DATA1
reg[30] MSHMSLSHSLMHMLdig
reg cn1cn2
reg [100] div_count1
reg [180] div_count
reg timer_clk
always @(posedge CLK or posedge CLR)
if(CLR) div_count < 19'h0
else
if(div_count 19'h7a11f)
div_count < 19'h0
else div_count < div_count+1'b1
always @ (posedge CLK or posedge CLR)
if(CLR) timer_clk < 1'b0
else
if(div_count 0)
timer_clk < 1'b1
else
timer_clk < 1'b0
always @(posedge timer_clk or posedge CLR)
begin
if(CLR) begin
{MSHMSL}<8'h00
cn1<0
end
else if(PAUSE)
begin
if(MSL9) begin
MSL<0
if(MSH9)
begin MSH<0 cn1<1 end
else MSH
else begin
MSL
end
end
always @(posedge cn1 or posedge CLR)
begin
if(CLR) begin
{SHSL}<8'h00
cn2<0
end
else if(SL9)
begin
SL<0
if(SH5)
begin SH<0 cn2<1 end
else SH
else
begin SL
always @(posedge cn2 or posedge CLR)
begin
if(CLR)
begin {MHML}<8'h00 end
else if(ML9) begin
ML<0
if(MH5) MH<0
else MH
else ML
function[70] Xrom
input [30] sum
case(sum)
4'b0000 Xrom 7'b1111110
4'b0001 Xrom 7'b0110000
4'b0010 Xrom 7'b1101101
4'b0011 Xrom 7'b1111001
4'b0100 Xrom 7'b0110011
4'b0101 Xrom 7'b1011011
4'b0110 Xrom 7'b1011111
4'b0111 Xrom 7'b1110000
4'b1000 Xrom 7'b1111111
4'b1001 Xrom 7'b1111011
4'b1010 Xrom 7'b1110111
4'b1011 Xrom 7'b0011111
4'b1100 Xrom 7'b1001110
4'b1101 Xrom 7'b0111101
4'b1110 Xrom 7'b1001111
4'b1111 Xrom 7'b1000111
default Xrom 7'b1111110
endcase
endfunction
always @ (posedge CLK or posedge CLR)
if(CLR)
begin
div_count1 < 11'h0
dig < 3'b000 end
else begin
div_count1 < div_count1 + 1
if(div_count1 0)
if(dig3'b101)
dig < 3'b000
else
dig < dig + 1'b1
else dig < dig
end
reg[130] DATA1
always @(posedge CLK or posedge CLR)
if(CLR)
DATA1 < 14'b0
else
case(dig)
3'b000DATA1<{~6'b111110Xrom(MSL)}
3'b001DATA1<{~6'b111101Xrom(MSH)}
3'b010DATA1<{~6'b111011Xrom(SL)}
3'b011DATA1<{~6'b110111Xrom(SH)}
3'b100DATA1<{~6'b101111Xrom(ML)}
3'b101DATA1<{~6'b011111Xrom(MH)}
defaultDATA1<14'h3fff
endcase
endmodule
西南科技学
文档香网(httpswwwxiangdangnet)户传
《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档