硬件描述语言与FPGA技术实验指导书(2012版)汇总

合集下载

课程名称FPGA与硬件描述语言

课程名称FPGA与硬件描述语言

课程名称FPGA与硬件描述语⾔课程名称:FPGA与硬件描述语⾔课程编码:7002301课程学分:2学分课程学时:32学时适应专业:电⼦信息⼯程《FPGA与硬件描述语⾔》FPGA and Hardware Describing Language教学⼤纲⼀、课程性质与任务课程性质:本课程的授课对象为电⼦信息⼯程专业⼆年级本科⽣,课程属性为专业基础必修课,该课程讲授FPGA基本原理及结构,先进的硬件描述语⾔(VHDL 语⾔),FPGA设计与应⽤等知识。

教学⽬标:通过对(VHDL)硬件描述语⾔,FPGA设计等知识的学习,掌握硬件描述语⾔,FPGA设计的基本知识。

培养学⽣动⼿能⼒以及解决实际问题的能⼒。

理解VHDL语⾔,学会FPGA设计⽅法等。

⼆、教学基本要求及基本内容第⼀章绪论VHDL的数据和表达式(⼀)基本要求:掌握:VHDL程序的特点,VHDL的数据,VHDL的表达式。

了解:FPGA基本原理及结构。

(⼆)教学及考核内容:绪论:FPGA基本原理及结构第⼀章VHDL的数据和表达式1.1 VHDL程序的特点1.2 VHDL程序的基本结构1.3 VHDL的数据1.4 VHDL的表达式第⼆章VHDL的顺序描述语句(⼀)基本要求:掌握:信号赋值语句和变量赋值语句,if语句,case语句,null语句。

理解:loop语句。

(⼆)教学及考核内容:第⼆章VHDL的顺序描述语句2.1信号赋值语句和变量赋值语句2.2 if语句2.3 case语句2.4 loop语句2.5 null语句第三章VHDL的并⾏描述语句(⼀)基本要求:掌握:进程语句,并发信号赋值语句,元件例化语句。

理解:条件信号赋值语句,选择信号赋值语句。

了解:⽣成语句。

(⼆)教学及考核内容:第三章VHDL的并⾏描述语句3.1进程语句3.2并发信号赋值语句3.3条件信号赋值语句3.4选择信号赋值语句3.5元件例化语句3.6⽣成语句第四章VHDL的时钟信号描述⽅法(⼀)基本要求:掌握:时钟的VHDL描述⽅法,时序电路中复位信号的VHDL描述⽅法。

硬件描述语言实验

硬件描述语言实验

《硬件描述语言》实验指导书南通大学电子信息学院2008 年2 月1、目的和任务《硬件描述语言》是一门侧重于数字电子系统的设计和测试方法的课程,它的上机实验是教学中的一个重要环节。

通过上机学习,学生不仅可以系统地复习、巩固该课程的基本理论,而且培养学生解决问题能力和创新能力,同时为该课程的课程设计作准备。

2、教学基本要求(1)、熟练使用EDA 软件(Quartus II、ModelSim);(2)、掌握用Verilog HDL 实现组合逻辑电路和时序逻辑电路的方法。

3、实验条件(1)、PC 机、Quartus Ⅱ软件和ModelSim软件(2)、GW48型EDA 实验开发系统(EP1K30TC144-3)4、实验内容序号实验内容1 实验一设计工具的使用2 实验二组合逻辑电路设计(一)3 实验三组合逻辑电路设计(二)4 实验四总线与总线操作5 实验五时序逻辑电路设计(一)6 实验六时序逻辑电路设计(二)5、实验成绩实验成绩的评定由实验的验收等级和实验报告等级两个部分组成,各占50%。

实验的验收等级和实验报告等级均采用5 个等级,即优、良、中、及格和不及格。

实验成绩占本课程平时成绩的50%。

实验一设计工具的使用1、实验目的与要求掌握在Quartus Ⅱ开发环境下,运用硬件描述语言输入法对“三人表决器”进行设计输入、编译、调试和仿真的方法。

“三人表决器”电路的输入为SW1、SW2 和SW3,输出为L3 和L4,位宽均为1 位。

当SW1、SW2 和SW3中有超过2个以上的输入为1时,要求熟悉整个设计流程,从打开、建立文档、编辑、编译、建立激励信号波形及最后仿真的整个过程。

2、实验内容(1)在Quartus Ⅱ开发环境下,建立工程,并将三人表决器的硬件描述语言程序输入;(2)完成编译、调试和仿真,分析实验仿真结果,并判断其正确性。

3、教学形式(1)本实验为验证型实验,学生在实验前预习实验指导书;(2)指导教师应该在实验前阐述实验目的、内容、方法和步骤,并且就实验中的难点和注意事项进行一定的说明;(3)实验结束之后,学生按照实验报告的书写格式自行完成实验报告。

FPGA实验指导书

FPGA实验指导书

目录第1章FPGA系统 (1)1.1 系统简介 (1)1.2 系统功能特点 (1)1.3 开发平台标准配置 (2)1.4 功能模块介绍 (2)1.4.1 电源 (2)1.4.2 系统时钟 (3)1.4.3 LED灯 (3)1.4.4 8位拨码开关 (3)1.4.5 数码管显示 (4)1.4.6 键盘阵列 (5)1.4.7 独立矩形波信号源 (5)1.4.8 蜂鸣器 (6)第2章基础门电路及触发器 (8)2.1 实验一基本门电路 (8)2.1.1 实验目的 (8)2.1.2 实验内容 (8)2.1.3 实验原理及说明 (8)2.1.4 实验步骤 (8)2.1.5 参考程序及引脚分配 (9)2.2 实验二基本触发器 (10)2.2.1 实验目的 (10)2.2.2 实验内容 (10)2.2.3 实验原理及说明 (10)2.2.4 实验步骤 (10)2.2.5 参考程序及引脚分配 (11)2.3 实验三3-8译码器 (13)2.3.1 实验目的 (13)2.3.2 实验内容 (13)2.3.3 实验原理 (13)2.3.4 实验步骤 (13)2.3.5 参考程序及引脚分配 (14)2.4 实验四8—3编码器 (15)2.4.1 实验目的 (15)2.4.2 实验内容 (15)2.4.3 实验原理 (15)2.4.4 实验步骤 (15)2.4.5 参考程序及引脚分配 (16)2.5 实验五BCD八段显示译码器 (17)2.5.1 实验目的 (17)2.5.2 实验内容 (17)2.5.4 实验步骤 (17)2.5.5 参考程序及引脚分配 (17)2.6 实验六四选一数据选择器 (19)2.6.1 实验目的 (19)2.6.2 实验内容 (19)2.6.3 实验原理及说明 (19)2.6.4 实验步骤 (19)2.6.5 实验参考程序及引脚分配: (20)2.7 实验七数值比较器 (21)2.7.1 实验目的 (21)2.7.2 实验内容 (21)2.7.3 实验原理及说明 (21)2.7.4 实验步骤 (21)2.7.5 参考程序及引脚分配 (22)2.8 实验八4位二进制加法器 (23)2.8.1 实验目的 (23)2.8.2 实验内容 (23)2.8.3 实验原理及说明 (23)2.8.4 实验步骤 (24)2.8.5 参考程序及引脚分配 (24)2.9 实验九4位二进制乘法器 (26)2.9.1 实验目的 (26)2.9.2 实验内容 (26)2.9.3 实验原理及说明 (26)2.9.4 实验步骤 (27)2.9.5 参考程序及引脚分配 (27)第3章逻辑电路 (31)3.1 实验十移位寄存器 (31)3.1.1 实验目的 (31)3.1.2 实验内容 (31)3.1.3 实验原理 (31)3.1.4 实验步骤 (31)3.1.5 参考程序及引脚分配 (31)3.2 实验十一串行并行转换 (33)3.2.1 实验目的 (33)3.2.2 实验内容 (33)3.2.3 实验原理及说明 (33)3.2.4 实验步骤 (34)3.2.5 参考程序及引脚分配 (34)3.3 实验十二单时钟同步可逆计数器 (35)3.3.1 实验目的 (35)3.3.2 实验内容 (35)3.3.3 实验原理及说明 (36)3.3.5 参考程序及引脚分配 (36)3.4 实验十三顺序脉冲发生及其检测 (38)3.4.1 实验目的 (38)3.4.2 实验内容 (38)3.4.3 实验原理及说明 (38)3.4.4 实验步骤 (39)3.4.5 参考程序及引脚分配 (39)3.5 实验十四按键数码管循环左移显示 (41)3.5.1 实验目的 (41)3.5.2 实验内容 (41)3.5.3 实验原理 (41)3.5.4 实验步骤 (42)3.5.5 参考程序和引脚分配 (42)3.6 实验十五电子时钟 (45)3.6.1 实验目的 (45)3.6.2 实验内容 (45)3.6.3 实验原理 (46)3.6.4 实验步骤 (46)3.6.5 参考程序及引脚分配 (46)3.7 实验十六按键控制 (52)3.7.1 实验目的 (52)3.7.2 实验内容 (52)3.7.3 实验原理 (52)3.7.4 实验步骤 (53)3.7.5 参考程序及引脚分配 (53)第4章FPGA综合应用 (60)4.1 实验十七数字密码锁 (60)4.1.1 实验目的 (60)4.1.2 实验内容 (60)4.1.3 实验原理 (60)4.1.4 实验步骤 (61)4.1.5 参考程序及引脚分配 (61)4.2 实验十八智力抢答器 (66)4.2.1 实验目的 (66)4.2.2 实验内容 (66)4.2.3 实验原理及说明 (66)4.2.4 实验步骤 (67)4.2.5 参考程序及引脚分配 (68)4.3 实验十九自动售货机 (74)4.3.1 实验目的 (74)4.3.2 实验内容 (74)4.3.3 实验原理 (74)4.3.4 实验步骤 (75)4.3.5 参考程序和引脚分配 (75)4.4 实验二十数字频率计 (80)4.4.1 实验目的 (80)4.4.2 实验内容 (80)4.4.3 实验原理 (80)4.4.4 实验步骤 (81)4.4.5 参考程序及引脚分配 (81)第1章 FPGA系统1.1系统简介FPGA系统教学开发平台采用国际著名可编程逻辑器件公司Altera 的Cyclone系列5万门芯片为核心,整个平台采用模块化设计,各种模块可以自由组合,同时提供丰富的扩展接口,非常适合于FPGA初学者。

电子设计中的硬件描述语言与FPGA设计研究与应用

电子设计中的硬件描述语言与FPGA设计研究与应用

基于SystemC的嵌入式系统设计
总结词
探讨了基于SystemC的嵌入式系统设计的优势和应用场景,包括系统建模、仿真验证、硬件实现等。
详细描述
在嵌入式系统设计中,使用SystemC语言进行系统建模和仿真验证,可以大大提高设计效率和准确性。通过 SystemC的硬件描述和仿真功能,可以方便地进行系统级验证和调试。最后将设计实现到FPGA上,完成整个嵌 入式系统的设计和验证。
感谢您的观看
THANKS
Verilog:Verilog是另一种广泛使用的硬件描述语言,它具有简洁的语法和强Verilog:SystemVerilog是Verilog的扩展,增加了面向对象的设计方法和更强 的验证功能,广泛应用于IC设计和验证。
硬件描述语言在电子设计中的重要性
硬件描述语言定义
硬件描述语言(HDL)是一种用于描 述数字电路和系统的语言,它使用文 本形式来描述电路的结构和行为。
HDL通过高级抽象的方式,将电路设 计中的细节进行抽象,使得设计者能 够更加关注于电路的功能和结构,而 不是具体的实现细节。
常见硬件描述语言
VHDL(VHSIC Hardware Description Language):VHDL是最早的硬件描述语言 之一,被广泛应用于数字电路设计和FPGA开发。
寄存器传输级描述
寄存器传输级描述是一种更具体的描述方式 ,它关注电路中寄存器和信号的传输。
它使用更低级别的语言来描述电路的细节, 例如使用Verilog或VHDL的组合逻辑和时序 逻辑模块进行描述。
寄存器传输级描述可以用于生成测试平台和 验证电路的功能正确性。
物理级描述
01
物理级描述是一种最具体的描述方式,它关注电路的物理 实现和布局。

FPGA实验指导书

FPGA实验指导书

FPGA实验指导书刘敬猛编北京航空航天大学电工电子中心2009年10月前言现场可编程门门阵列(FPGA,Field Programmable Gate Array)的出现是超大规模集成电路(VLSI)技术和计算机辅助设计(CAD)技术发展的结果。

FPGA器件集成度高、体积小,具有通过用户编程实现专门应用的功能。

它也许电路设计者利用基于计算机的开发平台,经过设计输入、仿真、测试和校验,直到达到预期的结果。

使用FPGA器件可以将原来的电路板级产品集成为芯片级产品,从而降低了功耗,提高了可靠性,同时还可以很方便地对设计进行在线修改。

FPGA器件成为研制开发的理想器件,特别适合于产品的样机开发和小批量生产,因此有时人们也把FPGA称为可编程的ASIC。

本书的作者在工程实践和科学研究中深切感受到FPGA技术是数字电路设计的利器,从中受益颇深。

Cyclone FPGA是目前ASIC应用的低成本替代方案。

作为系统设计人员,您面临很多挑战,包括越来越大的成本压力和越来越复杂的设计,新出现的标准,以及越来越短的设计周期等。

ASIC 开发涉及到大量的工程资源,设计仿真和验证,需要进行多次重制。

利用其系统级集成功能,Cyclone FPGA系列避免了ASIC昂贵的NRE负担,降低了订购量和产品推迟带来的风险。

采用Cyclone FPGA系列,您的大批量应用现在可以采用价格相当的可编程解决方案(与ASIC相比)。

新的市场发展趋势,例如世界标准、平台融合、交互性以及技术改进等,不断推动了对高性价比方案的需求。

Cyclone系列FPGA的价格和功能满足了市场对创新的需求,通过产品迅速面市来确定领先优势。

消费类、通信、计算机外设、工业和汽车等低成本大批量应用市场都可以使用Cyclone FPGA。

Cyclone器件的性能足以和业界最快的FPGA进行竞争。

Cyclone FPGA综合考虑了逻辑、存储器、锁相环(PLL)和高级I/O接口,是价格敏感应用的最佳选择。

FPGA与硬件描述语言实验任务书3

FPGA与硬件描述语言实验任务书3
3.掌握IF-ELSE语句和CASE语句进行组合电路的设计方法。
二、实验内容:
1.设计一个3-8线译码器电路,电路的真值表如下表所示:
输入
输出
a2
a1
a0
y7
y6
y5
y4
y3
y2
y1
y0
0
0
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1.软件环境:Quartus II 12.0,Modelsim 10.1c
2.编程语言:VHDL
3.硬件环境:百科融创FPGA实验箱,FPGA为Altera公司CycloneIII系列EP3C16Q240C8
2017年5月
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
2.分别用IF-ELSE语句和CASE语句设计3-8线译码器电路;
3.比较用IF-ELSE语句和CASE语句设计的译码器综合结果是否有区别;

计算机组成原理FPGA实验指导书

计算机组成原理FPGA实验指导书

计算机组成原理FPGA实验指导书《计算机组成原理》实验指导书计算机科学与技术学院⽬录实验⼀熟悉实验平台 (3)实验⼆总线传送 (10)实验三运算器的设计与调试 (14)实验四存贮器的设计与调试 (20)实验五控制器的设计与调试 (26)附录常⽤器件简介 (30)实验⼀熟悉实验平台⼀.实验⽬的1.熟悉使⽤Verilog硬件描述语⾔2.熟悉ISE开发环境3.掌握实验箱组成4.熟悉时序发⽣器的组成原理;5.掌握数字逻辑器件Verilog语⾔的编写;⼆.实验设备1.装有ISE10.1的PC机⼀台2.EDK-3SAISE实验箱⼀台三.实验内容1.节拍信号T1—T4波形如图-1所⽰图-1 节拍时序波形图每个节拍内均包含脉冲clk_m1。

节拍信号有三种⼯作⽅式。

这三种⼯作⽅式时标信号的启动,停⽌受Button,Rstn按钮开关控制。

2.⽤Verilog语⾔实现时序代码如下:module Timeen(input Clk, //System Clock 40Mhzinput Button, // setep clockinput Rstn, // reset, low activeinput Clk_sel, // sequence timing or step timing select input Clk_sel1, output [4:1] t, // Display(T1-T4)output M1);wire Clk_m1;wire Clk_i,Clk_ii;wire PB_R;assign M1=Clk_m1;GenClk_i Clk_i_Module (.Clk_s(Clk),.Clk_i(Clk_i),.Rstn(Rstn));GenClk_ii Clk_ii_Module (.PB_R(PB_R),.Clk(Clk),.Clk_ii(Clk_ii));Debouncer Debouner_Module (.Clk_s(Clk),.PB(Button),.PB_state(),.PB_up(PB_R),.PB_down());ClkSel ClkSel_Module (.Clk_s(Clk),.Clk_i(Clk_i),.Clk_ii(Clk_ii),.Clk_m1(Clk_m1),.Clk_sel(Clk_sel),.Clk_sel1(Clk_sel1));Bit1_Display Bit1_Display_Module (.Clk_s(Clk),.Clk_m1(Clk_m1),.T(t),.Rstn(Rstn),.Clk_i(Clk_i));endmodulemodule GenClk_i(input Clk_s,output Clk_i,input Rstn);reg [24:0] Cnt;assign Clk_i= Cnt[24];always@(posedge Clk_s or negedge Rstn) beginif (!Rstn)Cnt<=0;elseCnt <= Cnt + 1;endendmodulemodule GenClk_ii(input PB_R,input Clk,output Clk_ii);reg Clk_o,Clk_o1,Clk_o2;assign Clk_ii=Clk_o2;always@(posedge Clk )beginClk_o<=PB_R;Clk_o1<=Clk_o;Clk_o2<=Clk_o1;endendmodulemodule Debouncer(Clk_s, PB, PB_state, PB_up, PB_down);input Clk_s; // "clk" 时钟信号input PB; // "PB" 有⽑刺的、异步的、低有效的按键信号output PB_state; // 当按键被按下时输出1output PB_down; // 按键被按下的瞬间输出⼀个⾼电平脉冲output PB_up; // 按键被松开的瞬间输出⼀个⾼电平脉冲// ⾸先使⽤两个触发器来同步PB信号reg PB_sync_0;always @(posedge Clk_s)PB_sync_0 <= ~PB; // 翻转PB,使之⾼有效reg PB_sync_1;always @(posedge Clk_s) PB_sync_1 <= PB_sync_0;// 声明⼀个16位的剖?reg [21:0] PB_cnt;// 当按键被按下或松开时,计数?// 当计数器计数溢出时,便认为按键的状态确定。

教学课件 硬件描述语言与FPGA设计技术(肖闽进)

教学课件 硬件描述语言与FPGA设计技术(肖闽进)
• 基于SRAM查找表的编程单元。对该类器件,编程 信息是保存在SRAM中的,SRAM在掉电后编程信 息立即丢失,在下次上电后,还需要重新载入编 程信息。因此该类器件的编程一般称为配置。大 部分FPGA采用该种编程工艺。
• 基于一次性可编程反熔丝编程单元。Actel的部分 FPGA采用这种结构。
2.7 CPLD/FPGA的编程与配置
1.3 Quartus II 设计环境
Quartus II设计工具完全支持Verilog、VHDL的设计 流程
Quartus II也可以利用第三方的综合工具,如Leonardo Spectrum、Synplify Pro、DC-FPGA,并能直接调用这些 工具
Quartus II具备仿真功能,同时也支持第三方的仿真工 具,如ModelSim。
将对CPLD的下载称为编程(Program), 对FPGA中的SRAM进行直接下载的方式
称为配置(Configure),
1.2.4编程下载与器件测试
器件测试是将含有载入了设计的FPGA或 CPLD的硬件系统进行统一测试,以便最 终验证设计项目在目标系统上的实际工 作情况,以排除错误,改进设计。
y <= d OR e ;
END ARCHITECTURE one ;
3.1 多路选择器及其VHDL描述
【例3-3】顺序语句IF_THEN_ELSE描述
ENTITY mux21a IS
PORT ( a, b, s: IN BIT;
y : OUT BIT );
END ENTITY mux21a;
解压器在内的大规模IP模块。
1.4 EDA技术开发中的IP核
IP的实际内涵的界定 1. 嵌入式应用。 2.优化设计。 3.符合IP标准。

硬件描述语言与FPGA技术实验指导书(2012版)

硬件描述语言与FPGA技术实验指导书(2012版)

《硬件描述语言与FPGA技术》实验指导书西北工业大学2012/10/10目录实验一简单的组合逻辑设计 (3)实验二简单分频时序逻辑电路的设计 (6)实验三利用条件语句实现计数分频时序电路 (9)实验四阻塞赋值与非阻塞赋值的区别 (12)实验五用always块实现较复杂的组合逻辑电路 (16)实验六在Verilog中使用函数 (20)实验七在Verilog HDL中使用任务(task) (23)实验八利用有限状态机进行时序逻辑的设计 (27)实验九利用状态机实现比较复杂的接口设计 (32)练习十利用SRAM设计一个FIFO (39)实验一简单的组合逻辑设计一、实验目的1. 学习Quartus和ModSim两种EDA工具的使用方法;2.掌握基本组合逻辑电路的实现方法;3.初步了解两种基本组合逻辑电路的生成方法;4.学习测试模块的编写;5.通过综合和布局布线了解不同层次仿真的物理意义。

二、实验内容本次实验采用Verilog HDL语言设计一个可综合的数据比较器,其功能是比较数据a与数据b的结果,如果两个数据相同,则输出结果1,否则给出结果0;并写出测试模型,使其进行比较全面的测试。

三、实验仪器、设备预装了开发工具ModelSimSE、synplify的PC机。

四、实验原理1.组合逻辑电路是指在任何时刻,输出状态只决定于同一时刻各输入状态的组合而与电路以前状态无关,而与其他时间的状态无关。

其逻辑函数如下:Li=f(A1,A2,A3……An) (i=1,2,3…m)其中,A1~An为输入变量,Li为输出变量。

2.组合逻辑电路的特点归纳如下:① 输入、输出之间没有返馈延迟通道;② 电路中无记忆单元。

3.组合逻辑设计示例:可综合的数据比较器。

它的功能是比较数据a与数据b,如果两个数据相同,则给出结果1,否则给出结果0。

描述组合逻辑时常使用assign结构。

注意equal=(a==b)?1:0,这是一种在组合逻辑实现分支判断时常使用的格式。

硬件描述语言与数字系统设计实验指导书_lab1

硬件描述语言与数字系统设计实验指导书_lab1

《信号与信息处理综合实验(FPGA部分)》实验指导书实验一FPGA使用入门一、实验目的(1)掌握ISE 13.2集成开发环境和Modelsim软件的使用方法;(2)熟悉S6 Card实验板的使用方法。

(3)掌握使用Verilog HDL语言实现常用组合逻辑和时序逻辑的方法。

(4)了解Chipscope的功能与使用方法二、实验内容(1)熟悉S6 CARD实验板;(2)熟悉ISE集成开发环境;(3)3比特加法器仿真与上板实验(4)m序列产生器仿真与在板Chipscope调试三、实验要求按下面的说明逐步操作,实验结束后需经教师或助教验收,并将工作目录压缩后重新命名,命名规则为“组号_lab1.zip(rar)”,并分别撰写实验报告,上传到ftp上的”FPGA学生作业/实验一”文件夹。

四、实验过程说明(一)熟悉S6 CARD实验板1 S6 CARD开发板整体架构板卡体积小巧,面积与身份证大小相同,故命名为S6 CARD板卡,其实物图如图1所示。

图1 S6 CARD板卡实物图S6 CARD开发板以Spartan-6系列的XC6SLX9-TQ144芯片为核心,供电、下载与调试都通过板卡自身的USB接口完成,扩展了LED、GPIO、UART以及USB-JTAG电路,结构如图2所示。

此外,S6 CARD通过USB线完成板卡供电和调试,便于使用。

图2 S6 CARD板卡结构图其中,Flash芯片使用了32Mb的SPI Flash M25P32,容量大,也适合于嵌入式系统开发。

系统时钟由外部晶振给入,频率为50MHz。

2 S6 CARD开发板驱动电路1、LED驱动电路LED是最基本的电路组件,给高电平就发光,且发光的程序和驱动电流有关。

板卡的LED 电路如图3所示。

图3 S6 CARD LED电路2、按键和拨码开关电路LED、按键以及拨码开关本质上属于同一类设备,LED为输出设备,而按键和拨码开关属于输入设备。

按键为瞬时输入设备,仅在按下时维持一个固定输入,松开则返回到固定的逻辑相反状态。

《硬件描述语言与FPGA设计技术》课件第6章 宏功能模块与IP应用

《硬件描述语言与FPGA设计技术》课件第6章 宏功能模块与IP应用

FIFO模块的仿真波形
6.2 DSP模块构建乘法器
8×8位有符号数乘法器
LIBRARY IEEE ;
USE IEEE.STD_LOGIC_1164.ALL ;
USE IEEE.STD_LOGIC_ARITH.ALL ;
ENTITY MULTI88 IS
PORT (AA,BB : IN SIGNED(7 DOWNTO 0) ;
6.1 LPM存储器设计
6.1.1 ROM模块设计 1建立初始化数据文件
初始化数据文件即写入ROM中的波形数据文件。QuartusII能接受 的LPM_ROM模块中的初始化数据文件的格式有两种: Memory Initialization File(.mif)格式 Hexadecimal (Intel-Format)File(.hex)格式。
(1)计数器或地址发生器(这里选择7位)。 (2)正弦信号数据ROM(7位地址线,8位数
据线),含有128个8位数据(一个正弦周期)。 (3)电路顶层设计模块。 (4)8位D/A(硬件系统中可用DAC0832模数
转换器件)。
正弦信号发生器结构图
正弦信号发生器顶层模块
电路模块仿真波形
6.3.2使用嵌入式逻辑分析仪测 试数据波形
(1)打开MegaWizard Plug-In Manager初始对话框。
(2)选择ROM控制线、地址 线和数据线。
(3)选择指定路径上的文件 sin2.mif。
在图 6-8 的 “Do you want to...” 栏选择 “Yes,use this file for the memory content data” 项,并按Browse钮,选择 指定路径上的文件sin2.mif。

FPGA设计实验指导书

FPGA设计实验指导书

《FPGA设计》实验指导书安全操作注意事项1、接插下载电缆前,请务必关闭开发板开关,避免损坏下载电缆或实验箱器件。

2、操作过程中应防止静电,手指不可以接触开发板的扩展口引脚。

3、保持实验室整洁。

4、小心轻放,避免不必要的硬件损伤或者人身受伤。

实验一 Quartus ii软件的操作使用一、实验目的1、熟悉Quartus II软件的使用;2、掌握用原理图输入法和硬件描述语言(Verilog HDL)两种方法来设计逻辑电路;3、通过电路的仿真及验证,进一步了解2选1多路选择器的功能;二、实验内容1、用原理图输入法来设计2选1多路选择器参照按图1-1所示来编辑完成2选1多路选择器的原理图输入,其中a、b、为数据输入端,sl为控制输入端,out为2选1多路选择器输出端。

图1-1 2选1多路选择器原理图2、用Verilog HDL硬件描述语言来设计数据选择器三、实验仪器、设备及材料电脑、EDA软件、实验箱、下载电缆。

四、实验原理2选1多路选择器的RTL图及真值表如图1-2及表1-1所示。

图1-2 2选1多路选择器的RTL图选择输入sl 输出out0 a1 b五、重点、难点本实验技术重点在于理解2选1多路选择器的功能后,用原理图输入法和硬件描述语言(Verilog HDL)两种方法来设计该逻辑电路。

六、实验步骤(一)原理图输入法的设计步骤:进入Windows 操作系统,双击Quartus II图标,启动软件。

1、单击File \ New Project Wizard菜单,输入文件名路径与设计项目的名字mux21a,点击finish, 建立设计项目。

点击Assignment \ Device菜单,选择器件(本设计选用cyclone 系列的EP4CE6E22C8)。

2、启动菜单File \ New,选择Block Diagram/Schematic File,点OK,启动原理图编辑器。

画出图1-1(在原理图空白处双击,会出现元件选择对话框,在name处输入元件名,点OK完成元件放置。

FPGA实验仪指导书(1~3章加附录)

FPGA实验仪指导书(1~3章加附录)

第一章概述YD-FPGA实验仪是由湖南远达电子有限公司设计的YD系列FPGA实验仪之一,是一种功能强大的现场可编程逻辑器件应用技术学习、开发工具,为电子爱好者进入可编程逻辑器件应用设计领域铺造了一条捷径。

YD-FPGA实验仪为用户提供了一个对可编程逻辑器件进行学习的好平台,实验仪除了用Xilinx公司的SpartanII系列的XC2S100E的FPGA芯片制作成子板作为实验仪的控制核心,还设计了母板向用户提供了外围器件和设备接口,可使用户快速掌握FPGA的原理及其实用接口技术。

一、YD-FPGA实验仪1.1 功能特点(1)YD-FPGA实验仪编程简单,程序仿真和下载也十分方便,特别是对设计者来说缩短了设计周期,提高了设计的灵活性和产品的精度。

(2)板上集成众多常用接口电路:2KSRAM芯片24C02、8个LED显示、8个按键,4个8段数码管与8键拨盘开关组成的键盘/显示电路;RS232串行通讯接口电路(MAX232);串行I2C总线接口电路(24C02);8位串行A/D转换电路(TLC549);8位串行D/A转换器(DAC0832);字符液晶显示屏接口电路;无源蜂鸣器电路(BUZZER);这些实用接口电路能够提供用户领先的应用设计方法;(3)提供实验电路的各部分原理图,提供各个实验课题的程序源代码,浅显易懂,使用户快速掌握FPGA器件的设计方法;(4)利用YD-FPGA实验仪引出的信号,可以连接自己的实际应用系统。

(5)YD-FPGA实验仪分子板和母板,子板可以解下来直接作为产品的设计核心。

(6) 本实验仪配置了E2PROM芯片XC18V02,实验仪可以掉电脱机运行。

1.2 实验课题YD-FPGA实验仪集成有易用的软件资源和丰富的硬件资源,可向使用者提供多种实验课题:(1)设有2位独立按键、8个LED,实现I/O接口实验;(2)设有4个8段数码管,8个拨盘按键,实现键盘控制实验;(3)串口扩展RS232通讯电路,实现PC与FPGA的通讯实验;(4)扩展I2C接口的2KRAM芯片24C02,实现I2C接口实验和外部存储器实验;(5)扩展8位串行A/D转换电路TLC549,实现A/D转换实验;(6)扩展8位串行D/A转换电路DAC0832,实现D/A转换实验;(7)扩展字符液晶显示屏接口,实现液晶显示实验;(8)扩展1个无源蜂鸣器BUZZER,实现音乐输出、PWM输出实验;(9)FPGA实验仪资源丰富,利用它可以模拟实际运行目标,实现各系统的功能设计。

FPGA实验指导书

FPGA实验指导书
(b)新建一个图形编辑区,双击空白处,在默认的目录下就会有刚刚创建的模块名,双击该模块名XADD1,则在新建的图形编辑区将会有一位全加器的模块出现,该模块的使用与其它库中的符号(symbol)使用方法相同。复制四个,调入输入、输出(input、output),连线如下图2-10所示:
图2-10利用一位全加器设计四位全加器
图2-14利用Pin/Location/Chip进行I/O锁定(1)
以s0的锁定为例介绍跳出界面的各部分功能,如下图所示:
图2-15利用Pin/Location/Chip进行I/O锁定(2)
Node Name框的使用:该框中输入将要锁定的I/O的名称如S0,如果需要查询输入、输出等类型,可以单击Search按扭,跳出的对话框如下图所示。
2)注意学习软件与动手练习相配合,只有多动手设计与调试才能真正掌握设计思想与设计方法。
3)多参考相关的书籍或MAX+PLUSⅡ的帮助系统。
4)在学习过程中要与数字电路、计算机语言等课程进行比较,找出相同点与不同点,进行比较、类比地学习。
5)概念的区分与使用:
器件与符号:如在数字电路中7400为一个器件,在MAX+PLUSⅡ中器件一般被CPLD/FPGA器件专用,而MAX+PLUSⅡ中调用的中小规模的器件都称为符号。本文中有时出于习惯,也会在该使用“符号”的地方而使用“器件”名称,因此在碰到像“器件”、“符号”这样的词,一定要注意上下文的联系。
在Chip Resource组框中选择合适的类型,如本例s0选择Pin单选扭,并在输入框中输入104,表示s0被锁定到特定CPLD器件的104号管脚。点击ADD按扭即可完成操作。
图2-7鼠标双击空白处后的编辑界面
3.MAX+USⅡ的符号库

教学大纲-FPGA及硬件描述语言.doc

教学大纲-FPGA及硬件描述语言.doc

《FPGA与硬件描述语言》教学大纲课程名称:FPGA与硬件描述语言英文名称:FPGA and hardware description language课程类别:实践教学课课程编号:学分:4学时:68课程简介:FPGA与硬件描述语言该课程主要讲授数字逻辑电路的基本知识、基本理论和基本分析、设计方法,并利用现代EDA技术的verilog和Multisim进行数字逻辑电路分析与设计,它起到由专业基础课向专业课过渡的承上启下的作用。

本课程的教学任务是通过本课程的理论学习,使学生掌握有关数字逻辑的基本理论,熟悉数字逻辑电路基本器件的电路结构、功能和使用方法,掌握数字逻辑电路的分析方法和设计方法。

通过课堂教学演示环节及课程设计,使学生掌握利用Verilog和EDA 工具进行数字逻辑电路设计的方法.课程内容:1.概论:EDA设计方法以及FPGA/CPLD特点2.层次建模的概念3.基本概念4.模块和端口5.门级建模6.数据流建模7.行为级建模8.任务与函数9.实用建模技术10.时序和延迟11.开关级建模12.用户自定义原语先修课程:《C语言程序设计》、《数字逻辑电路》适用专业:电子信息技术教材(暂定):《Verilog HDL数字设计与综合》作者:(美)Sanir Palnitkar,译者:夏宇闻胡燕祥刁岚松电子工业出版社参考教材:1、《Verilog HDL数字设计与综合(第二版)》,电子工业出版社夏宇闻2、《电子工程师创新设计必备宝典系列之FPGA开发全攻略》,张国斌3、《Verilong数字系统设计教程》,北航出版社夏宇闻开课学院:信息技术学院具体课程内容与安排第一章概述第一节课程介绍第二节学习重点及学习方法第三节EDA技术及发展与实现目标第四节硬件描述语言及IEEE标准第五节EDA设计流程及优点第六节常用EDA工具第七节电子设计自动化系统软件与器件第八节数字系统设计方法第九节九节FPGA/CPLD的特点及发展(一)采用多媒体,讲解与演示相结合(二)内容及基本要求主要内容:【重点掌握】:FPGA/CPLD的优缺点,采用硬件描述语言(Verilog HDL)的设计流程。

EDA技术实验指导书2012版

EDA技术实验指导书2012版

EDA技术实验指导书石河子大学信息科学和技术学院二O 一二年十月前言EDA(Electronic Design Automation:电子设计自动化)技术是现代电子工程领域的一门新技术.它提供了基于计算机和信息技术的电路系统设计方法。

EDA技术的发展和推广使用极大地推动了电子工业的发展.EDA教学和产业界的技术推广是当今世界的一个技术热点,EDA技术是现代电子工业中不可缺少的一项技术。

近年来,在高校学生中也经常开展大规模的EDA竞赛,掌握EDA技术是通信电子类高校学生就业的一个基本条件。

ALTERA公司是20世纪90年代以后发展很快的最大可编程逻辑器件供应商之一。

它开发的MAX+PlusII是业界公认的最优秀的CPLD 开发平台之一,在实际中被广泛地使用。

EDA关键技术之一就是要求用形式化方法来描述数字系统的硬件电路,即要用所谓硬件描述语言来描述硬件电路。

所以硬件描述语言以及相关的仿真、综合等技术的研究是当今EDA领域的一个重要课题。

而由美国国防部开发的VHDL语言以它面向多层次、多领域的优点,成为业界一致认同的标准硬件电路语言,并在1987年12月由IEEE标准化。

它的出现为EDA的普及和推广奠定了坚实的基础。

有关统计资料表明,VHDL语言业已被广大设计者所接受,据称已有90%的设计者正在使用或即将使用VHDL语言来设计数字系统。

另外,众多的CAD厂商纷纷使自己新开发的电子设计软件和VHDL语言兼容。

由此可见,使用VHDL语言设计数字系统是电子设计技术的必然趋势。

由于硬件电路语言自身的特点,要利用VHDL语言进行设计,不仅需要熟练掌握语言本身,更要有深厚的电子电路基础以及其他的背景知识,只有将VHDL语言结合到实际的领域中进行设计才能发挥它的巨大优势。

作者结合理论知识讲授和实践教学改革及自身经验编写此书,其目的就是向具有一定电子电路基础以及初步掌握VHDL的设计人员介绍VHDL语言的基本框架和编程技巧,以及如何将VHDL语言结合到相应领域中进行设计,力图使读者摆脱传统的人工设计方法的框框,使学习VHD语言设计的读者能从我们的切身经验中受益,明白如何将VHDL使用于实际中,少走弯路,从而使数字系统设计水平以及设计理念上升到一个新的阶段。

1 FPGA开发流程与硬件描述语言概述1

1 FPGA开发流程与硬件描述语言概述1

FPGA与CPLD的区别
FPGA为分段式布线,CPLD为连续式布线。 FPGA器件在每次编程时实现的逻辑功能一样, 但走的路线不同,因此延时不易控制,要求开 发软件允许工程师对关键的路线给予限制。 CPLD每次布线路径一样,CPLD的连续式互连 结构利用具有同样长度的一些金属线实现逻辑 单元之间的互连。连续式互连结构消除了分段 式互连结构在定时上的差异,并在逻辑单元之 间提供快速且具有固定延时的通路。CPLD的延 时较小。
设计流程(4)--设计处理
设计处理是FPGA设计 中的核心环节。在设计 处理过程中,编译软件 对设计输入文件进行逻 辑简化、综合优化和适 配,最后产生编程用的 编程文件。
语法检查和设计规则检查 逻辑优化和综合 适配和分割 布局和布线
设计流程(5)--时序仿真
时序仿真又称后仿真或延时仿真。 由于不同器件的内部延时不一样,不同的布局布线方案也 给延时造成不同的影响,因此在设计处理以后,对系统和 各模块进行时序仿真,分析其时序关系,估计设计的性能, 以及检查和消除竞争冒险等是非常有必要的。 实际上这也是与实际器件工作情况基本相同的仿真。
FPGA与CPLD的区别
一般情况下,FPGA集成度更高,内嵌资 源丰富,更适合用于大型设计。 CPLD集成度较低,但使用相对简单,适 合于中小型设计。


传统设计方法的困境及其相应解决方案 PLD发展简史 FPGA基本结构 FPGA开发流程 FPGA设计中的层次关系与转换关系 硬件描述语言及其在FPGA开发中的作用


传统设计方法的困境及其相应解决方案 PLD发展简史 FPGA基本结构 FPGA开发流程 FPGA设计中的层次关系与转换关系 硬件描述语言及其在FPGA开发中的作用

硬件描述语言与EDA技术实验指导书(15年)剖析

硬件描述语言与EDA技术实验指导书(15年)剖析

微电子学课程设计指导书硬件描述语言与EDA 技术实践(编写人陈先朝)第一部分:组合逻辑电路设计、仿真和下载验证实践项目性质:综合训练所涉及课程:电路分析、数字电子技术基础、硬件描述语言与EDA 技术一、实践目的:1. 学习和初步掌握QuartusII 软件的基本操作;2. 通过3-8译码器的设计,掌握组合逻辑电路的设计方法,掌握其静态测试的方法;3. 初步了解可编程器件设计的全过程,掌握原理图的设计方法。

二、实践步骤:说明:本实践步骤较概要地介绍altera 公司QuartusII9.1版本软件的基本操作步骤,由于版本的不同,所介绍的界面可能会与其他版本的界面有所不同,请注意甄别。

下载所选的芯片是附录Ⅳ的EL-EDA_VI型实验箱芯片,不同的实验箱,芯片是不一样的,当然分配管脚的信息也不一样,设计时要先确认用哪一种实验箱,本实践室共有4种实验箱(详见附录Ⅱ~Ⅴ。

读者在通过本实践后,将对QuartusII 软件及CPLD/FPGA的设计与应用有一个比较完整的概念和思路。

但因篇幅有限,仅仅介绍了QuartusII 软件的最基本、最常用的一些基本功能,更详细的使用,请参阅该软件的专门书籍。

相信读者在熟练使用本软件以后,你定会发现该软件还有好多非常方便、快捷、灵活的设计技巧与开发功能。

1、打开QuartusII 软件。

63微电子学课程设计指导书2、选择路径。

选择File/New Project Wizard,指定工作目录,指定工程和顶层设计实体名称。

每设计一个项目,都应指定一个相应的目录,便于管理,因为在后面的编译、仿真与验证过程中,会产生许多相关文件。

单击“Next ”。

注意:工作目录名、工程名、文件名不能有中文,也不能与库中已有的基本器件名相同,否则编译会出错。

3、添加设计文件。

如果有已经建立好的Verilog 或者原理图等文件可以在File name中选择路径然后添加,或者选择Add All 添加所有可以添加的设计文件(.VHDL ,.Verilog ,原理图等)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《硬件描述语言与FPGA技术》实验指导书西北工业大学2012/10/10目录实验一简单的组合逻辑设计 (3)实验二简单分频时序逻辑电路的设计 (5)实验三利用条件语句实现计数分频时序电路 (8)实验四阻塞赋值与非阻塞赋值的区别 (11)实验五用always块实现较复杂的组合逻辑电路 (15)实验六在Verilog中使用函数 (19)实验七在Verilog HDL中使用任务(task) (22)实验八利用有限状态机进行时序逻辑的设计 (26)实验九利用状态机实现比较复杂的接口设计 (32)练习十利用SRAM设计一个FIFO (39)实验一简单的组合逻辑设计一、实验目的1. 学习Quartus和ModSim两种EDA工具的使用方法;2.掌握基本组合逻辑电路的实现方法;3.初步了解两种基本组合逻辑电路的生成方法;4.学习测试模块的编写;5.通过综合和布局布线了解不同层次仿真的物理意义。

二、实验内容本次实验采用Verilog HDL语言设计一个可综合的数据比较器,其功能是比较数据a与数据b的结果,如果两个数据相同,则输出结果1,否则给出结果0;并写出测试模型,使其进行比较全面的测试。

三、实验仪器、设备预装了开发工具ModelSimSE、synplify的PC机。

四、实验原理1.组合逻辑电路是指在任何时刻,输出状态只决定于同一时刻各输入状态的组合而与电路以前状态无关,而与其他时间的状态无关。

其逻辑函数如下:Li=f(A1,A2,A3……An) (i=1,2,3…m)其中,A1~An为输入变量,Li为输出变量。

2.组合逻辑电路的特点归纳如下:① 输入、输出之间没有返馈延迟通道;② 电路中无记忆单元。

3.组合逻辑设计示例:可综合的数据比较器。

它的功能是比较数据a与数据b,如果两个数据相同,则给出结果1,否则给出结果0。

描述组合逻辑时常使用assign结构。

注意equal=(a==b)?1:0,这是一种在组合逻辑实现分支判断时常使用的格式。

模块源代码://--------------- compare.v -----------------module compare(equal,a,b);input a,b;output equal;assign equal=(a==b)?1:0; //a等于b时,equal输出为1;a不等于b时,//equal输出为0。

endmodule测试模块源代码:`timescale 1ns/1ns`include "./compare.v"module comparetest;reg a,b;wire equal;initialbegina=0;b=0;#100 a=0; b=1;#100 a=1; b=1;#100 a=1; b=0;#100 $stop;endcompare compare1(.equal(equal),.a(a),.b(b));endmodule仿真波形如下:五、实验步骤1.建立工程文件,编写模块源码和测试模块,要求测试模块对源文件进行比较全面的测试;2.编译源码和测试模块,用测试模块对源文件进行测试,并进行仿真;3.观察综合后生成的文件和源文件的不同点和相同点。

4. 综合时采用不同的FPGA器件,观察综合后的结果有什么不同。

六、实验报告要求1.要求实验报告中有编写模块源码和测试模块;2.要求实验报告中有综合后RTL图形;3.要求实验报告中有仿真后的波形;4. 对课后思考题进行分析说明。

七、实验注意事项1.采用Altera公司的Cyclone II系列的EP2C35型FPGA作为建立工程、代码编译、综合库时使用的库器件;2.综合使用synplify工具,布局布线使用quartus II自带工具;3.仿真使用ModelSim工具。

八、思考题1.课本练习一的测试方法二中,第二个initial块有什么用?它与第一个initial 块有什么关系?2.如果在第二个initial块中,没有写出#10000或者$stop,仿真会如何进行?3.比较两种测试方法,哪一种更全面?实验二简单分频时序逻辑电路的设计一、实验目的1.掌握条件语句在简单时序模块设计中的使用;2. 掌握verilog语句在简单时序模块设计中的使用;3.学习在Verilog模块中应用计数器;4.学习测试模块的编写、综合和不同层次的仿真。

二、实验内容1.使用always块和@(posedge clk)或@(negedge clk)的结构来表述时序逻辑,设计1/2分频的可综合模型。

得到如下波形图:2.对模块进行RTL级仿真、综合后门级仿真,布局布线仿真;三、实验仪器、设备预装了开发工具synplify、ModelSimSE的PC机。

四、实验原理1.使用always过程赋值语句对上升沿进行响应,当时钟信号上升沿到来时,系统判断清零信号是否为0,如果为0,则clk_out信号清零,否则clk_out信号翻转clk_out=~clk_out。

2.系统1/2分频原理:一个时钟周期的上升沿时刻,若清零信号reset不为0,输出信号跳变一个周期,输入时钟信号需经过两个周期的上升沿,输出周期为输入周期的两倍,输出频率为输入频率的1/2,这样就完成了1/2分频的效果。

下面是一个可综合的1/2分频器模型。

//half_clk.v---------------------------------------module half_clk(reset,clk_in,clk_out);input clk_in,reset;output clk_out;reg clk_out;always @(posedge clk_in)beginif(!reset) clk_out=0;elseclk_out=~clk_out;endendmodule3.测试模块中,输入周期为200ns的时钟信号,初始化语句initial将时钟信号置0,清零信号先置1,经过10ns置0,开始清零,再经过110ns后置1,开始测试。

设定测试循环时间为100ms,经过100ms以后测试停止。

测试模块的源代码://top.v--------------------------------------------`timescale 1ns/100ps`define clk_cycle 50module top;reg clk,reset;wire clk_out;always #`clk_cycle clk=~clk;initialbeginclk=0;reset=1;#10 reset=0;#110 reset=1;#100000 $stop;endhalf_clk m0(.reset(reset),.clk_in(clk),.clk_out(clk_out));endmodule五、实验步骤1.建立工程文件,编写模块源码和测试模块,要求测试模块能对源文件进行比较全面的测试。

2.编译源码和测试模块,用测试模块对源文件进行测试,并综合仿真。

得到波形图。

3.观察综合后生成的文件和源文件的不同点和相同点。

4.记录数据并完成实验报告。

六、实验报告要求1.要求实验报告中有编写模块源码和测试模块。

2.要求实验报告中有仿真后的波形。

3.实验报告中对思考题进行分析说明。

七、实验注意事项1.注意在always块中,被赋值的信号都必须定义为reg型,这是由时序逻辑电路的特点所决定的。

2.对与reg型数据,如果未对它进行赋值,仿真工具会默认它为不定态。

八、思考题1.如果没有reset信号,能否控制2分频clk_out信号的相位?2.只用clk时钟沿的触发(即不用2分频产生的时钟沿)如何直接产生4分频、8分频、或者16分频的时钟?3.如何只用clk时钟沿的触发直接产生占空比不同的分频时钟?实验三利用条件语句实现计数分频时序电路一.实验目的:1.掌握条件语句在简单时序模块设计中的使用;2.掌握最基本时序电路的实现方法;3.学习在Verilog模块中应用计数器;4. 学习测试模块的编写、综合和不同层次的仿真。

二.实验内容:1.复习课本,熟悉条件语句的使用方式;2.建立工程并编写源代码;3. 综合并布局布线仿真并分析always语句在时序逻辑中的作用;4. 学习测试模块的编写、综合和仿真。

图3.1 技术分频器波形三.实验设备:预装了Active-HDL6.2及Synplify7.0的PC机。

四、实验原理1.复位信号reset为低电平时,对电路中的寄存器进行复位,F输出低电平信号。

利用分频器的设计原理,在程序中设计一个计数器,在时钟的上升沿计数,当计数值为19时(此时时钟已经产生了20个上升沿),输出信号F翻转为高电平,高电平的持续时间为10us。

之后,复位信号再次将F复位为低电平,低电平的持续时间为10us。

2.条件语句示例:可综合风格的分频器。

它的功能是将10M的时钟分频为500K的时钟。

基本原理与1/2分频器是一样的,但是需要定义一个计数器,以便准确获得1/20分频。

模块源代码:// --------------- fdivision.v -----------------------------module fdivision(RESET,F10M,F500K);input F10M,RESET;output F500K;reg F500K;reg [7:0]j;always @(posedge F10M)i f(!RESET) //低电平复位。

beginF500K <= 0;j <= 0;ende lsebeginif(j==19) //对计数器进行判断,以确定F500K信号是否反转。

beginj <= 0;F500K <= ~F500K;endelsej <= j+1;endendmodule测试模块源代码:--------------fdivision_top.v---------------`timescale 1ns/100ps`define clk_cycle 50module division_top;reg F10M,RESET;wire F500K_clk;always #`clk_cycle F10M=~F10M;initialbeginRESET=1;F10M=0;#100 RESET=0;#100 RESET=1;#10000 $stop;endfdivision fdivision(.RESET(RESET),.F10M(F10M),.F500K(F500K_clk));endmodule五、实验步骤1.建立工程文件,编写模块源码和测试模块,要求测试模块能对源文件进行比较全面的测试;2.编译源码和测试模块,用测试模块对源文件进行测试,并综合仿真;3.观察综合后生成的文件和源文件的不同点和相同点;4. 综合时采用不同的FPGA器件,如Altera公司的Cyclone II系列和Stratix III系列,观察综合后的结果有什么不同。

相关文档
最新文档