FPGA课程设计基于RAM的十口8位计数器


    

    FPGA课程设计报告




    题 目: 基RAM十口8位计数器





    院 系: 通信信息工程学院
    专业班级: 电科班
    学生姓名:
    导师姓名:
    起止时间: 2012910 2012921




    年 月 日




    FPGA课程设计报告提纲
    1. 务
    10×8双口RAM完成108位计数器计数器初值分1~10时钟频率1MHz计数器计数频率1Hz
    FPGA开发板键作计数器计数值输出选择控制数码 (led)作选择计数器计数值输出
    2. 目
    采RAM实现计数器FPGA功验证
    3. 环境 (软件硬件环境设备等)
    前仿 modelsim 61f
    仿  Quartus II 101
    4. FPGA课程设计详细容
    41 技术规范
    功:
    1. 先复位键选定RAM址中读出预置8位初值存入计数模块
    2 开始键开始计数暂停键暂停计数时存入RAM中选定存储单元
    3 双端口RAM10×8RAM址切换键序切换1~10址端口
    4系统工作流程:
    切换端口 读出数 开始计数 暂停计数 存入数

    计数流程

    5.切换端口 读出数 七段显示译码器译码 输出数码显示
    读取结果输出流程

    6. 分频:1Hz秒计时频率进行秒计时


    42 设计方案
    信号定义:
    分频模块

    Clk_50MHz
    clk_1Hz

    reset clk_1MHz



    分频:1Hz秒计时频率进行秒计时
    分频:时钟信号clk_50MHz
    分频信号 clk_1Hz
    分频信号 clk_1MHz

    计数模块
    RAM读出初值dout

    clk
    clk_1hz

    dout [70] din[70]

    start


    start reset
    切换端口 读出数 开始计数 暂停计数 存入数

    计数:开始计数 start
    计数器复位 reset
    计数输出 din[70]
    计数置数 add


    七段显示译码器


    数码
    dout


    显示模块



    wr
    [70]din
    clk_50MHz
    10×8RAM计数器
    dout[70]
    [30]wr_address
    rd
    [30]rd_adddress
    reseteetet
    start
    add

    RAM:10×8RAM存储阵列10字子8位
    输入端 输入址 wr_address [30]
    输入数 din[70]
    升效写入信号 wr


    输出端 输出址rd_address[30]
    输出数 dout[70]
    升效读信号 rd
    端口
    IO

    rd
    I
    读高电效系统工作din数写入ram存储单元中
    wr
    O
    写高电效ram存储单元中数读出dout
    Wr_address[30]
    I
    写址
    din[70]
    I
    数输入口部接口
    dout[70]
    O
    数输出部数传送
    reset
    I
    复位端时钟降效
    add
    I
    计数器置数端
    start
    I
    开始暂停键高电开始低电暂停
    Rd_address[30]

    I
    读址
    rd_clk
    I
    读时钟降触发
    wr_clk
    I
    写时钟升触发

    址划分:
    ain[30]
    Ram存储单元
    0001
    0000_0001
    0010
    0000_0010
    0011
    0000_0011
    0100
    0000_0100
    0101
    0000_0101
    0110
    0000_0110
    0111
    0000_0111
    1000
    0000_1000
    1001
    0000_1001
    1010
    0000_1010

    En


    数码(led)显示模块



    start

    RAM输入输出

    1~10


    clk_1hz



    clk


    计数模块





    置数

    控制

    分频模块



    控制模块:开始暂停返回初值计数器显示切换





    43 功验证方案
    (1)验证象目
    验证方案描述双端口RAM计数器验证文中验证指软件工具功进行验证
    双端口RAM计数器功指标详细描述请参见双端口RAM计数器技术规范doc
    文描述验证程中侧重RAM数读取进行验证指标硬件验证测试程中完成
    验证程中验证容:
    (2)验证环境工具
    根情况验证程环境工具进行:
    a)windows环境ModelSim仿真工具
    b)windows环境QuartusII工具
    进行验证应建立仿真激励模块
    (3)预确认
    a系统技术参数
    分析系统参数包括:引脚数目引脚工作电压电源电压系统工作频率
    b系统模块数目模块实现功知道模块工作正常
    c总模块验证总系统否正常工作
    ( 4)仿真确认:
    a目
    初步确认系统否完成预期设计功
    先分析芯片模块连接关系图
    时钟分频模块
    计数模块实现计数暂停RAM间数存取
    clk(50M)


    en



    clk_1Hz


    显示模块
    led显示
    clk (50M)


    址控制
    10×8RAM
    en

    b逐完成模块验证
    ①分频模块:系统提供频率50MHz计数时需秒样计数需50MHz分频1Hz该程序编写激励输出输出频率想1Hz信号进行较验证


    ②计数模块:编写完成通查仿真图形确认计数范围位宽等功正确

    ③RAM存取模块:需仿真中编写测试激励RAM进行存取验证仿真图形中确认RAM存取功正确性


    ④显示模块:计数结果通七段显示译码器显示数码观察数码数字变化规律验证显示模块否正确

    c验证空标志产生逻辑:
    先复位信号置0(效)定时间系统否产生空标志
    d验证正常情况信号:
    系统运行时复位信号1(复位效)根输入信号出输出信号想信号进行较
    44 电路设计源代码功仿真激励源代码功仿真结果报告
    分频器模块:
    module FPQ (clk_50MHzclk_1MHzresetclk_1Hz)
    input clk_50MHzreset
    output clk_1MHzclk_1Hz
    reg clk_1Hz0
    reg clk_1MH
    z0
    reg [310] cnt132'd0
    reg [310] cnt232'd0
    always@(posedge clk_50MHz or negedge reset)
    begin
    if(reset)
    clk_1Hz<32'd0
    else
    begin
    if(cnt132'd100)
    begin
    cnt1<32'd0clk_1Hz<~clk_1Hz
    end
    else
    cnt1 end
    end
    always@(posedge clk_50MHz or negedge reset)
    begin
    if(reset)
    clk_1MHz<32'd0
    else
    begin
    if(cnt232'd255)
    begin
    cnt2<32'd0
    clk_1MHz<~clk_1MHz
    end
    else
    cnt2 end
    end
    endmodule
    分频器模块激励:
    module FPQ_test
    reg clk_50MHzreset
    wire clk_1MHzwire clk_1Hz
    always # 2 clk_50MHz~clk_50MHz
    FPQ fpq(reset(reset)clk_50MHz(clk_50MHz)clk_1MHz(clk_1MHz)clk_1Hz(clk_1Hz))
    initial
    begin
    reset<0
    clk_50MHz<0
    #100 reset<1
    end
    endmodule

    计数器模块:
    module JSQ(startdataclk_1Hzaddc_out)
    input clk_1Hzadd
    input start
    input [70]data
    output c_out
    reg [70] c_out
    always@(posedge clk_1Hz or negedge add )
    begin
    if(add)
    begin
    c_out end
    else
    begin
    if(start)
    begin
    c_out if(c_out8'd255)
    begin
    c_out<0
    end
    else
    c_out end
    else
    c_out end
    end
    endmodule
    计数器激励:
    module JSQ_test
    reg startadd
    reg clk_1Hz
    reg [70]data
    wire [70] c_out
    always #1 clk_1Hz~clk_1Hz
    JSQ jsq(start(start)add(add)clk_1Hz(clk_1Hz)data(data)c_out(c_out))
    initial
    begin
    clk_1Hz0
    add0
    start0
    data8'd1
    #15 add1
    #15 start1
    #600 start0
    end
    endmodule

    数码显示模块:
    module SMG (clk_1MHzdatadata_gdata_sdata_b)
    input[70] data
    input clk_1MHz
    output data_b
    output data_s
    output data_g
    reg[60]data_b
    reg[60]data_s
    reg[60]data_g
    reg [70]mid_b
    reg [70]mid_s
    reg [70]mid_g
    always@(posedge clk_1MHz)
    begin
    mid_b mid_s mid_g end
    always@(mid_b)
    begin
    case(mid_b)
    7'd0data_b<7'hC0
    7'd1data_b<7'hF9
    7'd2data_b<7'hA4
    7'd3data_b<7'hB0
    7'd4data_b<7'h99
    7'd5data_b<7'h92
    7'd6data_b<7'h82
    7'd7data_b<7'hf8
    7'd8data_b<7'h80
    7'd9data_b<7'h90
    defaultdata_b<7'hC0
    endcase
    end
    always@(mid_s)
    begin
    case(mid_s)
    7'd0data_s<7'hC0
    7'd1data_s<7'hF9
    7'd2data_s<7'hA4
    7'd3data_s<7'hB0
    7'd4data_s<7'h99
    7'd5data_s<7'h92
    7'd6data_s<7'h82
    7'd7data_s<7'hf8
    7'd8data_s<7'h80
    7'd9data_s<7'h90
    defaultdata_s<7'hC0
    endcase
    end
    always@(mid_g)
    begin
    case(mid_g)
    7'd0data_g<7'hC0
    7'd1data_g<7'hF9
    7'd2data_g<7'hA4
    7'd3data_g<7'hB0
    7'd4data_g<7'h99
    7'd5data_g<7'h92
    7'd6data_g<7'h82
    7'd7data_g<7'hf8
    7'd8data_g<7'h80
    7'd9data_g<7'h90
    defaultdata_g<7'hC0
    endcase
    end
    endmodule
    数码显示模块激励:
    module SMG_test
    reg[70] data
    reg clk_1MHz
    wire [60]data_g
    wire [60]data_s
    wire [60]data_b
    SMG smg(data(data)clk_1MHz(clk_1MHz)data_g(data_g)data_s(data_s)data_b(data_b))
    always # 10 clk_1MHz~clk_1MHz
    initial
    begin
    data0clk_1MHz0
    #25 data35
    #25 data15
    #25 data93
    end
    endmodule

    RAM模块:
    module RAM(resetwrwr_clkwr_addressdinrdrd_clkrd_addressdout)
    input wrwr_clkreset
    input [30]wr_address
    input [70]din
    input rdrd_clk
    input [30]rd_address
    output [70]dout
    reg [70]dout0
    reg[70] mem [110]
    always@(posedge wr_clk or negedge reset)
    begin
    if(reset)
    begin
    mem[1]<8'd1
    mem[2]<8'd2
    mem[3]<8'd3
    mem[4]<8'd4
    mem[5]<8'd5
    mem[6]<8'd6
    mem[7]<8'd7
    mem[8]<8'd8
    mem[9]<8'd9
    mem[10]<8'd10
    end
    else
    begin
    if(wr)
    begin
    if(wr_address<4'd10)
    mem[wr_address] end
    end
    end
    always@( posedge rd_clk or negedge reset)
    begin
    if(reset)
    dout<8'd0
    else
    begin
    if(rd)
    begin
    dout end
    end
    end
    endmodule
    RAM模块激励:
    module RAM_test
    reg resetwrrd
    reg wr_clkrd_clk
    reg [30]wr_addressrd_address
    reg [70] din
    wire [70] mem [110]
    wire [70] dout
    RAM ram(reset(reset)wrn(wr)wr_clk(wr_clk)wr_address(wr_address)rd(rd)rd_clk(rd_clk)rd_address(rd_address)din(din)dout(dout))
    always #1 wr_clk~wr_clk
    always #1 rd_clk~rd_clk
    initial
    begin
    wr_clk<0
    rd_clk<0
    reset0
    wr<0
    rd<0
    wr_address<4'd0
    rd_address<4'd0
    din<8'd0
    #15 reset<1
    #15 rd<1
    #25 rd_address<4'd4wr<1
    #35 din<8'd5wr_address<4'd1rd_address<4'd1
    #15 din<8'd8wr_address<4'd6rd_address<4'd6
    #15 reset<0rd_address<4'd4
    end
    endmodule

    顶层模块:
    module RAM_count (resetaddstartclk_50MHzwrwr_addressdinrdrd_addressdata_gdata_sdata_b)
    input resetaddstartwrrdclk_50MHz
    input [30]wr_addressrd_address
    input[70] din
    output [60]data_gdata_sdata_b
    wire [60] data_gdata_sdata_b
    wire [70] dout
    wire [70] mid_data
    wire mid_clk_1Hz
    wire mid_clk_1MHz
    FPQ fpq(reset(reset)clk_50MHz(clk_50MHz)clk_1MHz(mid_clk_1MHz)clk_1Hz(mid_clk_1Hz))
    RAM ram(reset(reset)wr(wr)wr_clk(mid_clk_1MHz)wr_address(wr_address)din(din)rd(rd)rd_clk(mid_clk_1MHz)rd_address(rd_address)dout(mid_data))
    JSQ jsq(add(add)data(mid_data)clk_1Hz(mid_clk_1Hz)start(start)c_out(dout))
    SMG smg(clk_1MHz(mid_clk_1Hz)data(dout)data_g(data_g)data_s(data_s)data_b(data_b))
    Endmodule
    顶层模块激励:
    module RAM_count_test
    reg resetaddstartwrrd
    reg clk_50MHz
    reg [30]wr_addressrd_address
    reg [70] din
    wire [60] data_gdata_sdata_b
    RAM_count ram( reset(reset)add(add)start(start)wr(wr)rd(rd)clk_50MHz(clk_50MHz)
    wr_address(wr_address) rd_address(rd_address)din(din)data_g(data_g)data_s(data_s)data_b(data_b))
    always #1 clk_50MHz~clk_50MHz
    initial
    begin
    reset1start1din1wr0rd1
    wr_address4'd1rd_address4'd1clk_50MHz0
    add1
    # 125 reset0 # 250 reset1 #250 add0 # 250 add1
    # 250 wr0rd1
    # 10000 start0
    # 250 wr1rd0
    end
    endmodule

    45 综合布局布线报告引脚分布报告
    综合图:

    脚分配图:

    时钟分配图:

    46 仿真结果报告

    47 硬件测试结果报告
    测试结果符合设计初衷实现10×8RAM变成十8位加法器设置初始值1~10写入读出数进行加法操作
    48 结果结问题讨
    实验结果基符合设计求初衷体功实现细节没做规划仿真时出现部分高阻状态检查发现RAM模块中复位问题
    5课程设计心体会
    两周FPGA课程设计门课程更加深刻认识感受更加深入解课程学足理学实践相互结合重性电路设计初始时刻没设计电路时设计方法盲目电路模块进行设计结果设计综合时候设计模块进行利综合仿真尤数码RAM模块中出现较问题单模块测试时正确综合起时出现问题老师学帮助发现原时钟匹配问题系列修改终正确结果电路设计描述中会深刻吸取次教训
    仿真时进行非常利总结出良编码惯电路综合差错影响便时处理问题做出改进方案处理逻辑错误非常时提醒详细规范电路间逻辑关系合理安排重性外模块间时序电路合理协调电路初始状态设定关重
    总说两周课程设计受益匪浅学中会吸取次验帮助学生活中取更进步
    6参考资料等
    基VerilogFPGA设计基础杜慧敏李宥谋赵全良著 西安电子科技出版社学
    Verilog HDL数字设计综合(第二版) [美] Samir Palnitkar 著 夏宇闻胡燕祥 刁岚松 等译
















    西安邮电学院系成绩鉴定表
    学生姓名

    班级学号
    电科
    进行时间
    2012年 9 月 10 日 — 2012 年 9 月21 日
    成绩鉴定
    学容(20分)
    教学务计划结合程度(10分)

    专业培养结合程度(6分)

    (4分)

    接受单位评价
    (20分)
    实践力(10分)

    学态度(6分)

    学纪律(4分)

    报告鉴定
    (60分)
    报告容实践程紧密结合(15分)

    报告容教学计划容紧密结合(15分)

    报告质量(题结构观点逻辑资料字数 30分)

    评阅教师姓名
    刘正涛
    职称

    成绩

    评语











    评阅教师签字

    年 月 日


    西安邮电学院 系 程考核表
    学生姓名

    班级学号
    电科
    承担务实验室(单位)
    2#实验楼
    部门

    实施时间
    2012年 9月10 日 — 2012 年9 月21日
    具体容
    第周
    进行设计规范具体设计方案构思报告形式写出
    第二周
    进行相关模块程序编写仿真综合仿真
    ……



    指导教师(师傅)姓名
    刘正涛
    职务职称

    指导教师(师傅)
    学生评价
    学态度
    □ 认真 □ 般 □ 认真
    学纪律
    □ 全勤 □ 偶尔缺勤 □ 常缺勤
    实践力
    □ 强 □ 般 □ 较差
    指导教师(师傅)学生专业知识社会实践力等情况意见








    指导教师(师傅)签字

    年 月 日


    西an邮电学院

    文档香网(httpswwwxiangdangnet)户传

    《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
    该内容是文档的文本内容,更好的格式请下载文档

    下载文档到电脑,查找使用更方便

    文档的实际排版效果,会与网站的显示效果略有不同!!

    需要 2 香币 [ 分享文档获得香币 ]

    下载文档

    相关文档

    基于FPGA的计数器设计电子技术课程设计

    XX学院电子技术课程设计 题 目 _基于FPGA的计数器设计___ __________...

    1年前   
    320    0

    基于FPGA的数字跑表

    基于FPGA的数字跑表学院:物电学院姓名: 学号:班级:班日期:2011年X月X日目录一、实例的主要内容 3二、实验目标: 41初步掌握Verilog HDL语言的设计方法 42、完成一个数字...

    3年前   
    630    0

    基于FPGA的多路彩灯控制器的设计课程设计

     FPGA课程设计报告 学院: 信息工程学院班 级: 信息级班姓 名: 学 号: 完成时间: 2015年X月X日 评阅意见: 题目...

    3年前   
    528    0

    60进制计数器课程设计

    60进制计数器课程设计姓 名: ∧∧∧∧ 学 号:\\\\\\\\\\\\\\ 班 级: 应电班 实训地点: 指导教师...

    1年前   
    403    0

    60进制计数器课程设计

    60进制计数器课程设计60进制计数器设计 2绪论 31.1设计背景 31.2设计思想 32器件介绍 42.1电阻 42.2电容 52.3 555秒发生器 52.4 74ls00 72.574l...

    1年前   
    275    0

    基于FPGA的温度检测系统设计

    XX学院信息工程学院数字系统与Verilog设计报告题 目: 基于FPGA的温度检测系统设计 姓 名: 学 号: ...

    3年前   
    608    0

    基于FPGA的IIR滤波器设计

     基于FPGA的IIR滤波器设计摘 要:数字信号处理在科学和工程技术许多领域中得到广泛的应用,与FIR数字滤...

    3年前   
    541    0

    基于FPGA的语音录制与回放系统

    本语音录制与回放系统的基本工作原理是将模拟语音信号通过模数转换器(A/D)转换成数字信号,再通过FPGA(控制器)将数字信号存储到存储器中; 回放时, 由 FPGA控制将数据从存储器中读出, 然...

    5年前   
    1188    0

    音乐倒数计数器单片机课程设计

    音乐倒数计数器单片机课程设计摘 要 单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。而51单片机是各单片机中最为典型和最有代表性的一种。...

    1年前   
    536    0

    基于FPGA的键盘扫描程序的设计毕业设计

    X X 学 院 CHANGSHA UNIVERSITY本科生毕业设计设计(论文)题目: 基于FPGA的键盘扫描程序的设计 ...

    4年前   
    862    0

    通信工程基于FPGA的图像数据处理FIFO核设计论文

     基于FPGA的图像数据处理 FIFO核设计 院 系:信息科学与工程学院 专 业 班:通信1201 姓 名: 学 号: 指导教师:...

    5年前   
    1083    0

    基于FPGA的FSK数字调制解调器设计

    等级:课 程 设 计课程名称专业课程设计课题名称基于FPGA的FSK数字调制解调器设计专 业电子信息工程班 级学 号姓 名指导老师2016年X月X日电气信息学院专业设计...

    1年前   
    335    0

    基于FPGA的电梯控制系统设计毕业设计论文

    毕 业 设 计 [论 文]题 目: 基于FPGA的电梯控制系统设计 学 院: 电气与信息工程学院 ...

    3年前   
    1275    0

    PARWANCPU状态机设计基于FPGA的数字系统设计

     基于FPGA的数字系统设计 大作业 学号: 姓名: 班级: 题目一:设计Pa...

    11个月前   
    302    0

    基于MATLAB的ASK调制解调实现课程设计

    大学《通信原理》课程设计报告学 院 专 业 班 级 学 号 ...

    3年前   
    726    0

    基于UML的图书管理系统设计课程设计

    滨江学院 统一建模语言课程设计报告( 2013 -- 2014 年度第 二 学期)课程名称: 统一建模语言课程设计 题 目: 图书馆管理系统 院 系: ...

    1年前   
    398    0

    基于8051的智能小车设计课程设计

    测控电路课程设计题目名称: 智能循迹小车 专业班级: ...

    2年前   
    583    0

    基于arm键盘课程设计

    基ARM课程设计 专 业:自动化学 号:姓 名: 在ARM嵌入式应用中,人机交互对话最通用的方法就是通过键盘和LCD显示进行的,本设计是通过键盘向系统发送各种指令或置入必要的数据信息。键盘模块...

    2年前   
    471    0

    基于plc的交通灯的设计课程设计

    任务说明书一、 控制要求:1、系统控制示意图由十字路口交通灯示意图可以知道,在南北和东西主干道上各有一盏红绿灯;在南北和东西人行道上各有一盏红灯和绿灯。2、控制要求 启动及停止按钮的控制...

    3年前   
    887    0

    电气控制技术课程设计基于PLC电子计算器课程设计

     电气控制技术课程设计说明书 电子计算器 学生姓名: 专 业: 自动化 班 级...

    1年前   
    308    0

    文档贡献者

    文***品

    贡献于2021-07-09

    下载需要 2 香币 [香币充值 ]
    亲,您也可以通过 分享原创文档 来获得香币奖励!
    下载文档

    该用户的其他文档