组合电路与时序电路

组合电路

在数字电路中用二进制代码表示有关信号称为二进制代码,实现编码操作的电路叫做编码器。

8线-3线编码器有效信号为斜对角信号表示出3bit值。
module code_8bit3(F,I)
output[2:0] F;
input[7:0] I;
reg[2:0] F;
always@(I)
case(I)
8b’00000001: F = 3’b000;
8b’00000010: F = 3’b001;
8b’00000100: F = 3’b010;
8b’00001000: F = 3’b011;
8b’00010000: F = 3’b100;
8b’00100000: F = 3’b101;
8b’01000000: F = 3’b110;
8b’10000000: F = 3’b111;
default: F=3’bx;
endcase
endmodule

8线-3线优先编码器,优先编码器允许多个输入信号同时有效,但只按其中优先级别最高的有效输入信号编码,对级别低的输入信号不予理睬。

问号操作符 ‘?’

数字译码器:它将二进制代码所表示的信息翻译成相应的状态信息,实现译码功能的电路称为译码器。
3线——8线译码器

奇偶校验器:信号中1的个数为奇数个或偶数个。电路为异或。
1、结构性描述代码:
module checker(Fod,Fev,b);
output Fod,Fev;
input[7:0]b;
wire U1(w1,b[0],b[1]);
wire U2(w2,b[2],b[3]);
wire U3(w3,b[4],b[5]);
wire U4(w4,b[6],b[7]);
wire U5(w5,w1,w2);
wire U6(w6,w3,w4);
wire U7(w1,w5,w6);
not U8(Fev,Fod);
endmodule

2、采用抽象性描述代码
module checker(Fod,Fev,b)
output Fod,Fev;
input [7:0]b;
assign Fod=^b; //按位异或
assign Fev=~Fod;
endmodule

时序电路

在时序电路的always语句中,用的都是非阻塞赋值<=
与组合电路不同,时序逻辑电路的输出不仅与当前时刻输入变量的取值有关,而且与电路的原状态,即与过去的输入情况有关。
时序电路的两个特点:
1)时序电路包括逻辑电路和存储电路两部分,存储电路具有记忆功能,通常由触发器组成。
2)存储电路的状态反馈到组合逻辑电路输入端,与外部输入信号共同决定组合逻辑电路的输出。

同步时序电路设计流程:画出状态转移图,化简时序转移图。

T触发器(反转触发器)

任意模值计数器:
反馈清零法:在时钟上升沿+1,当加到某个值时清零。
反馈清零计数器例程:
moduled comp_11(count,clk,rst);
out[3:0]count;
input clk,rst;
reg[3:0] count;
always@(posedge clk)
if(rst) count <= 4’b0000;
else
if(count == 4’b1010)
count <= 4’b0000;
else
count <= count+1;
endmodule;

反馈置位法,当计数到0时赋值为当前要计数值。

序列信号发生器
按照序列循环长度M和触发器数目n的关系一般可分为3种:
1)最大循环长度序列码,M=2n次方。
2)最长线形序列码(m序列码),M=2n次方-1;
3)任意循环长度序列码,M<2n次方。

  • 35
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值