verilog 数字系统设计教程 逻辑部分

更新时间:2023-08-25 14:23:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

verilog 数字系统设计教程 逻辑部分

数字系统设计的核心知识 复杂数字系统的构成; 基本电路和 Verilog 的对应关系; 同步有限状态机在电路中的作用; 时钟树与自动综合技术

verilog 数字系统设计教程 逻辑部分

数字逻辑电路的构成- 组合逻辑:输出只是输入逻辑电平的函数(有延时),与电路的原始状态无关。

- 时序逻辑:输出不只是输入的逻辑电平的函数,还与电路所处的状态有关。同步时序逻辑是在同一时钟跳变节拍的前提下, 如输入条件满足,则进入下一状态,否则仍留 在原来的状态的状态机。

verilog 数字系统设计教程 逻辑部分

数字逻辑电路的构成- 组合逻辑:由与、或、非门组成的网络。常用的有:多路器、数据通路开关、加法器、乘法器等,没有记忆功 能。

- 时序逻辑: 由多个触发器和多个组合逻辑块组成的网络。常用的有:计数器、复杂的数据流动控制逻辑、运算 控制逻辑、指令分析和操作控制逻辑。同步时序逻辑的设 计是设计复杂的数字逻辑系统的核心。

- 存储器和寄存器:用于暂时存储数据信息。

verilog 数字系统设计教程 逻辑部分

组合逻辑举例之一一个八位数据通路控制器`define ON 1 ‘b 1 `define OFF 1 ‘b 0 wire ControlSwitch; wire [7:0] out, in; assign out = (ControlSwith== `ON) ? in : 8 ‘h00 ControlSwitch out[7] in[7] …... …... out[0]

in[0]

verilog 数字系统设计教程 逻辑部分

一个八位数据通路控制器的波形: ControlSwitch out[7] in[7] in[0] …... …... out[0]

in [7:0]31 out[7:0] 开 关 t 00 02 02 15 15 32 32 62 00 88 t

verilog 数字系统设计教程 逻辑部分

带寄存器的八位数据通路控制器的波形 ControlSwitchin[7] out[7]

Dout[7]

Q[7]

CLOCK

ControlSwitchin[0] out[0]

Dout[0]

Q[0]

CLOCK

verilog 数字系统设计教程 逻辑部分

带寄存器的八位数据通路控制器的Verilog描述`define ON 1 ‘b 1 `define OFF 1 ‘b 0 wire ControlSwitch; wire clock wire [7:0] out, in; always @(posedge clock) if (ControlSwith== `ON) out <= in ; else out <= out;

verilog 数字系统设计教程 逻辑部分

带复位端和使能端的寄存器module regena (clock,ena,reset,R,Q); parameter n=8; input [n-1:0] R; input clock, ena reset; output [n-1:0] Q; always @(posedge clock or negedge reset) if (!reset) Q<=0; else if (ena) Q<=R;resetR

enaQD Q

clock

endmodule

verilog 数字系统设计教程 逻辑部分

具有并行置数和使能控制输入的移位寄存器

ena

R0

load

R1

w

Q D Q D Q

clock resetQ0 Q1

verilog 数字系统设计教程 逻辑部分

具有并行置数和使能控制输入的移位寄存器module shiftregs(R,load,ena,w,clock,Q,reset); input [3:0] R; input w, load, ena, reset, clock; output [3:0] Q; reg [3:0] Q; integer k; always@(posedge clock or negedge reset) if (!reset) Q <=0; else if (load) Q<=R; else if (ena) begin Q[0] <= W; for (k=1; k<4; k+1) Q[k] <=Q[k-1]; end endmodule

verilog 数字系统设计教程 逻辑部分

组合逻辑举例之二:一个八位三态数据通路控制器`define ON 1 ‘b 1 `define OFF 1 ‘b 0 wire LinkBusSwitch; wire [7:0] outbuf; inout [7:0] bus; assign bus = (LinkBusSwitch== `ON) ? outbuf : 8 ‘hzz

LinkBusSwitch outbuf[7]

bus[7]

…...

…...

verilog 数字系统设计教程 逻辑部分

八位三态数据通路控制器的波形:LinkBusSwitch outbuf[7] b

us[7]

outbuf [7:0] 31 bus[7:0] ZZLinkBusSwitch

02 02

15 15

32 32

62 ZZ

88 t t

开 关

verilog 数字系统设计教程 逻辑部分

静态随机存储器(SRAM)

Sel信号必须维持一定 时间,直到经过两个反 向器传递过来的Data信 号可以自动保持; Data的驱动能力必须 大于小反向器的驱动能 力; 用的三极管很少,可 以把密度做得很高。

Sel Data

verilog 数字系统设计教程 逻辑部分

静态随机存储器(SRAM)阵列Sel0

Data[0]

Data[1]

Sel1

verilog 数字系统设计教程 逻辑部分

地址译码和SRAM块的读写write Data input

sel0 A0

A1Address Am-2 Am-1

地 sel1 址 译 码 器Sel2m-2 Sel2m-1

read Data output

verilog 数字系统设计教程 逻辑部分

开关逻辑应用举例寄存器间数据流动的控制开关开关S1组合逻辑

开关S2组合逻辑

d

q d q d q d

q

d

d

q d d

q

d

q q

d

q d

q

d

q

q

寄存器1

寄存器2

寄存器3

clock

verilog 数字系统设计教程 逻辑部分

开关逻辑应用举例寄存器间数据流动的控制开关

开关S1

开关S3

开关S5

d q clock寄存器A

d q寄存器B

d q寄存器C

开关S2

开关S4

开关S6

verilog 数字系统设计教程 逻辑部分

开关逻辑的时延问题控制数据运算和流动的开关的开启和关闭时序.输出控制开关Snin [7:0] out [15:0]

组合逻辑

in [7:0]

延时10ns

8 ‘ d 31

8 ‘ d 202 16‘ d 606

t t t

out[15:0]16 ‘ d 93 Sn 开

verilog 数字系统设计教程 逻辑部分

全局时钟网和平衡树结构触发器1

全局时钟网络

触发器

触发器n 缓冲器

图1 全局时钟网示意图

图2

平衡树结构示意图

本文来源:https://www.bwwdw.com/article/r3qi.html

Top