东北大学东软信息学院嵌入式系统工程系高级数字系统设计与验证_第1页
东北大学东软信息学院嵌入式系统工程系高级数字系统设计与验证_第2页
东北大学东软信息学院嵌入式系统工程系高级数字系统设计与验证_第3页
东北大学东软信息学院嵌入式系统工程系高级数字系统设计与验证_第4页
东北大学东软信息学院嵌入式系统工程系高级数字系统设计与验证_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、高级数字系统设计与验证 实验指导书高级数字系统设计与验证实验一:实验指导书指导教师: 山丹、图雅、实验目的了解基于 FPGA 的数字系统设计流程,熟悉 Spartan-3s1500开发板资源及 EDA 工具的使用,掌握电路设计、逻辑综合、仿真、布局布线、下载的方法和 操作,完成加法器和计数器功能模块的设计与实现。II 、实验前的预习及准备工作1、阅读 Xilinx Spartan-3S1500开发板用户使用指南,将开发板上的所有 有效资源列出,并作简要说明,写在预习报告中。2、充分理解加法器和计数器的工作原理。、基于 Xilinx-FPGA 的数字系统开发流程1、FPGA 简介FPGA 英文全

2、称是 Field Programmable Gate Array, 即现场可编程门阵列, 它 是在 PAL 、 GAL 等可编程器件的基础上进一步发展的产物,具有体系结构和逻 辑单元灵活、集成度高以及适用范围宽的特点,并且兼容了简单 PLD 和通用门 阵列的优点,可实现较大规模的电路,编程也很灵活。它是作为专用集成电路 (ASIC 领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克 服了原有可编程器件门电路数有限的缺点。 与 ASIC (Application Specific IC 相 比,它具有开发周期短、设计制造成本低、开发工具先进、标准产品无需测试、 质量稳定以及可实时在线检

3、验等优点, 因此被广泛应用于产品原型设计和产品生 产(一般在 10000件以下之中。同一片 FPGA 通过不同编程数据可以产生不同的电路功能。 FPGA 在通信、 数据处理、网络、仪器、工业控制、军事和航空航天等领域得到了广泛应用,随 着功耗和成本的进一步降低, FPGA 还将进入更多应用领域。简化的 FPGA 基本由 6部分组成:可编程输入 /输出单元、基本可编程逻辑 单元、嵌入式块 RAM 、丰富的布线资源、底层嵌入功能单元和内嵌专用硬核。目前 FPGA 的种类很多, 有 XILINX 的 Spartan 和 Virtex 系列、 TI 公司的 TPC 系列、 ALTERA 公司的全系列等

4、。全球第一片 FPGA 是由 XILINX (赛灵思公 司在上个世纪 80年代推出的,紧接着 ALTERA 公司也推出了自己的 FPGA 。不 同公司生产的 FPGA 在内部连线结构、 可编程逻辑模块规模上有所不同, 使用时 所使用的软件开发平台也不同,用户在使用的时候要加以区别。2、基于 FPGA 数字系统开发流程简介在设计之初, FPGA 设计同 ASIC 设计一样都要进行规划和预算,要对主要 FPGA 芯片的选取,工作时间,程序占芯片面积等进行预测。在规划完成后将设 计输入 PC 。 在进行设计输入时主要用 HDL 语言或者原理图进行输入, 同时可以 ISE 所带的结构向导和核生成器进行

5、辅助设计。无论用什么方法设计 FPGA ,最后都要生成 EDIF 网表,此时需要综合工具 的支持。本论文使用 FPGA 设计工具是 XILINX 公司的 ISE ,它是一个 FPGA 设 计的平台,其中综合器为 XST 。当网表完成后,就进入实现的阶段。实现阶段包括转化,映射,布局布线三 个步骤。 转化指将多个设计文件合并为一个网表。 映射指将网表中的逻辑符号组 装到物理元件中。 可理解为将逻辑门映射成 PFGA 中的基本可编程逻辑单元。 布 局布线指将元件放置到器件中, 并将它们连接起来, 同时提取出时序数据并生成 各种报告。在实现完成后,使用者会得到报告,时序仿真网表,平面布局文件, FP

6、GA 编辑器文件等。 图 1 FPGA设计流程3、 Xilinx 公司 Spartan-3s1500开发板请参见Xilinx Spartan-3S1500开发板用户使用指南。、加法器设计 1、全加器 ab 00 01 11 10 0 0 1 0 1cin 1 1 0 1 0 ab0001 11 1000 0 1 0cin 10 1 1 1 C S C 0全加器的 RTL 代码如下:module full_add(A_in,B_in,C_in,S_out,C_out;input A_in,B_in,C_in;output S_out,C_out;assign S_out =A_inB_inC_i

7、n;assign C_out = (A_in & B_in | (A_in & C_in | (B_in & C_in;endmodule2、串行进位加法器的 RTL 级模型 3、 利用 RTL 级描述完成基于 FPGA 的 4位串行进位加法器的设计与实现。 1创建工程首先创建一个工程目录,目录名称为“ Adder ” 。启动 ISE 工程管理器,选择 “ FILE/New Project” 选 项 , 弹 出 新 建 工 程 对 话 框 , 在 工 程 名 称 中 输 入 “ adder4_ripple” 作为工程名。单击工程路径按钮,将工程指定到目录“ Adder

8、” 。 单击 Next ,在新打开的窗口中,将“ Project Category”设为“ All ” , “ Family ”设 为 “ Spartan3” , “ Device ” 设为 “ XC3S1500” , “ Package ” 设为 “ FG676” , “ Speed ” 设为“ -5” , “ Top-Level Source Type”设为“ HDL ” , “ Synthesis Tool”设为“ XST (VHDL / Verilog ” , “ Simulator ”设为“ ISE Simulator” 。连续单击 Next ,最后 单击 finish ,完成工程创

9、建。2设计输入双击“ Processes ”窗口中的“ Create New Source” ,资源类型选择“ Verilog Module” ,文件名为“ adder4_ripple” ,单击 Next ,在 Verilog 源代码辅助模板中 填入输入、输出信号。单击 Next ,确认资源信息,然后单击 Finish ,在 HDL 编 辑器中编写代码并保存。3功能仿真双击 “ Processes ” 窗口中的 “ Create New Source” , 资源类型选择 “ Verilog Test Fixture ” ,文件名为“ adder4_ripple_test” ,单击 Next ,

10、在 Verilog 源代码辅助模板 中添加 Test Bench信息并保存。 在 “ Sources for” 中选择 “ Behavioral Simulator” , 在 “ Sources ” 中选择测试文件, 在 “ Processes ” 中, 双击 “ Simulate Behavioral Model” , 此时可以看到仿真波形。4综合在“ Sources ”窗口中,单击“ adder4_ripple” ,在“ Processes ”窗口中,右键 单击“ Synthesize XST ” ,选择“ Properties ”设置综合属性。本设计不改变默认 的综合属性,直接点击 OK

11、 即可。双击“ Synthesize XST ”进行综合。综合后,双击“ View Synthesis Report”查看综合报告,并记录 LUT 数量 和关键路径的长度。双击“ View Technology Schematic”查看电路原理图。 5添加约束双 击 “ Processes ” 窗 口 中 的 “ Create New Source” , 资 源 类 型 选 择 “ Implementation Constraints File” ,文件名为“ adder4_constraints” ,单击 Next 、 Finish 完成约束文件的创建。在 “ Sources ” 中选择约束

12、文件, 在 “ Processes ” 窗口中, 双击 “ Create Timing Constrains ” ,在“ Constraints File Editor”中编辑约束条件。由于本实验是纯组合 电路的综合,所以不需要添加复杂的约束条件,直接关闭窗口就可以。在 “ Processes ” 窗口中, 双击 “ Assign Package Pins” , 按下表所示添加 FPGA 管脚约束并保存。表 1I/O名 类型 管脚 使用资源 说明按钮 S3 按钮按下为高电平按钮 S4 按钮按下为高电平按钮 S5 按钮按下为高电平按钮 S6 按钮按下为高电平向上搬动为高电平向上搬动为高电平向上搬

13、动为高电平向上搬动为高电平AD25 D8 当 FPGA 输出低电平 ,LED 灯被点亮 AB21 D9 当 FPGA 输出低电平 ,LED 灯被点亮 AC21 D10 当 FPGA 输出低电平 ,LED 灯被点亮 AD21 D11 当 FPGA 输出低电平 ,LED 灯被点亮 Y18当 FPGA 输出低电平 ,LED 灯被点亮6实现在“ Sources ”窗口中,单击“ adder4_ripple” ,在“ Processes ”窗口中,双击 “ Implement Design”完成设计的布线。7布线后仿真在“ Sources for”中选择“ Post-Route Simulator” 。

14、在“ Sources ”窗口中,单 击 “ adder4_ripple_test” , 在 “ Processes ” 窗口中, 双击 “ Simulate Post-Place & Route Model ” ,进行布线后仿真。8生成配置文件与配置 FPGA在“ Sources for”中选择“ Synthesis/Implement” 。在“ Processes ”窗口中, 双击“ Generate Programming File/Generate PROM, ACE, or JATG File” 。在打开的 窗口中直接点击“ Finish ” ,系统自动进行设备检测,检测成功后

15、将弹出“ Assign New Configuration File”窗口,浏览到工程所在的目录,选择要下载的“ .bit ”文 件,点击“ Open ” 。在“ iMPACT ”窗口中选择 xc3s1500芯片,此时芯片应显示 为绿色。右击该芯片图表,在菜单中选择“ Program ”进行下载,下载成功后 系统出现蓝色“ Success ”提示。9下载成功后,输入下表中的数值,并记录预算结果。表 2加数 1 加数 2 和4、 利用 RTL 级描述完成基于 FPGA 的 4位超前进位加法器的设计与实现。 除 RTL 代码与串行进位加法器不同外,其实验过程与之相同。module adder_4_

16、lookahead(a_in,b_in,sum_out,c_out;input 3:0 a_in,b_in;output 3:0 sum_out;output c_out;wire 3:0 p,g;wire 3:0 c;assign p=a_in | b_in;assign g=a_in & b_in;assign c0 = 1'b0;assign c1 = g0;assign c2 = g1 | (p1 & g0;assign c3 = g2 | (p2 & (g1 | p1 & g0;assign c_out = g3 | (p3 & g2

17、| (p2 & (g1 | p1 & g0; assign sum_out = a_in b_in c;endmodule5、比较两种加法器综合后的 Schematic 、 LUT 数量和关键路径的长度。 表 3LUTCriticalPath6、利用行为级描述完成基于 FPGA 的 4位加法器设计与实现,并比较与前 两个电路的异同,其实验过程与上述相同。表 4(RTL Look ahead(RTL BehavioralLUTCritical Path7、修改设计,利用开发板上的 4个七段数码管显示加法器计算结果,其中 FPGA 管脚约束如下表所示。表 5I/O名 类型 管脚 使

18、用资源 说明AB26S3 按钮按下为高电平AC26S4 按钮按下为高电平AB24S5 按钮按下为高电平AB25S6 按钮按下为高电平向上搬动为高电平向上搬动为高电平AA24向上搬动为高电平AA23向上搬动为高电平AE24U3 7-Segment LED Display, Segment A AF23 U3 7-Segment LED Display, Segment B AE23U3 7-Segment LED Display, Segment C W16 U3 7-Segment LED Display, Segment D AD15U3 7-Segment LED Display, Seg

19、ment E W15 U3 7-Segment LED Display, Segment F AB14U3 7-Segment LED Display, Segment G AB13U4 7-Segment LED Display, Segment A AA13U4 7-Segment LED Display, Segment B AD14U4 7-Segment LED Display, Segment C AD17U4 7-Segment LED Display, Segment DAA14U4 7-Segment LED Display, Segment E W14 U4 7-Segme

20、nt LED Display, Segment F Y14 U4 7-Segment LED Display, Segment G、计数器设计 ABCD :计数初值; Q :计数输出; LD :计数初始值输入使能; CLR :计数 器清零; EN :计数使能; U/D:上行下行计数。每个时钟上升沿计数器自动计数 一次 。1、利用 RTL 级描述完成基于 FPGA 的 4位计数器(要求如上所示的设 计与实现。1创建工程2设计输入3功能仿真4综合以上过程与加法器类似, 这里不再赘述。 值得注意的是 FPGA 提供的时钟为 50MHZ ,如直接用于计数器时钟,则在数码管上会因为变化太快而不能看清楚。

21、 因此,要对 50MHZ 进行分频,分频后的信号再作为计数器电路的时钟,做 223分频,或更大的分频系数都可以。5添加约束在 “ Global ” 选项卡中, “ Clock Period” 设为 20, 占空比设为 50, “ Pad to Setup” 设为 0, “ Clock to Pad”设为 0。分频后得到的时钟信号“ Period ”设为 100,占空比设为 50。在“ Ports ”选项卡中,除“ Clock ”外的所有输入信号的“ Pad to Setup”设 为 15,所有输出信号的“ Clock to Pad”设为 15。其他设置均取默认值并保存约束文件。在 “ Proc

22、esses ” 窗口中, 双击 “ Assign Package Pins” , 按下表所示添加 FPGA 管脚约束并保存。表 6I/O名 类型 管脚 使用资源 说明产生 50M 时钟输入AB26按钮按下为高电平AC26按钮按下为高电平AB24按钮按下为高电平AB25S6 按钮按下为高电平DATA_in 0 Input V21 SW4 向上搬动为高电平DATA_in 1 Input V20 SW3 向上搬动为高电平DATA_in 2 Input AA24SW2 向上搬动为高电平AA23向上搬动为高电平AE24U3 7-Segment LED Display, Segment B AF23U3

23、7-Segment LED Display, Segment B AE23U3 7-Segment LED Display, Segment C W16U3 7-Segment LED Display, Segment D AD15U3 7-Segment LED Display, Segment E W15U3 7-Segment LED Display, Segment F AB14U3 7-Segment LED Display, Segment G AB13U4 7-Segment LED Display, Segment A AA13U4 7-Segment LED Display,

24、 Segment B AD14U4 7-Segment LED Display, Segment C AD17U4 7-Segment LED Display, Segment D AA14U4 7-Segment LED Display, Segment E W14U4 7-Segment LED Display, Segment F Y14 U4 7-Segment LED Display, Segment G 6实现7布线后仿真8生成配置文件与配置 FPGA2、当计数到 15时,输出 END_COUNT=1,否则 END_COUNT=0,根据 要求重新设计计数器。、实验报告内容1、串行进

25、位和超前进位四位加法器设计的 FPGA 实现及比较。2、计数器 Behavioral 级、 RTL 级设计的 FPGA 实现及比较。3、时序电路设计中有哪些时序约束,分别叙述其含义。4、实验注意事项及体会。、评分标准项目 在本次实验中所占分值的比例 检查时间 预习 开发板资源整理 %实验开始前 加法器 FPGA 实现 30% 实验过程中 实验过程计数器 FPGA 实现 30% 实验过程中 实验报告 实验结束后高级数字系统设计与验证实验二:实验指导书指导教师:图雅、山丹、实验目的完成基于 FPGA 的自动售咖啡机的代码编写、 仿真、 逻辑综合、 布局布线及 下载,进一步熟悉基于 FPGA 的数字

26、系统设计流程及 EDA 工具的使用。 、实验前的预习及准备工作1、充分理解自动售咖啡机的工作原理。用户需求:1、只售咖啡; 2、三元 /杯 ,接收一元 /五角硬币;3、不找零钱; 4、售货机中的杯子永远用不完; 输入输出接口定义: 工作流程图: 并完成数据通道及控制单元划分 : 2、 将自动售咖啡机的数据通道及控制单元 RTL 代码及 TESTBENCH 写在预 习报告中。、 自动售咖啡机 数据通道及控制单元详细设计1、数据通道框图 4、实验步骤1 完成 EDA 工具中各独立模块代码编写及语法检查。2 按照数据通路原理图连接各独立模块, 完成数据通道的编码及语法检查。 、乘法器控制单元1、有限

27、状态机举例 2、状态机实现用 Verilog -HDL 语言完成自动售咖啡机数据通路的代码调试及电路的逻辑 综合。3、实验步骤1 完成 EDA 工具中状态机代码的编写及语法检查。2 编写 TESTBENCH ,并完成自动售咖啡机的功能仿真。、自动售咖啡机 FPGA 实现1、管脚分配管脚分配表I/O名 类型 管脚 使用资源 说明产生 50M 时钟输入向上搬动为高电平Cof_rdy Input V20 SW3 向上搬动为高电平AA24向上搬动为高电平AC26按钮按下为高电平AB24按钮按下为高电平AD2x Dx 当 FPGA 输出低电平 ,LED 灯被点亮 AD25当 FPGA 输出低电平 ,LE

28、D 灯被点亮2、实验步骤1 完成电路修改后的仿真、调试及综合,并检查综合结果是否正确。2为设计添加时序约束及管脚约束。3实现4布线后仿真5生成配置文件与配置 FPGA、实验报告内容1、基于 FPGA 的自动售咖啡机原理、设计划分、 RTL 代码、 Testbench 、状态图、 波形图。2、管脚约束、 FPGA 综合后所用资源清单及时序性能。3、自动售咖啡机 FPGA 实现的注意事项及体会。、评分标准项目 在本次实验中所占分值的比例 检查时间预习 自动售咖啡机代码编写及功能仿真20%实验开始前操作 自动售咖啡机的 FPGA 实现及调试50%实验过程中 实验报告 实验结束后高级数字系统设计与验证

29、实验三:实验指导书指导教师: 山丹、图雅、实验目的完成基于 FPGA 的 4位无符号二进制移位式乘法器的代码编写、 仿真、 逻辑 综合、布局布线及下载,进一步熟悉基于 FPGA 的数字系统设计流程及 EDA 工 具的使用。、实验前的预习及准备工作1、 充分理解 4位无符号二进制移位式乘法器的工作原理, 并完成功能仿真。2、将乘法器的 RTL 代码及 TESTBENCH (不少于 10个激励写在预习报 告中。、乘法器数据通道1、数据通道模块祥图 2、通用模块表 1模块名称 数量 说明四位移位寄存器 1、 P (积八位拆分为高四位和低四位移位寄存器,其中 P 低四位寄存器只移位不加载。2、 乘数

30、Q 移位寄存器。四位寄存器 被乘数 R 寄存器。一位移位寄存器 加法器进位位寄存器。加法器 完成 R 与 P 低四位的加法,和送入 P 低四位寄存器,进位送 入进位位寄存器。记数器 三位记数器,返回记数溢出标志。3、 数据通道实现用 Verilog -HDL 语言完成乘法器数据通路的代码调试及电路的逻辑综合。 module Data_Path(P,EQ_4,Q_LSB,Q,R,LD_Q,LD_R,LD_P,LD_G,SHIFT,Counter_EN,CLK,RESET;input 3:0 Q,R;input LD_Q,LD_R,LD_P,SHIFT,Counter_EN,CLK,RESET,L

31、D_G;output EQ_4;output 7:0 P;output Q_LSB;wire Cout,Pshift_in,P_LSB;wire 3:0 R_to_Add,P_add_R,P_high,P_low,Q_out,P_LSB_out;.endmodule4、实验步骤1 完成 EDA 工具中各独立模块代码编写及语法检查。2 按照数据通路原理图连接各独立模块, 完成数据通道的编码及语法检查。 、乘法器控制单元1、有限状态机2、状态机实现用 Verilog -HDL 语言完成乘法器数据通路的代码调试及电路的逻辑综合。 module Control_Unit(DONE,Counter_EN

32、,LD_Q,LD_R,LD_P,LD_G,SHIFT,START,RESET,Q_LSB,EQ_4,CLK;input START,CLK,RESET,Q_LSB,EQ_4;output DONE,LD_Q,LD_R,LD_P,LD_G,SHIFT,Counter_EN;reg 4:0 present_state,next_state;reg LD_Q,LD_R,LD_P,LD_G,SHIFT,Counter_EN,DONE;parameter idle='b00000,init='b00001,empty='b00010,add='b00100,shift=&

33、#39;b01000,done='b10000;.Endmodule 3、实验步骤1 完成 EDA 工具中状态机代码的编写及语法检查。 2 编写 TESTBENCH ,并完成乘法器的功能仿真。、乘法器 FPGA 实现1、电路修改(1由于实验用开发板(SPARTANIIIS1500仅有一组 4个开关,因此实 验过程中无法同时利用开关为 Q 、 R 赋值。故在电路中增加两个寄存器,分别用 于为 Q 和 R 赋值。两个寄存器的输入均连在开发板的 SW 开关上,输出分别连 接乘法器 Q 、 R 输入端,寄存器的 Load 端 LD_Switch_R、 LD_Switch_Q分别连 接 S5、 S6开关,清零端 RESET 连接 S3,时钟连接 CLK 。实验过程中分两次将 乘数和被乘数输入至 Q 、 R 。修改后的电路原理图如下图所示。 PRESETCLKLD_Switch_QSwitch 注:上图虚线内为修改后的电路,虚线外为输入输出信号。(2实验中, START 、

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论