VerilogHDL硬件描述元件例化与原理图.ppt
Verilog HDL语言PPT课件

end
else //read continue
if(ph+ 8'b00000001 ==pe) // empty
begin
wr<=0;rd<=0;state<=stop;busy<=0;full<=0;
end
else // not empty
begin
wr<=0;rd<=1;state<=read;busy<=1;
同步清零?
第4页/共234页
例3:分频器的设计
module
nfrequency( rst, clk, q );
input rst, clk;
output [3:0] q;
reg [3:0] q;
always @( posedge clk or negedge rst )
if (!rst)
q<=0;
end
第21页/共234页
read:
begin
ph<=ph+ 8'b00000001;
if(fifo_rd==0) //end of read
begin
wr<=0;rd<=0;state<=stop;busy<=0;full<=0;
if(ph+ 8'b00000001 ==pe) empty <=1; else empty<=0;
reg[1:0] state; reg[7:0] fifo_out,data; reg wr,rd,empty,full,busy; //fifo write , read ,empty , full reg[7:0]pe,ph; //fifo point:P_end,P_head parameter write=1,read=2,stop=0;
VerilogHDL硬件描述语言PPT课件

三、 Verilog HDL硬件描述语言
1
整体 概述
2
一 请在这里输入您的主要叙述内容
二
请在这里输入您的主要 叙述内容
三 请在这里输入您的主要叙述内容
课程安排
一、可编程逻辑器件基础 二、数字系统设计方法 三、Verilog HDL硬件描述语言 四、开发软件介绍 五、应用实验 六、考核方式
21
2.Verilog HDL建模概述
▪ 2.7 三种建模方式
结构化描述方式
通过对电路结构的描述来建模,即通过对器件的调用 (HDL概念称为“例化”),并使用线来连接各器件 的描述方式
4
1.Verilog HDL概述
1.1什么是Verilog HDL?
Verilog HDL(Hardware Discription Language) 一种硬件描述语言,用于从算法级、门级到开关级 的多种抽象设计层次的数字系统建模。
5
1.Verilog HDL概述
1.2Verilog在VLSI设计过程中的位置
实际器件相类比 每个模块要进行端口定义,并说明输入、输出口,
然后对模块的功能进行逻辑描述(测试模块例外) 书写格式自由,一行可以写几个语句,一个语句可
以分几行写。 除end语句结束
16
2.Verilog HDL建模概述
▪ 2.4 模块语法
17
2.Verilog HDL建模概述
7
1.Verilog HDL概述
1.4 Verilog与VHDL
➢使用情况 •美国:Verilog: 60%, VHDL: 40% •台湾:Verilog: 50%, VHDL: 50%
➢两者的区别: •VHDL侧重于系统级描述,从而更多的为系统 级设计人员所采用 •Verilog侧重于电路级描述,从而更多的为电路 级设计人员所采用
第4章VerilogHDL基本语法课件

•最常用的两种事件是电平触发和边沿触发。电平触发是指 当某个信号的电平发生变化时,执行always指定的内容; 边沿触发是指当某个信号的上升沿或下降沿到来时,执行 always指定的内容。 •电平触发的写法是在“@”后面直接写触发信号的名称; 边沿触发的写法是在“@”后面写“posedge 信号名”或者 “negedge 信号名”,posedge代表信号的上升沿, negedge则代表信号的下降沿。
数字电路系统的设计者通过这种语言
a可以从上层到下层,从抽象到具体,逐层次地描述自 己的设计思想, b用一系列分层次的模块来表示极其复杂的数字系统, C然后利用模块组合经由自动综合工具转换到门级电路 网表, d再用自动布局布线工具把网表转换为具体电路进行布 局布线后, e下载到专用集成电路(ASIC)或现场可编程逻辑器件。
准的制定使得Verilog语言在综合、仿真、验证及IP重用等方面有很 大幅度的提高。
• Verilog HDL 是System Verilog语言的基础。SystemVerilog结合了来自 Verilog、VHDL、C++的概念,它将硬件描述语言(HDL)与现代的高 层级验证语言结合了起来。System Verilog加入了一些C++的元素。
通常用来描述组合逻辑 。
assign声明语句很简单,只需要写一个“assign” (赋 值),后面再加一个方程式即可。
• 例如 :assign s=a & b & c; • 该语句描述了一个三输入的与门,这是一个组合逻
4.6 用VerilogHDL描述组合逻辑电路.ppt

//Gate-level description of a 2-
4、设计举例
to-4-line decoder
试用Verilog语言的门级
module _2to4decoder
(A1,A0,E,Y);
元件描述2线-4线译码器.
input A,B,E;
说明
output [3:0]Y;
部分
E1
& Y0
FA1 (S[1],C1,A[1],B[1],C0), FA2 (S[2],C2,A[2],B[2],C1), FA3 (S[3],C3,A[3],B[3],C2);
endmodule
4.6.2 组合逻辑电路的数据流建模
数据流建模能在较高的抽象级别描述电路的 逻辑功能。通过逻辑综合软件,能够自动地 将数据流描述转换成为门级电路。
&&
逻辑与
||
逻辑或
移位运算符 (双目运算
符)
符号
> < >= <= == !=
& ~&
| ~| ^ ^~ 或 ~^
>> <<
功能说明
大于 小于 大于或等于 小于或等于 等于 不等于
缩位与 缩位与非 缩位或 缩位或非 缩位异或 缩位同或
右移 左移
位运算符与缩位运算的比较
A:4’b1010 、 B:4’b1111,
0 1x
0 xx 0 xx
调用名
and A1(out,in1,in2,in3);
nand真值表
z
nand
输入1
01xz
0
0 1111
x
输1 1 0 x x
第9章verilog_HDL_程序设计PPT课件

reg[12:0] temp2; reg[11:0] temp3; reg[10:0] temp4;
reg[9:0] temp5; reg[8:0] temp6;
reg[7:0] temp7;
function[7:0] mult8x1;
//该函数实现8×1乘法
input[7:0] operand; input sel;
temp5<=((mult8x1(a,b[2]))<<2);temp4<=((mult8x1(a,b[3]))<<3);
temp3<=((mult8x1(a,b[4]))<<4);temp2<=((mult8x1(a,b[5]))<<5);
temp1<=((mult8x1(a,b[6]))<<6);temp0<=((mult8x1(a,b[7]))<<7);
module count7(reset,clk,cout);
input clk,reset; output wire cout;
reg[2:0] m,n; reg cout1,cout2;
assign cout=cout1|cout2;
//两个计数器的输出相或
always @(posedge clk)
endmodule
(4)查找表乘法器
查找表乘法器将乘积直接存放在存储器中,将操作数 (乘数和被乘数)作为地址访问存储器,得到的输出 数据就是乘法运算的结果。
查找表方式的乘法器速度只局限于所使用存储器的存 取速度。但由于查找表规模随操作数位数增加而迅速 增大,因此如用于实现位数宽的乘法操作,需要 FPGA器件具有较大的片内存储器模块。比如,要实 现8×8乘法,要求存储器的地址位宽为16位,字长 为16位,即存储器大小为1M比特。
VerilogHDL数字系统设计技巧精品PPT课件

output o_clk; input i_clk; input rst_n; parameter N = N_even; // 设置偶数倍分频 parameter M = ?; // M="N/2-1" // bit_of_N: N_even的二进制位宽 reg [(bit_of_N - 1):0] cnt; // 计数器单元 reg o_clk;
cnt <= cnt + 1'b1; end end
恰恰分频:任意整数和小数分频的Verilog实现
// 生成上升沿时钟 // 0~(N/2-1) ↑ -> 1; (N/2)~(N-1) ↑ -> 0 always @ (posedge i_clk, negedge rst_n) begin
if (!rst_n) o_clk <= 0;
偶数分频器的实现非常简单,通过计数器计数 就完全可以实现。 如进行N倍偶数分频,就可以通过由待分频的 时钟触发计数器计数。 当计数器从0计数到N/2-1时,输出时钟进行翻 转,并给计数器一个复位信号,以使下一个时 钟从零开始计数。 以此循环,就可以实现任意的偶数分频。
恰恰分频:任意整数和小数分频的Verilog实现
恰恰分频:任意整数和小数分频的Verilog实现
always@(negedge clk or negedge rst_n) begin if(!rst_n) begin cnt2<=0; end else if(cnt2==2'b10) begin cnt2<=0; end else begin cnt2<=cnt2+1; end end
VerilogHDL基础语法ppt课件

一切的关键字都必需小写。
定义为reg型的线网不一定会生成存放器。
虽然信号和内部变量定义声明只需出如今被调用的语句之前就行 ,可是代码风格普通要求在执行语句之前就定义好,这样可以提 高代码的可读性。
在声明后,便是功能执行语句,功能执行语句包括always语句、 initial语句、assign语句、task、function、模块例化等等。可以混 合描画,没有先后顺序,但是要留意的是initial语句只能用于仿真 程序中,不能生成实践的电路。
时序性:Verilog言语可以用来描画过去的时间和相应发生的事件 ;而软件言语那么做不到。
互连:互连是硬件系统中的一个根本概念,Verilog言语中的wire 变量可以很好地表达这样的功能;而软件言语并没有这样的描画 。
3.2 Verilog HDL的描画方式
Verilog HDL采用三种描画方式来进展设计: 数据流描画:采用assign语句,延续赋值,数据实时变化,赋值
//模块功能实现
数据流描画: assign
行为级描画:initial, always
构造化描画: module例化
其他用户原语
endmoduleFra bibliotek例 3–1 端口声明 //Port Declaration input [4:0] a; // 信号名为a的5输入信号 inout b; // 双向信号b output [6:0] c; // 信号名为c的7输出总线信号
存放器型表示数据的存取,在仿真器中会占据一个内存空间。存 放器型也有许多子类型,包括reg、integer、time、real、 realtime等等。用reg可以表示一位或者多位的存放器,也可以表 示存取器。
例 3–5 采用reg表示的存放器和存取器
《EDA技术与Verilog HDL》PPT第3版 第4章 FPGA硬件实现

图4-59 测频时序控制电路
实验与设计
实验4-4 应用宏模块设计数字频率计
图4-60 测频时序控制电路工作波形
实验与设计
实验4-4 应用宏模块设计数字频率计
图4-61 频率计顶层电路原理图
实验与设计
实验4-4 应用宏模块设计数字频率计
图4-62 频率计工作时序波形
4.8 安装Quartus II 13.1说明
图4-45 安装QuartusII 13.1设计文件界面,点击右侧安装按钮
4.8 安装Quartus II 13.1说明
图4-46 设定QuartusII 13.1设计文件安装路径
4.8 安装Quartus II 13.1说明
图4-47 选择安装软件。注意不要漏了ModelSim-Altera Starter Edition
图4-3 利用New Project Wizard创建工程CNT10 ⑵ 将设计文件加入工程中。
4.1 代码编辑输入和系统编译
4.1.2 创建工程 ⑶ 选择目标芯片。
图4-4 选择目标器件EP4CE55F23C8
4.1 代码编辑输入和系统编译
4.1.2 创建工程 ⑷ 工具设置。
图4-5 设计与验证工具软件选择
(3)原理图文件存盘。
图4-30 完成设计并将半加器封装成一个元件,以便在更高层设计中调用
4.4 电路原理图设计流程
4.4.1 设计一个半加器
(4)创建原理图文件为顶层设计的工程。
(5)绘制半加器原理图。
(6)仿真测试半加器。
4.4 电路原理图设计流程
4.4.2 完成全加器顶层设计
图4-31 在f_adder工程下加入半加器原件
VerilogHDL硬件描述-元件例化与原理图

5、举一反三
1、关于仿真的设置问题(clk驱动,仿真周 期:最多1ms) 2、修改动态扫描的时间
(2pow25=33554432 40/(2pow25)=1.19)
3、FPGA引脚的锁定方法: a 常规锁定法Assignments\Pins\(修改完后 要重新编译,否则无效) b tcl scripts(脚本)(注意一定要放在英文目录) 4、其它。(下载器的设置问题)
功能仿真的步骤如下: 1、新建一个仿真文件; 2、设置需要仿真的信号,保存文件; 3、使用Processing>Generate Functional Simulation Netlist 菜单,生成不包含时序信息的功能仿真网表; 4 、使用Assignments>Setting命令,打开Setting对话框; 5、 在设置分类列表中,选择Simulator Settings; 6 、在Simulator mode 中选择Functional; 7 、在Simulator input中,指定矢量波形源文件; 8 、按ok按钮,完成设置; 9 、使用Processing>Start>Start Simulation命令启动仿真。 10、每次程序修改后,需要重新进行第3步。
1、分析具体实例—电子钟 2、演示设计效果。 3、分析语言。 4、以解决具体问题为导向进行学习。
2012年4月8日
3
电子钟实例
1、一个实例—电子钟 2、实验硬件平台 3、硬件框图 4、软件框图 5、用verilog语言实现电子钟(重点)
2012年4月8日 4
1、一个实例—电子钟
1.利用动态扫描方法在八位数 码管上显示出时钟:如12.54.32
2012年4月8日 16
硬件描述语言简介精品PPT课件

CI
and //调用3个与门AND1,AND2,AND3
AND1(C_1,A,B),
A B
AND2(C_2,A, CI),
AND3(C_3,B, CI);
or
OR1(Cout,C_1,C_2,C_3);
//调用或门实现Cout=AB+A(CI)+B(CI)
A2 B 2 A3 B3
A4B4
CI CO
CI
C O
CI CO
CI CO
C tem p1 Ctemp2 Ctemp3
CO
S a1 d d 1 S 2a d d 2 S a3 d d 3 S 4a d d 4
例8.3.1的4位加法器
上页 下页 返回
11
第一节 硬件描述语言简介
//对4位串行进位加法器的顶层结构的描述
endmodule //结束
14
XOR2
Sum
XOR1
AND3 OR1 AND2
Cout
AND1
上页 返回
做人,无需去羡慕别人,也无需去花 时间去 羡慕别 人是如 何成功 的,想 的只要 是自己 如何能 战胜自 己,如 何变得 比昨天 的自己 强大就 行。自 己的磨 练和坚 持,加 上自己 的智慧 和勤劳 ,会成 功的。 终将变 成石佛 那样受 到大家 的尊敬 。
是的,折枝的命运阻挡不了。人 世一生 ,不堪 论,年 华将晚 易失去 ,听几 首歌, 描几次 眉,便 老去。 无论天 空怎样 阴霾, 总会有 几缕阳 光,总 会有几 丝暗香 ,温暖 着身心 ,滋养 着心灵 。就让 旧年花 落深掩 岁月, 把心事 写就在 素笺, 红尘一 梦云烟 过,把 眉间清 愁交付 给流年 散去的 烟山寒 色,当 冰雪消 融,自 然春暖 花开, 拈一朵 花浅笑 嫣然。
第3讲-Verilog-HDL常用建模方法PPT课件

-
35
3.门延迟举例
考虑一个简单的例子,说明如何使用门延迟为逻辑电 路建立时序模型。假设模块D实现逻辑功能: out = (a ·b) + c。
模块D的逻辑图如下,其中包含了一个延迟时间为5个 单位的与门和一个延迟时间为4个单位的或门。
-
36
-
37
-
38
习题1
利用双输入端的nand门,用Verilog编写自己的双输 入端的与门、或门和非门,把它们分别命名为my_or, my_and和my_not,并通过激励模块验证这些门的功 能。
nand o1(out,out1,out2); nand o2(out1,in1,in1); nand o3(out2,in2,in2);
endmodule
module my_not(in,out); input in;
output out; nand n1(out,in,in);
endmodule
nd2(b,ndata,clock), nd3(c,a,d), nd4(d,c,b,clear), nd5(e,c,nclock), nd6(f,d,nclock), nd7(q,e,qb), nd8(qb,q,f,clear); not iv1(ndata,data), iv2(nclock,clock); endmodule
-
19
3.2.1 门的类型
1.与/或门
Verilog语言中常用的门包括如下几种(以二输入为例):
-
20
在Verilog语言中,我们可以调用(实例引用)这些逻辑 门来构造逻辑电路。在门的实例引用中,输入端口的数 目可以超过两个,这时只需将输入端口全部排列在端口 列表中即可,Verilog会根据输入端口的数目自动选择引 用合适的逻辑门。注意,在门级原语实例引用的时候, 我们可以不指定具体实例的名字,这一点为设计师编写 需要实例引用几百个门的模块提供了方便。 格式:
VerilogHDL语言基础教材教学课件

1990年代,Verilog HDL成为IEEE标准,并不断发展完善。
新版本
随着数字电路设计的发展,Verilog HDL不断推出新版本,支持更高级的硬件描述和验证功能。
Verilog HDL的历史和发展
01
02
03
04
ASIC设计
在ASIC设计中,Verilog HDL用于描述数字电路的结构和行为。
FPGA设计
在FPGA设计中,Verilog HDL用于描述逻辑块、路由和IO接口等。
仿真验证
Verilog HDL还用于数字电路的仿真验证,通过模拟电路的行为来检测设计中的错误和缺陷。
学术研究
在数字电路和系统设计领域,Verilog HDL广泛应用于学术研究、教学和实验中。
Verilog HDL的应用领域
测试平台编写是指编写用于测试Verilog设计的测试平台代码。测试平台代码可以使用Verilog语言编写,并使用仿真测试平台进行测试和验证。
仿真测试平台
测试平台编写
仿真和测试平台
Verilog HDL设计实例
04
组合逻辑设计
总结词:组合逻辑设计是Verilog HDL中最基础的设计之一,主要用于实现逻辑函数。
02
数字系统设计涉及逻辑门、触发器、寄存器、组合逻辑、时序逻辑等基本数字逻辑单元的设计和组合,Verilog HDL语言能够方便地描述这些结构和行为。
03
数字系统广泛应用于计算机、通信、控制等领域,通过Verilog HDL语言可以实现高效、可靠的数字系统设计。
01
Verilog HDL的未来发展
发展趋势和挑战
THANKS
ASIC设计涉及逻辑设计、电路设计、物理实现等环节,Verilog HDL语言能够描述硬件结构和行为,为ASIC设计提供强大的支持。
VerilogHDL数字集成电路设计原理与应用教学课件ppt作者蔡觉平_第2章

第2章 Verilog HDL基础知识2.1 Verilog HDL的语言要素2.2 数据类型2.3 运算符2.4 模块本章小结12 Verilog HDL 语法来源于C 语言基本语法,其基本词法约定与C 语言类似。
程序的语言要素也称为词法,是由符号、数据类型、运算符和表达式构成的,其中符号包括空白符、注释符、标识符和转义标识符、关键字、数值等。
2.1 Verilog HDL 的语言要素2.1.1 空白符 空白符包括空格符(\b)、制表符(\t)、换行符和换页符。
空白符使代码看起来结构清晰,阅读起来更方便。
在编译和综合时,空白符被忽略。
Verilog HDL程序可以不分行,也可以加入空白符采用多行编写。
3 例2.1-1空白符使用示例。
initial begin a = 3'b100; b = 3'b010; end 相当于: initial begin a = 3'b100; b = 3'b010; end452.1.2 注释符 Verilog HDL语言中允许插入注释,标明程序代码功能、修改、版本等信息,以增强程序的可阅读性和帮助管理文档。
Verilog HDL中有两种形式的注释。
(1) 单行注释:单行注释以“//”开始,Verilog HDL忽略从此处到行尾的内容。
(2) 多行注释:多行注释以“/*”开始,到“*/”结束,Verilog HDL忽略其中的注释内容。
需要注意的是,多行注释不允许嵌套,但是单行注释可以嵌套在多行注释中。
例2.1-2 注释符使用示例。
单行注释: assign a=b & c; //单行注释 多行注释: assign a[3:0]=b[3:0]&c[3:0;]; /*注释行1 注释行2 */ 非法多行注释:/*注释内容 /*多行注释嵌套多行注释*/ 注释内容*/ 合法多行注释:/*注释内容 //多行注释嵌套单行注释*/672.1.3 标识符和转义标识符 在Verilog HDL中,标识符(Identifier)被用来命名信号名、模块名、参数名等,它可以是任意一组字母、数字、$符号和_(下划线)符号的组合。
VerilogHDL语言基础幻灯片PPT

Verilog HDL硬件描述语言功能
4.提供显式语言结构指定设计中的端口到端口的时 延及路径时延和设计的时序检查。
5.可采用三种不同方式或混合方式对设计建模。这 些方式包括:
➢ 行为描述方式—使用过程化结构建模; ➢ 数据流方式—使用连续赋值语句方式建模; ➢ 结构化方式—使用门和模块实例语句描述建模。
15.Verilog HDL能够监控模拟验证的执行,即模拟验 证执行过程中设计的值能够被监控和显示。这些值也能够 用于与期望值比较,在不匹配的情况下,打印报告消息。
16.在行为级描述中,Verilog HDL不仅能够在RTL级 上进行设计描述,而且能够在体系结构级描述及其算法级 行为上进行设计描述。
module 模块名(端口列表); 端口定义 input输入端口 output输出端口 inout输入/输出端口
数据类型说明 wire reg parameter、、、
逻辑功能定义 Assign连续赋值语句 Initial、Always过程语句 Function、Task调用 元件、模块调用 …...
Verilog HDL语言基础--本章概述
✓ Verilog的门级描述语句; ✓ Verilog编译指示语句; ✓ Verilog系统任务和函数; ✓ Verilog用户定义任务和函数和Verilog语言模块描 述方式。
本章内容对于初步掌握Verilog语言规则非常重 要。
--Verilog语言概述
17.能够使用门和模块实例化语句在结构级进行结构 描述。
Verilog程序结构
一个复杂电路系统的完整Verilog HDL模型是由若 干个Verilog HDL模块构成的,每一个模块又可以由若干 个子模块构成。Verilog使用大约100个预定义的关键词定 义该语言的结构。
verilog_hdl教程_硬件描述语言_课件_PPT

3
3.1 引言
二、Verilog HDL的发展历史
▪ 1983年,由GDA(GateWay Design Automation)公 司的Phil Moorby首创;
▪ 1989年,Cadence公司收购了GDA公司; ▪ 1990年, Cadence公司公开发表Verilog HDL; ▪ 1995 年 , IEEE 制 定 并 公 开 发 表 Verilog HDL1364-
3.13 设计技巧
1
3.1 引言
内容概要
一、什么是Verilog HDL 二、Verilog HDL的发展历史 三、不同层次的Verilog HDL抽象 四、Verilog HDL的特点
2
3.1 引言
一、什么是Verilog HDL
▪ Verilog HDL是一种用于数字逻辑电路设计的硬件描述 语言(Hradware Description Language ),可以用来进 行数字电路的仿真验证、时序分析、逻辑综合。 ➢ 用Verilog HDL描述的电路设计就是该电路的 Verilog HDL模型。 ➢ Verilog HDL 既是一种行为描述语言也是一种结构描述 语言。
begin //过程赋值语句 //if语句 // case语句 // while,repeat,for循环语句 // task,function调用
end
17
3.2 Verilog HDL基本结构
// (3)元件例化 < module_name > < instance_name > (<port_list>);
always @(posedge clk) // 每当时钟上升沿到来时执行一遍块内语句
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第四讲
长江大学电信学院
2020年3月27日
1
第三讲回顾
1、LED动态扫描的原理 2、一个实例—LED动态扫描(8位) 3、实验硬件平台 4、硬件框图 5、软件框图 6、用verilog语言实现LED动态扫描
(重点)
2020年3月27日
2
本节课计划:
1、分析具体实例—电子钟 2、演示设计效果。 3、分析语言。 4、以解决具体问题为导向进行学习。
菜单,生成不包含时序信息的功能仿真网表; 4 、使用Assignments>Setting命令,打开Setting对话框; 5、 在设置分类列表中,选择Simulator Settings; 6 、在Simulator mode 中选择Functional; 7 、在Simulator input中,指定矢量波形源文件; 8 、按ok按钮,完成设置; 9 、使用Processing>Start>Start Simulation命令启动仿真。 10、每次程序修改后,需要重新进行第3步。
同60进制模块
2020年3月27日
21
4、功能仿真
功能仿真的步骤如下: 1、新建一个仿真文件; 2、设置需要仿真的信号,保存文件; 3、使用Processing>Generate Functional Simulation Netlist
菜单,生成不包含时序信息的功能仿真网表; 4 、使用Assignments>Setting命令,打开Setting对话框; 5、 在设置分类列表中,选择Simulator Settings; 6 、在Simulator mode 中选择Functional; 7 、在Simulator input中,指定矢量波形源文件; 8 、按ok按钮,完成设置; 9 、使用Processing>Start>Start Simulation命令启动仿真。 10、每次程序修改后,需要重新进行第3步。
2020年3月27日
3
电子钟实例
1、一个实例—电子钟 2、实验硬件平台 3、硬件框图 4、软件框图 5、用verilog语言实现电子钟(重点)
2020年3月27日
4
1、一个实例—电子钟
1.利用动态扫描方法在八位数 码管上显示出时钟:如12.54.32
2020年3月27日
5
2、实验硬件平台
或者三极管)
2020年3月27日
8
3、LED动态扫描的原理图
2020年3月27日
9
3、LED动态扫描的原理图
2020年3月27日
10
4、软件框图
40M晶振
分 频
秒脉 冲
显示秒
60分频
显示分 60分频
显示时 24分频
2020年3月27日
11
5、用verilog语言实现电子钟(重点)
1、Verilog HDL设计流程 2、模块的输入输出端口 3、各模块简介 4、功能仿真 5、举一反三
input clk,rst;
output[7:0] dataout;
output[7:0] en; //COM使能输出
………
………
//定义模块功能
endmodule
2020年3月27日
15
3、各模块简介
3.1 40M分频模块
count<=count+1;
if(count>=32'h2625A00) ;//(计算器)
2020年3月27日
22
5、举一反三
1、关于仿真的设置问题(clk驱动,仿真周 期:最多1ms)
2、修改动态扫描的时间
(2pow25=33554432 40/(2pow25)=1.19)
3、FPGA引脚的锁定方法: a 常规锁定法Assignments\Pins\(修改完后
要重新编译,否则无效) b tcl scripts(脚本)(注意一定要放在英文目录) 4、其它。(下载器的设2
1、Verilog HDL设计流程
自顶向下(Top-Down)设计
2020年3月27日
13
1、本系统中涉及的模块
1、40M分频模块 2、60进制分频模块 3、24进制分频模块 4、显示模块(略)
2020年3月27日
14
2、模块的输入输出端口
module clock(clk,rst,dataout,en);;//定义模块名
2020年3月27日
23
下节课计划:
1、电子钟(包含分频器、元件例化知识) 2、频率计(综合)
2020年3月27日
24
元件例化 2、外部驱动显示模块 3 、一个动态的例子---电子钟
2020年3月27日
25
2020年3月27日
6
3、硬件框图
FPGA
LED
2020年3月27日
详细图片加驱动电路 板书(略)
7
3、硬件框图
1、FPGA的外围电路 2、LED数码管的结构(8段数码管) 3、FPGA与LED直接连接(利弊) 4、FPGA与LED之间采用简单驱动连接。 (段码通常采用74LS573,位选通常采用74LS04,
3、如果不设置未使用的引脚,会引起芯片发热,功耗增加 等系列问题。
2020年3月27日
17
3.1 40M符号文件的仿真
功能仿真的步骤如下: 1、新建一个仿真文件; 2、设置需要仿真的信号,保存文件; 3、使用Processing>Generate Functional Simulation Netlist
begin
second_impulse<=~second_impulse;
count<=0;
end
//演示过程
2020年3月27日
16
3.1 40M符号文件
1、定义引脚并编译
2、注意设置未使用的引脚: Assinments/setting/device/device and pin options
2020年3月27日
18
仿真波形如下图所示
2020年3月27日
19
3.2 60进制分频模块
count<=count+1;
output_impulse<=0;
if(count>=8'd59)
begin
output_impulse<=1;
count<=0;
end
end
2020年3月27日
20
3.3 24进制分频模块