《数字逻辑课程设计》教案闫爱斌Word文件下载.docx
《《数字逻辑课程设计》教案闫爱斌Word文件下载.docx》由会员分享,可在线阅读,更多相关《《数字逻辑课程设计》教案闫爱斌Word文件下载.docx(25页珍藏版)》请在冰豆网上搜索。
![《数字逻辑课程设计》教案闫爱斌Word文件下载.docx](https://file1.bdocx.com/fileroot1/2022-10/29/a74ec6a6-45a8-4de8-bcbf-aa6b49f8d359/a74ec6a6-45a8-4de8-bcbf-aa6b49f8d3591.gif)
容
1、芯片设计完整流程描述
工艺无关的前端设计:
规格制定、详细设计、HDL编码、仿真验证、逻辑综合、综合验证
工艺相关的后端设计:
DFT设计、布局布线、版图验证、寄生参数、仿真验证、芯片制造
2、HDL的基本概念
HDL是一种用形式化方法来描述数字电路和系统的语言。
用它可以表示逻辑电路图、逻辑表达式、数字逻辑系统所完成的逻辑功能等。
通过EDA工具进行仿真验证,进而使用ASIC或FPGA布局布线工具进行电路和系统的实现。
3、VerilogHDL的基本概念
它是HDL的一种,它们具有如下相同点:
⏹能形式化地抽象表示电路的行为和结构;
⏹支持逻辑设计中层次与范围的描述;
⏹可借用高级语言结构简化电路行为描述;
⏹具有电路仿真和验证机制以保证设计的正确性;
⏹支持电路描述由高层到低层的综合转换;
⏹硬件描述与实现工艺无关;
⏹便于文档管理和设计重用。
同时,也具有如下不同点:
⏹VHDL源自美国军方,1987年成为IEEE标准;
⏹Verilog源自民间公司,1995年成为IEEE标准;
⏹VHDL较难掌握,使用的客户群体匮乏;
⏹VHDL语法比Verilog严谨而冗长;
⏹VHDL语言几乎不支持电路级底层描述级别;
⏹VHDL语言系统级描述能力较好,而Verilog通过扩展为SystemVerilog才丰富了系统级描述能力。
4、IP核简介
⏹IP就是知识产权核或知识产权模块之义。
⏹美国Dataquest公司将半导体产业的IP定义为“用于ASIC或FPGA中的预先设计好的电路功能模块”
⏹软核:
经过功能验证、可综合的、实现后电路结构的总门数在5000以上的HDL模型(编码)。
⏹固核:
在某一种FPGA上实现的、经验证是正确的、总门数在5000以上的电路结构编码文件(电路网表)。
⏹硬核:
在某一种ASIC上实现的、经验证是正确的、总门数在5000以上的电路结构版图掩膜。
5、Verilog基本程序结构
modulemodule_name(port_list);
//声明各种变量、信号
//*变量如reg、wire、parameter
//*信号如input、output、inout
//程序代码,描述
//initial块
//always块
//…
endmodule
6、数据流描述语句简介
语法:
assign线网型变量名=赋值表达式;
举例:
wirea;
wire[3:
0]b,c;
assigna=1;
assignb[1:
0]=2’b10;
assignc={a,a};
注意:
assign只能对wire型数据进行赋值;
数据流描述形式通常只采用assign语句进行实现。
7、如何编写一个简单的Verilog示例程序?
以移位器为例,使用XilinxISE开发套件实现电路功能模块和测试模块的编写。
测试模块:
8、结构描述语句简介
门类型<
实例名>
(输出,输入1,输入2,…,输入N)
常用的8个门类型关键字:
and、nand、or、nor、xor、xnor、buf、not
nandna01(na_out,a,b,c);
xorxo01(xo_out,a,b);
门类型关键字区分大小写;
多输入单输出;
VerilogHDL中的结构描述本质上为门级描述。
9、实例:
一个简单的全加器例子
10、行为描述语句简介
行为级描述包含四个方面:
◆流控制典型代表为if,case,while…
◆语句块典型代表为begin+end模块
◆时序控制典型代表为边沿/电平触发事件控制
◆过程结构典型代表为always模块
行为级描述主要用于时序功能的实现。
11、实例:
一个八位计数器的例子
归
纳
总
结
1扼要地介绍了基本概念;
2重点介绍了XilinxISE套件对VerilogHDL程序的仿真与测试;
3布置第一次实验报告:
给出c17电路的结构描述形式,如何进行仿真测试?
写出实验报告。
附c17电路网表如下:
INPUT(G1)
INPUT(G2)
INPUT(G3)
INPUT(G4)
INPUT(G5)
OUTPUT(G16)
OUTPUT(G17)
G8=NAND(G1,G3)
G9=NAND(G3,G4)
G12=NAND(G2,G9)
G15=NAND(G9,G5)
G16=NAND(G8,G12)
G17=NAND(G12,G15)
第 2 次教学活动设计
1、复习上节课内容,包括几个基本概念:
即HDL、软核、固核、硬核;
2、回顾如何进行Verilog程序的仿真和测试。
3、如何界定数据流描述语句和结构描述语句。
1、Verilog中的标志符
◆字母、下划线(开头),数字、$符;
◆区分大小写?
例:
IF;
_ce;
CLK_100MHz
2、数据类型
共19种,本讲只介绍常用的四种:
wire型;
reg型;
memory型;
parameter型。
■wire型
・常用来表示组合逻辑信号,常与assign一起使用;
・默认值为高阻抗状态,高阻态如何表示?
■reg型
・常用来表示时序逻辑信号,常在always块中使用;
・默认值为未知(不定)状态,不定态如何表示?
※wire型需持续驱动,而wire型保持最后一次赋值。
变量不指定类型?
always块中被赋值变量的类型?
■memory型
常用于将reg型扩展为寄存器数组(二维),对存储器建模.
定义格式:
reg[n-1:
0]存储器名[m-1:
0];
定义例:
reg[7:
0]X_ROM[3:
赋值例:
X_ROM[0]=4’hf;
X_ROM[1]=2’b10;
X_ROM[2]=8’o7;
X_ROM[3]=4’d9;
思考:
存储位宽?
存储深度?
存储结果?
※被赋值变量应当在时序逻辑块中;
不能只对某一位赋值,未赋值部分被补0?
分析区别:
0]rega;
regmemb[n-1:
■parameter型
用来表示常量(整形、实数型、字符串型)
parameter参数名=数据;
parameterpai=3.14;
//科学计数法?
parameter[1:
0]a=2’d3,b=4’d6;
//基数表示法
parameterhi=“hi”;
//二进制存储ASCII,1符8位
reg[1:
8*7]str=“counter”;
3、Verilog语言的运算符和表达式
算术运算符(简单了解)
赋值运算符
连续赋值vs.过程赋值(阻塞、非阻塞)
关系运算符成立返1,不成立返0,不定返?
逻辑运算符
条件运算符三目运算符
位运算符^;
^~;
~&
;
~|
移位运算符
拼接运算符{a,b}
一元约简运算符
4、形为描述语句的过程结构
①initial模块
定义格式:
initialbegin/fork
…
end/join
※只执行一次,只面向仿真(不可综合),多个则并行执行.
② always模块
always@(敏感事件列表)begin/fork
end/join
5、形为描述语句的时序控制
①延迟控制
②事件控制(对应于敏感事件列表)
・电平触发事件控制
・边沿触发事件控制
上机实践:
1、编写nor3,并进行测试。
2、编写一个八位计数器,并进行测试。
6、形为描述语句的语句块
parameterd=50;
reg[7:
0]r;
begin:
block1//有名块、串行块
#dr=’h10;
#dr=’o10;
#dr=’d10;
end
如何修改为并行块?
串行块与并行块的执行特点?
混合使用?
7、形为描述语句的流控制
①跳转(if语句)注意else;
串行。
②分支(case语句)注意default;
并行。
③循环
for语句与C语言语法相同
while语句while(表达式)begin…end
forever语句foreverbegin…end须在initial中
repeat语句repeat(次数)begin…end
8、理解阻塞与非阻塞赋值
moduleeg1(out,a,b,c,d);
inputa,b,c,d;
//假设该组值均从01
outputout;
regt1,t2,out;
always@(aorborcord)begin
t1=a&
b;
//t1<
=a&
t2=c&
d;
//t2<
=c&
out=t1|t2;
//out<
=t1|t2;
endmodule
分析替换为注释部分的语句,程序将如何响应。
1扼要地介绍了Verilog数据类型和运算符;
2重点介绍了Verilog行为描述语句,完成了上机实践(仿真与测试)
3布置第二次实验报告:
试给出D触发器的行为描述形式,如何进行仿真测试?
附一种并未实现D触发器功能的代码:
moduledff(clk,d,q1,q2);
inputclk,d;
outputq1,q2;
regq1,q2;
always@(negedgeclk)begin
q1=d;
q2=q1;
end
第 3 次教学活动设计
1、复习上节课内容,包括几个基本数据类型的使用、默认值等。
2、回顾Verilog程序的仿真和测试基本流程。
3、回顾