《Verilog-数字系统设计教程-夏宇闻.ppt》由会员分享,可在线阅读,更多相关《Verilog-数字系统设计教程-夏宇闻.ppt(101页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 ? 嵌入式微处理机系统嵌入式微处理机系统 数字信号处理系统数字信号处理系统 高速并行计算逻辑高速并行计算逻辑 高速通信协议电路高速通信协议电路 高速编码高速编码/解码、加密解码、加密/解密电路解密电路 复杂的多功能智能接口复杂的多功能智能接口 门逻辑总数超过几万门达到几百甚至达几千门逻辑总数超过几万门达到几百甚至达几千 万门的数字系统万门的数字系统 电路的逻辑功能容易理解;电路的逻辑功能容易理解; 便于计算机对逻辑进行分析处理;便于计算机对逻辑进行分析处理; 把逻辑设计与具体电路的实现分成两个独立把逻辑设计与具体电路的实现分成两个独立 的阶段来操作;的阶段来操作; 逻辑设计与实现的工艺无关;
2、逻辑设计与实现的工艺无关; 逻辑设计的资源积累可以重复利用;逻辑设计的资源积累可以重复利用; 可以由多人共同更好更快地设计非常复杂可以由多人共同更好更快地设计非常复杂 的逻辑电路(几十万门以上的逻辑系统)。的逻辑电路(几十万门以上的逻辑系统)。 Verilog HDL 公开发表 CADENCE 公司购买 Verilog 版权 1990 1989 1980s Verilog-XL 诞生 模 拟 和 数 字 都 适 用 的Verilog 标准公开发表 VerilogIEEE1364-1995 标准公开发表 有关 VerilogHDL 的全部权利都移交给 OVI(Open Verilog Inter
3、national) 1995图 2-2 Verilog HDL 的发展历史和未来 2001 1999 Verilog IEEE1364-2001 标准公开发表 1990 VITAL 系统级 算法级 寄存器传输级 逻辑门级 开关电路级 行为级 的抽象 VerilogHDL 与 VHDL 建 模 能 力 的 比 较 SystemVerilog Verilog VHDLmodule muxtwo (out, a, b, sl);input a,b,sl;output out; Reg out; always (sl or a or b) if (!sl) out = a; else out = b;
4、endmoduleabsloutabsloutoutabslselbselansl u2 u3 u4 u1Verilog HDL入门 include myadder.vmodule t; wire 8:0 sumout; reg 7:0 ain, bin; reg rst, clk; initial begin rst = 1;clk = 0; ain = 0; bin=3; #70 rst=0; # 70 rst = 1;end always #50 clk = clk; always (posedge clk) begin #2 ain = ain + 2; #3 bin = bin +5
5、; end clkrstainbin03a-regb-reg x x28413 620282318 12 8 64 8 1033 x 1080181323 33sumout100241731 43 Verilog HDLVerilog HDL测试模块测试模块: Verilog HDLVerilog HDL顶层(测试)模块顶层(测试)模块: 同上。 Verilog 模块由两部分组成:端口信息和内部功能。模块由两部分组成:端口信息和内部功能。 module block1(a, b, c, d, e); input a, b, c; output d, e; assign d = a | ( b &
6、 c) ; assign e = ( b & c ); endmoduleabcdeabcdeabcedVerilog HDL模块中的逻辑表示abcdeaout2BUFFbINVout1dout2AND2i1clkout1D QDFFclkDFFcD QD QabDFF clkDFFcD Qab两种不同的赋值语句区别要点。同步有限状态机ena1ena2ena3enanclock组合逻辑 1寄存器组组合逻辑 2寄存器组组合逻辑 3寄存器组组合逻辑 4寄存器组input_1input_2input_n 设计项目举例:设计项目举例: - myproject - 可综合部分可综合部分 (我们想要设计的
7、逻辑电路部分):(我们想要设计的逻辑电路部分): - mk_1.v, mk_2.v, mk_3.v, .mk_8.v - mk_11.v, mk_12.v , mk_13.v. - mk_21.v, mk_22.v, mk_23.v . - . - mk_81.v, mk_82.v, mk_83.v . 。 (续上页)续上页) else begin # (5 * timeslice) read = 1; # (timeslice) read = 0; end always (posedge ack) begin DataToRam = DataToRam + 2; addr = addr + 1; endendmodule 。信号模块信号模块 xh1( .clock( clk), .reset(rst), .ack(ackn) . . . . .); . . . . .可综合模块可综合模块 mysj1(. clock(clk), reset(rst),.ack(ackn) . . .); . . . . . 外围模块外围模块 ram1(.read(rd), .write(wrt), .data(databus) . . .); . . . . .endmodule
限制150内