EDA总结(4)

2019-06-04 22:16

input clk,clrb; input [3:0] d; output [3:0] q; reg [3:0]q;

always @(posedge clk or posedge clrb) begin

if(clrb)

q<=0; else

q<=d;

end endmodule

10.1 加法器

4位并行加法器:

module add_4(X,Y,sum,C); input [3:0] X,Y; output[3:0] sum; output C;

assign {C, sum}=X+Y; endmodule

16位并行加法器:

module add_16(X,Y,sum,C); input [15:0] X,Y; output [15;0] sum; output C;

assign {C, sum}=X+Y; endmodule

10.2 乘法器

4位乘法器

module mult_4(X,Y,Product); input [3:0] X,Y; output [7:0] Product; assign Product=X*Y; endmodule

8位乘法器:

module mult 8(X,Y,Product); input [7:0] X,Y;

output [15:0] Product; assign Product=X*Y; endmodule

10.3 比较器

module compare_n (X,Y,XGY,XSY,XEY); else XEY=0; input [width-1:0] X,Y; if(X>Y) output XGY, XSY,XEY; XGY=1; reg XGY, XSY, XEY; parameter width=8; always @(X or Y) begin

if(X==Y) XEY=1; 10.4

else XGY=0; if(X

XSY=1; else XSY=0; end endmodule

多路选择器

module Mux_8(addr,in1,in2,in3,in4,in5,in6,in7,in8,Mout,nCS); input [2:0] addr;

input [with-1:0] in1,in2,in3,in4,in5,in6,in7,in8;

input nCS;

output [wdth-1:0] Mout; reg [wdth-1:0] Mout; parameter with=8;

always@ (addr or in1 or in2 or in3 or in4 or in5 or in6 or in7 or in8 or nCS) begin

if(!nCS) //nCS低电平使多路选择器工作 case(addr)

3’b000: Mout=in1; 3’b001: Mout=in2; 3’b010: Mout=in3; 3’b011: Mout=in4; 3’b100: Mout=in5; 3’b101: Mout=in6; 3’b110: Mout=in7; 3’b111: Mout=in8;

endcase

else //nCS高电子关闭多路选择器 Mout=0; end endmodule 10.6

流水线

提高速度的有效方法:在已设计好的数字逻辑中插入寄存器,形成流水线,可以大大提高处理速度。

流水线加法器和组合逻辑加法器的比较:

16位全加器

组合逻辑加法器:占用34个宏单元,总延迟45.6ns 流水线加法器:占用81个宏单元,总延迟15.1ns

运算吞吐量增加了3倍!

重要概念: 数字系统设计中的一个矛盾问题:面积 —— 速度

第12章 同步状态机的原理、结构和设计

1.什么是有限状态机

- 有限状态机是由寄存器组和组合逻辑构成的硬件时序电路;

- 其状态(即由寄存器组的1和0的组合状态所构成的有限个状态)只能在同一时钟跳变沿的情况下才能从一个状态转向另一个状态;

- 究竟转向哪一状态不但取决于各个输入值,还取决于当前状态。

- 状态机可用于产生在时钟跳变沿时刻开关的复杂的控制逻辑,是数字逻辑的控制核心。 2.Moore状态机

定义:如果时序逻辑的输出只取决于当前的状态,称之为Moore状态机。

结构:

高速状态机设计方法

1.在设计高速电路时,把状态变量直接用作输出

2.在输出逻辑G后面再加一组与时钟同步的寄存器输出流水线寄存器,即完全同步地输出,这种输出称为流水线化的输出(Pipelined outputs)的Mealy状态机。 要点:

对于用FPGA实现的有限状态机建议采用独热码。因为虽然独热编码多用了两个触发器,但所用组合电路可省一些,因而使电路的速度和可靠性有显著提高,而总的单元数并无显著增加。

采用独热编码后出现多余的状态,即一些不可到达的状态,因此,在case语句的最后需要增加default分支项。 有限状态机设计的一般步骤:

(1)逻辑抽象,得出状态转换图;——手工完成

(2)状态化简;——手工或计算机完成

如果在状态转移图中出现这样两个状态:它们在相同的输入下转换到同一状态去,并得到相同的输出,则称它们为等价状态。等价状态是重复的,可以合并为一个。 (3)状态分配(状态编码);——手工完成

在触发器资源丰富的FPGA或ASIC设计中,采用独热编码(one-hot-coding)。 (4)选定触发器的类型并求出状态方程、驱动方程和输出方程。——计算机完成 (5)按照方程得出逻辑图。——计算机完成

13.1Verilog HDL设计可综合的状态机的指导原则

1、在采用FPGA设计状态机时最好用One—Hot编码;采用CPLD器件设计状态机时采用顺序编码方式(自然二进制数);

2、采用case、casex或casez语句建立状态机模型,注意Default项,并将状态变量设为初始状态或’bx;

3、状态机应该有一个异步或同步复位端,以便在加电时将电路复位到有效状态,CPLD/FPGA器件都支持异步复位;

4、状态转换只能由一个时钟控制,即设计为同步状态机,否则综合工具将生成错误电路。 5、如果一定要设计异步状态机,建议采用电路图输入的方法,或用实例引用的写法把几个引用的实例用异步时钟连接起来,而不要直接用Verilog RTL级别的描述方法通过综合来产生。


EDA总结(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:审计报告无法出具

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: