第一篇:教学大纲-FPGA及硬件描述语言
《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设计流程方法及数字系统设计方法的比较和优点,自顶向下的设计方法; 【了解】:EDA工具的发展以及特点,【一般了解】:EDA技术及发展
第二章 层次建模的概念
第一节 自底向上和自顶向下设计方法 第二节 模块的基本概念 第三节 四种不同的描述方式 第四节 逻辑仿真的构成
(一)采用多媒体,讲解与演示相结合
(二)内容及基本要求 主要内容: 【重点掌握】:数字电路自顶向下设计方法以及模块相关内容的学习; 【难点】:自顶向下以及自底向上的设计思路;
第三章 verilog基本概念
第一节 模块的结构 第二节 数据类型及其常量和变量 第三节 运算符及表达式
(一)采用多媒体,讲解与演示相结合
(二)内容及基本要求
主要内容:verilog基本语法和结构 【重点掌握】:基本语法和概念以及词法约定 【掌握】:各种数据类型 【了解】:系统任务和编译指令 【一般了解】: 【难点】:各类寄存器数据类型
第四章 模块和端口
第四节
模块 第五节
端口列表 第六节
端口声明
第四节 端口连接规则 第七节
端口与外部信号的连接 第八节
层次命名
(一)采用多媒体,讲解与实验相结合
(二)内容及基本要求
主要内容:verilog的模块定义、组成部分以及端口列表以及声明和端口连接。
【了解】:verilog标示符的层次引用 【重点掌握】:模块各部分的定义和应用 【难点】:端口连接的命名规则
第五章 门级建模
第一节
门的类型 第二节 门延迟
(一)采用多媒体,讲解与实验相结合
(二)内容及基本要求
主要内容:verilog如何用门级对实际电路做硬件电路建模 【重点掌握】:门的类型与延迟,门级建模的具体设计电路 【掌握】: 上升、下降和关断延迟 以及最小/典型/最大延迟 【难点】:门级建模的具体电路实现
第六章 数据流建模
第一节 连续赋值语句assign 第二节 延迟
第三节 表达式、操作符和操作数 第四节 操作符类型
(一)采用多媒体,讲解与演示相结合
(二)内容及基本要求
主要内容:连续赋值语句以及使用数据流结构对实际电路的数字电路建模。【重点掌握】:连续赋值的定义及应用;操作符的类型 【掌握】: 延迟的概念和应用 【难点】:用数据流语句设计电路,掌握门级建模与数据流建模的区别
第七章 行为级建模
第一节 结构化过程语句 第二节 过程赋值语句 第三节 条件语句 第四节 多路分支语句
第五节 循环语句
第六节 顺序块和并行块 第七节 生成块
(一)采用多媒体,讲解与实验相结合
(二)内容及基本要求
主要内容:行为级建模的语法以及结构 【重点掌握】: 在实际电路中进行行为级建模以及时序控制机制 【掌握】:行为级建模的语法和语句,always、initial,阻塞和非阻塞以及 4 过程性赋值语句。
【难点】:行为级建模的具体实现
第八章 结构语句、系统任务、函数语句和显示系统任务
第一节 结构说明语句 第二节 任务和函数语句 第三节 其他任务和函数语句
(一)采用多媒体,讲解与演示相结合
(二)内容及基本要求
主要内容:任务与函数的定义 区别以及应用 【重点掌握】:任务和函数语句的使用 【掌握】: 模块、任务、函数和命名块定义和联系,任务与函数所需要的条件。
【难点】:任务和函数语句的使用
第九章 实用建模技术
第一节 过程连续赋值 第二节 改写(覆盖)参数
第三节 条件编译和执行 第四节 时间尺度
第五节 常用的系统任务
(一)采用多媒体,讲解与演示相结合
(二)内容及基本要求 主要内容: 【重点掌握】:assign deassign force 和release的定义和使用 【掌握】:在模块调用时用defparam语句重新定义参数值 【了解】:认识和理解系统任务,如文件输出、显示层次、选通显示、随机数生成、存储器初始化和值变转储等系统任务 【一般了解】: 【难点】: 条件编译和verilog描述部件的执行。
第十章 时序和延迟
第一节 延迟模型 第二节 路径延迟建模 第三节 时序检查
第四节 延迟反标注
(一)采用多媒体,讲解与演示相结合
(二)内容及基本要求 主要内容: 【重点掌握】:如何在仿真过程中用specify块设置路径延迟 【掌握】:延迟模型的类型和定义 【了解】:时序检查定义系统任务 【一般了解】: 延迟反标注 【难点】: 路径延迟建模的连接
第十一章 开关级建模
第一节:开关级建模元件
主要内容:开关级建模的基本知识 【一般了解】:仅作大概了解 【难点】:
第十二章 用户自定义原语
第一节:UDP的基本知识 第二节:表示组合逻辑的UDP 第三节:表示时序逻辑的UDP 第四节:UDP表中的缩写符号 第五节:UDP设计指南 主要内容:
【重点掌握】编写时序和组合逻辑UDP: 【难点】:UDP设计的原则以及与门级建模的区别
第十三章 编程语言接口 第一节:PLI的使用
第二节:PLI任务的连接和调用 第三节:内部数据表示 第四节:PLI库子程序 主要内容: 【重点掌握】:如何在仿真中使用任务和函数 【难点】:用户如何创建自定义系统任务和函数,6 第十四章 使用vrilog进行逻辑综合
第一节:什么是逻辑综合
第二节:逻辑综合对数字设计行业的影响 第三节:verilogHDL综合 第四节:逻辑综合流程 第五节:门级网表的验证 第六节:逻辑综合建模技巧 第七节:时序电路综合举例
主要内容:了解逻辑综合的方法和问题。【了解】:逻辑综合编写RTL的技巧 【一般了解】: 逻辑综合的概念和优点 【重点掌握】:可综合的结构和操作符以及逻辑综合的最佳门级网表分隔技术 【难点】:使用逻辑综合进行组合电路和时序电路的设计
三、课程考核
(一)基本要求及比例:考试是对学生掌握知识水平的检验,重点掌握内容占考试内容的70%、掌握内容占20%、了解及一般了解内容占10%。
(二)成绩构成与说明: 总评成绩 =平时学习表现(10%)+上机实验(20%)+实训项目(20%)+期末考试成绩(50%)
期末考试:
考试形式:上机闭卷考试 时间长度(120分钟)
制定人:贾政亚
审定人:
批准人:
日
期: 2014年10月1日
第二篇:FPGA教学大纲
四 川 大 学 锦 城 学 院
本科课程《现场可编程逻辑门阵列FPGA》
电子类专业教学大纲
一、课程基本信息
课程名称(中、英文):《现场可编程逻辑门阵列FPGA》, Field Programmable Gate Array 课程类别:必修专业课
学时:
学分:2
二、预前知识
数字电子技术基础
三、课程目的及要求
1.了解FPGA的应用场合、发展历程、主要厂家。2.熟悉典型FPGA的基本结构。
3.掌握FPGA设计流程及其中涉及到的重要概念与工具软件。4.熟练掌握可综合的Verilog语法语句。
5.掌握常用的基本电路结构,并能用Verilog语言进行描述。
四、教学内容及进度
第1章 课程简介(本章2课时)
掌握FPGA的概念、用途及生产厂家,掌握FPGA的学习方法。重点:FPGA的学习方法 难点:芯片可编程的理解 1.什么是FPGA 2.FPGA有何用途 3.为什么要学习FPGA 4.如何学习FPGA 第二章 可编程逻辑器件基础(本章2课时)
掌握与或阵列及查找表用于实现逻辑函数的方法,了解基于与或阵列结构可编程逻辑器件的发展历程,掌握典型FPGA的基本结构及使用上的特点,了解FPGA的发展趋势。
重点:与或阵列及查找表用于实现逻辑函数 难点:典型FPGA的基本结构 1.知识准备:与或阵列、查找表 2.可编程逻辑器件结构发展历程 3.FPGA结构介绍
第3章 硬件描述语言基础(本章2课时)
掌握硬件描述的思想,了解常用的硬件描述语言及Verilog的历史,掌握可综合的概念及对应的设计思路,掌握数字芯片系统结构及自顶向下分层设计的方法,掌握Verilog描述程序的基本结构及Verilog基本语法。
重点:数字芯片系统结构及Verilog基本语法 难点:可综合的理解
1.硬件描述语言及Verilog简介 2.可综合简介
3.自顶向下分层设计的思路 4.Verilog基本语法
第4章 Verilog基本描述语句(本章4课时)
掌握常用的可综合Verilog描述语句:always过程语句;串行块begin-end;连续赋值 assign;过程赋值 =、<=;条件语句if-else、case;循环语句for 重点:常用的可综合Verilog描述语句
难点:阻塞赋值与非阻塞赋值的区别,顺序执行与并发执行的区分 1.always过程语句 2.串行块begin-end 3.连续赋值 assign 4.过程赋值 =、<= 5.条件语句if-else、case 6.循环语句for 第5章 运算符及表达式(本章4课时)
掌握Verilog中注释的格式;掌握Verilog中整数常量的表示法;掌握Verilog中常用的可综合运算符的使用:逻辑运算符、关系运算符、相等与全等运算符、位运算符、归约(缩减)运算符、移位运算符、条件运算符、连接(位拼接)运算符、算术运算符 重点:常用的可综合运算符的使用
难点:各运算符的优先级别及对有符号数和无符号数处理的差别 1.注释的格式 2.整数常量表示法 3.逻辑运算符 4.关系运算符 5.相等与全等运算符 6.位运算符
7.归约(缩减)运算符 8.移位运算符 9.条件运算符
10.连接(位拼接)运算符 11.算术运算符
第6章 基本电路设计(本章2课时)
掌握电路描述方法,掌握按端口位置对应及按端口名称对应的模块例 化方式,掌握常用基本电路的结构及描述方法 重点:常用基本电路的结构及描述方法
难点:按端口位置对应及按端口名称对应的模块例化方式
1.电路描述方法,按端口位置对应及按端口名称对应的模块例化方式 2.2选1多路选择器 3.优先编码器 4.多路选择器 5.译码器 6.D触发器 7.移位寄存器 8.上升沿检测 9.下降沿检测 10.计数器
11.两级单时钟使能计数器结构
第7章 有限状态机设计(本章2课时)
掌握状态机设计及描述方法,掌握起始状态、剩余状态的处理,掌握各状态编码方式之间的差别及各自的优缺点。重点:状态机设计及描述方法
难点:格雷码及“one-hot”状态值编码 1.有限状态机介绍及其优点 2.状态机设计思路 3.起始状态处理 4.状态编码方式 5.剩余状态与容错技术
第8章 双向端口及存储器(本章2课时)
掌握双向端口的定义及使用,掌握使用D触发器组及调用库单元实现 存储器的描述方式。重点:存储器的描述 难点:双向端口的使用 1.双向端口的定义及使用 2.存储器描述方式
第9章 设计方法与技巧(本章4课时)
掌握可编程逻辑设计的基本原则,掌握可编程逻辑设计常用设计思想和技巧,掌握良好的编码风格。重点:时钟的最小周期定义 难点:流水线、寄存器配平1.可编程逻辑设计的基本原则 2.可编程逻辑设计常用设计思想和技巧 3.Altera公司推荐的编码风格 4.面积优化 5.速度优化
五、教材
《CPLD/FPGA与ASIC设计实践教程》 主编:陈 赜
编著:朱如琪、罗 杰、王建明、鲁 放 出版社:科学出版社 出版日期:2005-8 书号:ISBN-978-7-03-016036-2/TP.332.1
六、主要参考资料
[1] 陈云洽,CPLD应用技术与数字系统设计,北京:电子工业出版社,2003 [2] 黄智伟,FPGA系统设计与实践,北京:电子工业出版社,2005 [3] 李国丽,EDA与数字系统设计,北京:机械工业出版社,2004 [4] 王金明,数字系统设计与Verilog HDL,北京:电子工业出版社,2002
七、成绩评定
学科成绩总分100分:
期末闭卷考试,考查学生对基本理论、能力的掌握程度,100分,占70%
平时成绩100分(包括考勤,课堂提问,作业)占
30%
第三篇:《硬件课程设计》教学大纲(范文)
《硬件课程设计》教学大纲
一、课程名称(中、英文):
中文名称:硬件课程设计
英文名称:Course Exercise of Hardware Design
二、课程编码:
三、课程性质:
必修
四、学时学分
培养计划学时:2W 总学分:2 开课学期:本科第六学期
五、适用专业
电子信息工程、通信工程专业。
六、本实验课的配套教材、讲义与指导书
七、课程任务与目的
硬件课程设计是学生必修的实践性教学环节。硬件课程设计应使学生较系统地完成电子系统设计从选题、方案论证、电路设计、电路实现、装配调试、系统测试、总结报告等基本过程,加深对模拟电路、数字逻辑电路、通信电子电路、微机原理等相关课程理论知识的分析理解。通过实践引导学生由原理分析向工程设计过渡,掌握硬件系统设计的基本方法和一般规则,提高综合应用能力。同时培养学生的创新思维和实践能力,发挥自我能动性和创造力,为后续专业课程的学习打下坚固的基础。
八、先修课程
《模拟电路》、《数字电路与逻辑设计》、《通信电子电路》、《微机原理》、《微机原理实验》、、《电子线路设计•测试•实验》。
九、开课方式与基本要求
1.开课单位:全系各研究中心及实验室,实验中心。
2.课程实施形式:集中讲座与开放实验相结合。集中讲座4~8学时,内容包括硬件设计方法、规范、工具、报告文档整理等。开放实验时间段为一学期,学生自由安排时间,完成自已选定的硬件课程设计题目。开放实验可在各中心科研实验室进行,也可在实验中心预约时间。
3.选题原则:面向全系教师征集选题。选题应达到本课程的教学基本要求,与科研、教学、实验室建设等实际任务相结合,特别注意培养学生综合应用所学硬件方面知识。课题难度和份量要适当,使学生在规定的时间内工作量饱满,经努力能完成任务。
4.该课程在实施中可配合校内外各类设计竞赛:如全国大学生电子设计竞赛、嵌入式系统竞赛和挑战杯等一并进行。
十、考核方式与评分方式
学生必须在规定的时间内完成其设计内容,并以报告和实物运行参加课程考核,考核按完成质量以及创新性表现综合给分。评分为优、良、中、通过、不通过五个等级。
第四篇:硬件描述语言范例
硬件描述语言语言设计实例 1、8-3编码器
module encode_verilog(a ,b);input [7:0] a;//编码器输入 wire [7:0] a;output [2:0] b;//编码器输出 reg [2:0] b;always @(a)
begin
case(a)//编码器某一输入端口为高电平输出相应的3位二进制数
8'b0000_0001 : b<=3'b000;//0
8'b0000_0010 : b<=3'b001;//1
8'b0000_0100 : b<=3'b010;//2
8'b0000_1000 : b<=3'b011;//3
8'b0001_0000 : b<=3'b100;//4
8'b0010_0000 : b<=3'b101;//5
8'b0100_0000 : b<=3'b110;//6
8'b1000_0000 : b<=3'b111;//7
default : b<= 3'b000;//其他情况编码器输出3’b000
endcase
end endmodule 2、8-3优先编码器
module p_encode_verilog(A ,I ,GS ,EO ,EI);//编码器以低为有效 input [7:0] I;//编码器输入 wire [7:0] I;input EI;//输入使能,EI=0时,编码器正常工作 wire EI;
output [2:0] A;//编码器输出 reg [2:0] A;
output GS;//优先编码器工作状态标志,编码器的八个输入端有信号输入时,GS=0 reg GS;
output EO;//输出使能,reg EO;
always @(I or EI)if(EI)//使用if、else if表明条件的优先级顺序
begin
A <= 3'b111;
GS <= 1;
EO <= 1;
end else if(I[7] == 0)
begin
A <= 3'b000;
GS <= 0;
EO <= 1;
end else if(I[6] == 0)
begin
A <= 3'b001;
GS <= 0;
EO <= 1;
end
else if(I[5] == 0)
begin
A <= 3'b010;
GS <= 0;
EO <= 1;
end
else if(I[4] == 0)
begin
A <= 3'b011;
GS <= 0;
EO <= 1;
end
else if(I[3] == 0)
begin
A <= 3'b100;
GS <= 0;
EO <= 1;
end
else if(I[2] == 0)
begin
A <= 3'b101;
GS <= 0;
EO <= 1;
end
else if(I[1] == 0)
begin
A <= 3'b110;
GS <= 0;
EO <= 1;
end
else if(I[0] == 0)
begin
A <= 3'b111;
GS <= 0;
EO <= 1;
end
else if(I == 8'b11111111)
begin
A <= 3'b111;
GS <= 1;
EO <= 0;
end endmodule 3、3-8译码器
module decoder_verilog(G1 ,Y ,G2 ,A ,G3);input G1;//使能输入,高有效 wire G1;input G2;//使能输入,低有效 wire G2;input [2:0] A;//3位译码器输入,为高有效 wire [2:0] A;
input G3;//使能输入
wire G3;//使能输入,低有效
output [7:0] Y;//8位译码器输出,为低有效 reg [7:0] Y;reg s;always @(A ,G1, G2, G3)
begin
s <= G2 | G3;if(G1 == 0)//G1为低有效
Y <= 8'b1111_1111;else if(s)
Y <= 8'b1111_1111;
else
case(A)3'b000 : Y<= 8'b1111_1110;
3'b001 : Y<= 8'b1111_1101;
3'b010 : Y<= 8'b1111_1011;
3'b011 : Y<= 8'b1111_0111;
3'b100 : Y<= 8'b1110_1111;
3'b101 : Y<= 8'b1101_1111;
3'b110 : Y<= 8'b1011_1111;
3'b111 : Y<= 8'b0111_1111;
endcase end endmodule
4、数据选择器
module mux8_1_verilog(Y ,A ,D0, D1,D2, D3, D4, D5, D6, D7 ,G);input [2:0] A;//地址输入端 wire [2:0] A;input D0;//数据输入端 input D1;//数据输入端 input D2;//数据输入端 input D3;//数据输入端 input D4;//数据输入端 input D5;//数据输入端 input D6;//数据输入端 input D7;//数据输入端
input G;//使能端,当G=1时Y=0,当G=0时数据选择器正常工作 wire G;output Y;//数据输出端 reg Y;always @(G or A or D0 or D1 or D2 or D3 or D4 or D5 or D6 or D7)begin
if(G == 1)//使能端的优先级高
Y <= 0;
else
case(A)//根据输入的地址A确定数据选择器输出哪路输入数据
3'b000 : Y = D0;
3'b001 : Y = D1;
3'b010 : Y = D2;
3'b011 : Y = D3;
3'b100 : Y = D4;
3'b101 : Y = D5;
3'b110 : Y = D6;
3'b111 : Y = D7;
default : Y = 0;
endcase end endmodule
5、多位数值比较器
module compare_verilog(Y ,A ,B);input [3:0] A;//4位二进制数A wire [3:0] A;input [3:0] B;//4位二进制数B wire [3:0] B;output [2:0] Y;//A与B大小的比较结果 reg [2:0] Y;always @(A or B)begin
if(A > B)
Y <= 3'b001;//A > B时Y输出3'b001
else if(A == B)
Y <= 3'b010;//A = B时Y输出3'b010
else
Y <= 3'b100;//A < B时Y输出3'b100
end endmodule
6、全加器
module sum_verilog(A ,Co ,B ,S ,Ci);input A;//输入加数A wire A;input B;//输入加数B wire B;input Ci;//相邻低位的进位输入信号 wire Ci;output Co;//向相邻高位的进位输出信号 reg Co;output S;//相加和数输出 reg S;always @(A or B or Ci)begin
if(A== 0 && B == 0 && Ci == 0)
begin
S <= 0;
Co <= 0;
end else if(A== 1 && B == 0 && Ci == 0)
begin
S <= 1;
Co <= 0;
end else if(A== 0 && B == 1 && Ci == 0)
begin
S <= 1;
Co <= 0;
end else if(A==1 && B == 1 && Ci == 0)
begin
S <= 0;
Co <= 1;
end else if(A== 0 && B == 0 && Ci == 1)
begin
S <= 1;
Co <= 0;
end else if(A== 1 && B == 0 && Ci == 1)
begin
S <= 0;
Co <= 1;
end else if(A== 0 && B == 1 && Ci == 1)
begin
S <= 0;
Co <= 1;
end
else
begin
S <= 1;
Co <= 1;
end end endmodule
7、D触发器
module Dflipflop(Q ,CLK , RESET ,SET ,D ,Qn);input CLK;//D触发器输入时钟 wire CLK;input RESET;//D触发器清零输入 wire RESET;input SET;//D触发器预置数输入 wire SET;input D;//D触发器输入 wire D;output Q;//D触发器输出 reg Q;output Qn;wire Qn;assign Qn = ~Q;//将D触发器输出取反
always @(posedge CLK or negedge SET or negedge RESET)begin
if(!RESET)//RESET下降沿将D触发器输出清零
Q <= 0;
else if(!SET)//SER下降沿将D触发器输出置1
Q <= 1;
else Q <= D;//CLK上升沿D触发器输出等于输入 end endmodule
8、寄存器
module reg8(clr ,clk ,DOUT ,D);input clr;//异步清零信号,高有效 wire clr;input clk;//时钟输入 wire clk;input [7:0] D;//寄存器数据输入 wire [7:0] D;output [7:0] DOUT;//寄存器数据输出 reg [7:0] DOUT;always @(posedge clk or posedge clr)begin
if(clr == 1'b1)
DOUT <= 0;
else DOUT <= D;
end endmodule
9、双向移位寄存器
module shiftdata(left_right ,load ,clr ,clk ,DIN ,DOUT);input left_right;// 左移右移控制信号 wire left_right;input load;//异步置数信号,有效时将DIN输入 wire load;input clr;//异步清零信号,高有效 wire clr;input clk;//时钟输入 wire clk;input [3:0] DIN;//并行输入 wire [3:0] DIN;output [3:0] DOUT;//并行输出
wire [3:0] DOUT;// DOUT是一个wire型变量,不能在always块中被赋值
reg [3:0] data_r;//所以定义一个寄存器型变量data_r作为中间变量 assign
DOUT = data_r;always @(posedge clk or posedge clr
or posedge load)begin
if(clr == 1)//异步清零
data_r <= 0;else if(load)//异步置数
data_r <= DIN;else begin
if(left_right)//left_right=1,信号左移
begin
data_r <=(data_r<<1);
data_r[0] <= 0;//移出位补0
end
else begin //left_right=0,信号右移
data_r <=(data_r>>1);
data_r[3] <= 0;//移出位补0
end
end
end endmodule 10、4位二进制加减法计数器
module counter4(load ,clr ,c ,DOUT , clk, up_down ,DIN);input load;//异步预置数 input clk;//输入时钟 wire load;input clr;//异步清零 wire clr;input up_down;//加减计数,up_dpwn=1加计数,up_down=0减计数 wire up_down;input [3:0] DIN;//预置数输入 wire [3:0] DIN;output c;//进位/借位输出,可以用于计数器的级联 reg c;output [3:0] DOUT;//计数输出 wire [3:0] DOUT;reg
[3:0] data_r;assign DOUT = data_r;always @(posedge clk or posedge clr
or posedge load)begin
if(clr == 1)
//异步清零
data_r <= 0;else if(load == 1)
//异步预置
data_r <= DIN;
else begin if(up_down ==1)//加计数
begin
if(data_r == 4'b1111)begin
data_r <= 4'b0000;
c = 1;
end
else begin
data_r <= data_r +1;
c = 0;
end
end
else //减计数
begin
if(data_r == 4'b0000)begin
data_r <= 4'b1111;
c = 1;
end else begin
data_r <= data_r-1;
c = 0;
end
end
end end
endmodule
11、十进制加减法计数器
module counter10(load ,clr ,c ,DOUT ,clk,up_down ,DIN ,seven_seg);input load;//异步预置数 input clk;//输入时钟 wire load;input clr;//异步清零 wire clr;input up_down;//加减计数,up_dpwn=1加计数,up_down=0减计数 wire up_down;input [3:0] DIN;//预置数输入 wire [3:0] DIN;output c;//进位/借位输出,可以用于计数器的级联 reg c;output [3:0] DOUT;//计数输出 output [7:0] seven_seg;//7段数码管 wire [3:0] DOUT;reg
[3:0] data_r;assign DOUT = data_r;always @(posedge clk or posedge clr
or posedge load)begin
if(clr == 1)
//异步清零
data_r <= 0;else if(load == 1)//异步预置
data_r <= DIN;
else if(up_down ==1 & data_r == 9)//加进位
begin
c = 1;
data_r <= 4'b0000;
end else if(up_down ==0 & data_r == 0)//减借位
begin
c = 1;
data_r <= 9;
end else
begin
if(up_down ==1)begin //加计数
data_r <= data_r +1;
c = 0;
end
else begin
//减计数
data_r <= data_r-1;
c = 0;
end
end end
/************数码管***************/ assign seven_seg =Y_r;reg [7:0] Y_r;always @(data_r)//用7段数码管显示计数输出 begin Y_r =8'b11111111;case(data_r)
4'b0000: Y_r = 8'b00000011;//显示0 4'b0001: Y_r = 8'b10011111;//显示1 4'b0010: Y_r = 8'b00100101;//显示2 4'b0011: Y_r = 8'b00001101;//显示3 4'b0100: Y_r = 8'b10011001;//显示4 4'b0101: Y_r = 8'b01001001;//显示5 4'b0110: Y_r = 8'b01000001;//显示6 4'b0111: Y_r = 8'b00011111;//显示7 4'b1000: Y_r = 8'b00000001;//显示8 4'b1001: Y_r = 8'b00001001;//显示9 default: Y_r = 8'b11111111;//默认数码管不发光
endcase end
endmodule
12、顺序脉冲发生器
module pulsegen(Q ,clr ,clk);input clr;//异步预置数 wire clr;input clk;//时钟输入 wire clk;output [7:0] Q;//顺序脉冲输出 wire [7:0] Q;reg [7:0] temp;reg x;assign Q =temp;always @(posedge clk or posedge clr)begin
if(clr==1)
begin
temp <= 8'b00000001;//temp寄存预定的序列
x= 0;
end else
begin
x<= temp[7]
;//序列最高位输出
temp <= temp<<1;//temp左移一位
temp[0] <=x;//将输出的结果赋给序列最低位,实现序列的循环输出
end
end endmodule
13、序列信号发生器
module xlgen(Q ,clk ,res);input clk;//时钟输入 wire clk;input res;//异步预置数 wire res;output Q;//序列信号输出 reg Q;reg [7:0] Q_r;always @(posedge clk or posedge res)begin
if(res ==1)begin
Q <= 1'b0;
Q_r <= 8'b11100100;//Q_r寄存预定的序列
end
else
begin
Q <= Q_r[7];//序列最高位输出
Q_r <= Q_r<<1;//Q_r左移一位
Q_r[0] <=Q;//将输出的结果赋给序列最低位,实现序列的循环输出
end
end endmodule
14、分频器
module clockdiv(Q ,rst ,sysclk ,sel);input rst;//系统复位 wire rst;input sysclk;//系统时钟输入 wire sysclk;input [1:0] sel;//分频倍数选择 wire [1:0] sel;output Q;//分频器输出 wire Q;reg [2:0] q;reg [31:0] cnt;reg clk;
//时钟分频模块
always @(posedge sysclk or negedge rst)begin if(!rst)begin
cnt <= 0;clk <= 1'b1;end else begin
cnt <= cnt + 1'b1;
if(cnt >= 32'd2500000)begin /clk时钟周期是系统时钟周期的5000000倍
clk <= ~clk;
cnt <= 0;
end end end
//分频器模块
always @(posedge clk or negedge rst)if(!rst)q[0] <= 0;else
q[0] <= ~q[0];// q[0]是clk的2分频
always @(posedge q[0] or negedge rst)if(!rst)q[1] <= 0;else
q[1] <= ~q[1];// q[1]是clk的4分频
always @(posedge q[1] or negedge rst)if(!rst)q[2] <= 0;else
q[2] <= ~q[2];// q[2]是clk的8分频
assign Q =(sel== 2'd0)? clk : //分频器输出clk
(sel== 2'd1)? q[0] : //分频器输出clk的二分频
(sel== 2'd2)? q[1] : //分频器输出clk的四分频
(sel== 2'd3)? q[2] : 0;//分频器输出clk的八分频 endmodule
第五篇:硬件技术教学大纲
硬件技术教学大纲
第一部分 综述
培训与教学目的
(1)熟悉PC机主机内部各种配件的常见类型、基本结构、工作原理、技术参数和产品介绍;
(2)了解PC机各种外设的常见类型、基本结构、工作原理、技术参数和产品介绍;
(3)了解便携式计算机和数码产品的常见类型、工作原理、技术参数和产品介绍;
(4)理解PC网络的常见设备类型、拓扑结构、网络协议、OSI参考模型、产品介绍及互联网的接入技术;
(5)掌握PC机的配件选购、组装、调试及系统安装;
教学重点
(1)计算机各配件组成原理、工作原理、及主要技术参数指标(包括主板、中央处理器CPU、显卡、内部存储器、外部存储器、电源系统)。
(2)常用输入输出设备
(3)数码产品的组成、工作原理及技术参数指标(包括掌上电脑、数码相机、摄像头)
(4)PC机的组装技巧。
教学难点
各配件的工作原理
建议学时数
~ 100学时
培养目标
各类职业教育在校生、高校的DIY爱好者、电脑“发烧”友、电脑厂商人员、电脑维修维护人员、电脑商场销售人员。
培训对象
各类职业教育在校生、高校的DIY爱好者、电脑“发烧”友、电脑厂商人员、电脑维修维护人员、电脑商场销售人员。 实验要求与技能
(1)熟悉主机板卡、存储器、显示器组成和安装;(2)学会系统参数设置及操作系统的安装;(3)熟悉计算机的外设和操作;(4)掌握计算机整机的拆装与调试。
第二部分 课程内容及要求
第1章 计算机的组成
本章主要讲述计算机的硬件系统的组成,介绍了各硬件设备的外形和功能。第2章 主板
本章主要讲述了主板的结构、各种部件的技术规范以及新产品、新技术等实用内容,另外,我们还安排了PC机总线和接口的理论知识。
2.1主板的构成和结构类型 2.2微型计算机的体系结构 2.3主板上的常见部件 2.4主板芯片组 第3章 中央处理器CPU
本章主要介绍了市场上主流CPU的发展史和它们的技术参数,并且对各种CPU所采用的新技术进行了详细讲解。通过本章的学习,要求对目前常见的各种CPU的技术参数有一个全面的了解,并且知道如何辨别真伪CPU产品。3.1 CPU的工作原理 3.2 CPU的主要技术参数 3.3 CPU的生产 3.4 CPU的新技术 3.5 CPU的散热系统 3.6 CPU的发展历程 第4章 内部存储器
本章主要介绍了RAM的各种主流技术和性能参数。通过对本章的学习,要求熟悉常见的内存条及其技术规范,并要求能够熟练地辨认常见内存芯片。4.1 内部存储器的作用及分类 4.2 内存的基本工作原理和主流技术 4.3 内存的主要技术指标 第5章 外部存储器
本章主要介绍了PC机的外部存储器的基本结构和工作原理,同时包括了主流产品的介绍内容。通过对本章的学习,我们要求学员对外部存储器的工作原理有一个清晰的认识;此外,还要求学员能够对市场上的主流产品有一个全面的认识,能够根据客户的需要选择产品。5.1 硬盘系统 5.2 软驱系统 5.3 光存储系统 5.4 移动存储系统 第6章 PC的显示子系统
本章主要介绍了主流的显示卡和显示器的工作原理,基本结构和技术规范。学员在经过本章的学习后,应该能够对显示卡和显示器的工作原理和技术规范有一个清晰的认识,并能够根据需要选择合适的产品。6.1 显示卡 6.2 显示器 第7章 PC的音频子系统
本章介绍了PC机的声卡和音箱这两部分配件,内容主要有声卡的工作原理、技术规范和音箱的工作原理,通过本章的学习,要求对声卡和音箱的工作原理有较为深入的认识。7.1 声卡 7.2 多媒体音箱 第8章 网络设备
本章对网络设备的介绍集中在硬件规范和工作原理方面。要求对各种广域网和局域网设备的工作原理和技术规范都有一个清晰的认识。8.1 局域网络硬件设备 8.2 广域网Internet接入设备 第9章 电源系统
本章重点介绍了PC机主机电源的结构和工作原理,同时包含了不间断电源系统的只是。通过本章的学习,要求熟悉PC机ATX电源的结构、工作原理和电气规范,并能够根据负载情况选择合适的产品。9.1 主机箱 9.2 主机电源系统 第10章 常用输入设备
本章介绍了常见的PC机输入设备的结构和工作原理及扫描仪的主流成像技术。通过本章的学习,要求熟悉输入设备的结构和工作原理,并且能够根据需求选择合适的扫描仪产品。10.1 鼠标和键盘 10.2 扫描仪 第11章 常用输出设备
本章介绍常见的输出设备。通过本章的学习,要求学员对各种类型打印机和投影仪的结构和工作原理都有一个清晰的认识。11.1 打印机 11.2 多功能一体机 第12章 常见的其它类型计算机
本章介绍的产品包括便携式计算机和小型专用计算机。通过本章的学习,要求对便携式计算机的结构和性能有较为深入的了解,能够根据客户的需求选择合适的便携机型。12.1 便携式计算机 12.2 服务器和工作站 第13章 数码产品
通过本章的学习,要求熟悉这些设备的基本结构和工作原理,并理解各种参数的意义。13.1掌上电脑 13.2数码影像设备 13.3 其他数码产品 第14章 PC机的组装技巧
本章主要内容为PC的组装技巧。另外还介绍了开机故障信号的季度和常用的系统软件。通过本章的学习,要求掌握PC机组装的操作规程和基本技巧,熟悉各种故障代码,并能够根据客户工作内容为其选择安装正确的系统软件。14.1 PC机的组装 14.2 PC机的调试 14.3安装系统软件 实训内容
1.主机中板卡的识别
(1)教学内容
· 各种架构主板的认识
· 真假CPU、内存条的的认识
· 显示卡、声卡、MODEM卡的认识
· 主板、CPU、内存的匹配方案
· 主机部分的组装
(2)教学目的
· 认识各种板卡以及质量要求
· 学会判断真假板卡的方法
· 能够根据用户的要求写出主机部分的配置方案
(3)重点难点
· 板卡中元器件的名称
· 主板、CPU、内存的匹配方案
(4)教学设计分三个小段进行教学。
1)每个组发一套板卡,包括:主板、CPU、内存、显示卡、机箱电源 2)教学按照教学内容前4项分段进行,首先教师讲解本段的教学内容,每组选派一名代 表进行实例讲解,教师总结。
3)按照讲师的操作及要求一步一步进行电脑主机部分的安装,强调安装的步骤和操作注 意事项,力争作到操作标准化规范化。
(5)建议学时数 6小时
2.显示器的认识
(1)教学内容
· CRT显示器的认识
· 液晶显示器的认识
· 显示器的安装
(2)教学目的
· 认识各种板卡以及质量要求
· 学会判断真假板卡的方法
· 能够根据用户的要求写出主机部分的配置方案
(3)教学设计分三个小段进行教学。
1)每个组发一套CRT显示器一台,液晶显示器讲师做样机。2)教师讲解本段的教学内容,教师总结。
3)按照讲师的操作及要求一步一步进行电脑主机部分的安装,强调安装的步骤和操作注意 事项,力争作到操作标准化规范化。
(4)建议学时数 2小时
3.存储设备的认识
(1)教学内容
· IDE接口、SCSI接口的硬盘的认识
· CD-R、CD-RW、DVD光存储设备以及光盘的认识
· U盘、MO盘的认识
· 硬盘、光驱的安装和参数设置
(2)教学目的
· 认识各种接口的存储设备
· 熟练安装硬盘、光驱,多个存储设备的安装
(3)重点难点
· 多个存储设备的安装
· PC机存储方案的设置
(4)教学设计分四个小段进行教学。1)每个组发一个硬盘、一个光驱以及连线
2)教学按照教学内容前3项分段进行,首先教师讲解本段的教学内容,每组选派一名代表进行实例讲解,教师总结。
3)按照讲师的操作及要求一步一步进行硬盘、光驱部分的安装,强调安装的步骤和操作注意事项,力争作到操作标准化规范化。
4)硬盘的参数设置及分区,PC机的存储方案
(5)建议学时数 4小时
4.系统参数设置及操作系统的安装
(1)教学内容
· BIOS的设置
· 操作系统的安装和设置 · 工具软件的使用
(2)教学目的
· 熟练安装一种操作系统
· 熟悉BIOS常用参数的设置
(3)重点难点
· BIOS参数高级设置
(4)教学设计
1)每个组发一张安装系统和软件的光盘 2)按照讲师的安装步骤进行安装和操作
(5)建议学时数 6小时
5.PC外设的认识和操作
(1)教学内容
· 激光打印机、喷墨打印机、针式打印机的安装、设置和使用,常用备件的更换
· MODEM卡或外置MODEM的安装、设置和使用
· ADSL的安装、设置和使用
· 扫描仪的安装、设置和使用
· 数码相机的安装、设置和使用
(2)教学目的
· 熟练安装、设置和使用各种外部设备
(3)重点难点
· 外设设置冲突问题的解决
· 高端设备的正确使用
(4)教学设计
1)每个组负责一个设备
2)分组由讲师讲解的安装的注意事项和安装步骤,由学员上讲台进行操作,其他学员观看投影和实际操作
3)各组交换实物进行操作。
(5)建议学时数 6小时
6.笔记本电脑的认识和操作
(1)教学内容
· 笔记本电脑的认识
· 笔记本电脑的拆装
(2)教学目的
· 熟练安装、设置和使用笔记本电脑
(3)重点难点
· 笔记本电脑的拆装
(4)教学设计
1)每个组负责一台笔记本设备
2)分组由讲师讲解的安装的注意事项和安装步骤,由学员上讲台进行操作,其他学员观看投影和实际操作
3)各组交换实物进行操作。
(5)建议学时数 6小时