数字逻辑寄存器与移位

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

module myreg_8 ( data, clk, reset, oe, q ) ;
input clk, reset, oe ;
input [7:0] data ;
output [7:0] q ; reg [7:0] temp ; // 目的?
assign q = ( oe==1 ) ? temp : 8’h00; // 功能?
Q1
D1
CP R
QC R_OUT
Q0
D0
CP
R
≥1 && &&
QC QB LIN C
四选一 B
MSI移位寄存器74LS194的应用
output SEROUT ;
reg [3:0] Q ;
always @ ( posedge CP )
begin
可否?
Q[3]<= SERIN;
Q[3] = SERIN;
Q[2]<=Q[3];
Q[2] =Q[3];
Q[1]<=Q[2];
Q[1] =Q[2];
Q[0]<=Q[1];
Q[0] =Q[1];
input SIN, CP , LD;
input [3:0] Data ;
output SEROUT ;
reg [3:0] Q ;
always @ ( posedge CP )
if (LD==1) Q<=Data ;
// 并入
else begin Q[3]<= SIN ;
Q[2]<=Q[3] ;
Q[1]<=Q[2] ;
endmodule
3)并入——串出结构移位寄存器
SEROUT
Q3 D3 CP
CP
≥1
&
&
SIN
1
Q2 D2 CP
≥1
&
&
Q1 D1 CP
Q0 D0 CP
≥1
&
&
≥1
&
&
LD/SHIFT A
B
C
D
并入—串出的Verilog HDL模型
module shifter_R ( SIN, CP, LD, Data, SEROUT ) ;
按逻辑功能划分:串行输入——串行输出; 串行输入——并行输出; 并行输入——串行输出; 并行输入——并行输出。
按移位方式划分: 单向移位、双向移位、 循环移位、扭环移位
利用移位操作,可实现简单的乘除法。例如:将原寄存 器中的数据向高位移一位,相当于乘以 2;向低位移一位, 相当于除以 2。
在数字通信系统中,移位寄存器广泛用于并行数据和 串行数据之间的转换。
使能输入8位并行寄存器74LS377
二选一 1D
& ≥1 D Q
>CLK
&
CP
/G
/G 11
CP 1
1位等效逻辑图
/G=0时,在CP上 升沿,8位数据才 写入寄存器。
/G=1时,保持
74LS377
>CLK
EN
1Q
1D
2Q
2D
3Q
3D
4Q
4D
5Q
5D
6Q
6D
7Q
7D
8Q
8D
逻辑符号
寄存器的Verilog HDL描述
end assign SEROUT= Q[0]; // ? 体会阻塞与非阻塞区别 endmodule
结论:时序描述,用非阻塞。
2)串入——并出结构移位寄存器
QA
QB
QC
QD
&
RD
Q3 D3 CP SERIN CP
&
&
&
Q2 D2 CP
Q1 D1 CP
Q0 D0 CP
串入—并出的Verilog HDL模型
C
QD Q0 Q0 CP D0
D
通用四位并行寄存器74LS175
CP /CLR 异步清零
数据输入端, 在CP上升沿写 入寄存器。
74LS175
>CLK 1Q
CLR 1Q
2Q
1D
2Q
2D
3Q
3D
3Q
4D
4Q
4Q
逻辑符号
互补输出端
其逻辑图见教材P212。
2)有控制功能的寄存器
QA
QB
QC
QD
&
&
&
&
八位三态输出并行寄存器74LS374
CP /OE
输出选通
在CP上升 沿,8位数 据写入寄 存器。
74LS374
>CLK
OE
1Q
1D
2Q
2D
3Q
3D
4Q
4D
5Q
5D
6Q
6D
7Q
7D
8Q
8D
逻辑符号
/OE=0,寄存 器数据输出; /OE=1,高阻 状态。这种寄 存器适于挂接 到公共总线上。
其逻辑图见教材P213。
M CP
Q3 Q3 CP R D3
/ RESET
Q2 Q2 CP R D2
Q1 Q1 CP R D1
Q0 Q0 CP R D0
A
B
C
D
/ RESET有效时,通过异步清零端将寄存器置为:0000
在CP上升沿,数据输入端(ABCD)的信息写入寄存器
只有在控制信号M=1时,才送到输出端(QAQBQCQD)
6.2 寄存器
在数字系统中经常使用寄存器存放二进制代码,如地址 寄存器、指令寄存器、数据寄存器、控制寄存器、状态寄存 器、……,寄存器是由一组触发器构成的,信息是在统一的 时钟脉冲作用下存入寄存器。
1)简单寄存器
QA
Q3 Q3 CP D3
CP A
QB Q2 Q2 CP
D2
B
QC Q1 Q1 CP D1
always @ ( posedge clk or negedge reset )
begin if (!reset) temp <= 8’h00; // 同步清零?
else temp <= data;
end endmodule
如何添加输入使能?
6.3 移位寄存器
移位寄存器是一种既能存储数据,又能对所存数据在 时钟节拍作用下按位向高位(或低位)顺移的寄存器。
Q[0]<=Q[1] ;
end
assign SEROUT= Q[0] ;
// 串出
endmodule
如何设计满足下列功能要求的移位寄存器?
1)低有效异步清零 2)保持 3)右移一位 4)左移一位 5)并行置数
L_OUT QA
Leabharlann Baidu
CLR CLK
Q2 D2 R CP
QA RIN QB A
S1
1
S0
1
QB
module shifter_R ( SERIN, CP, RD, OUT ) ; input SERIN, CP, RD ; output [3:0] OUT ; reg [3:0] Q ; always @ ( posedge CP ) begin Q[3]<= SERIN; Q[2]<=Q[3]; Q[1]<=Q[2]; Q[0]<=Q[1]; end assign OUT= (RD==1) ? Q : 0 ; // ?
1)串入——串出结构移位寄存器
Q3 D3 CP
SERIN
CP
Q2 D2 CP
Q1 D1 CP
SEROUT
Q0 D0 CP
若视该电路为右移,则左移?
串入—串出的Verilog HDL模型
module shifter_R ( SERIN, CP, SEROUT ) ;
input SERIN, CP ;
相关文档
最新文档