TAG
- F P G A 、期末、速成 FPGA、期末、速成 FPG A 、期末、速成
// – 习题1
– //
CPLD(Complex Programmable Logic Device)是 Complex PLD 的简称,一种较 PLD 为复杂的逻辑元件。
CPLD 逻辑资源多寄存器少,FPGA 逻辑弱而寄存器多,这正好与控制密集型系统与数据密集型系统相对应。
CPLD 是基于乘积项结构的可编程逻辑器件,FPGA 是基于查找表结构的可编程逻辑器件。
//
在 FPGA(Field-Programmable Gate Array —— 现场可编程门阵列)中,使用 LUT(查找表)来实现组合逻辑电路的功能。
在 FPGA 器件中,LUT 主要用于实现组合电路,在实现结构上一个 4 输入的查找表相当于一个 16 位的RAM。
通常而言,FPGA 逻辑块之间是分布式互连,其特点是等延时,而 CPLD 逻辑块之间是集中式的互连,其延时与系统布局有关。
FPGA 一般是基于 SRAM 的配置方式,配置方法相对灵活。
基于SRAM(Static Random-Access Memory)的 FPGA 器件之所以需要在每次上电后进行一次配置,是因为 SRAM 是一种易失性存储器,其存储的配置信息会在断电时丢失。
//
ASIC(Application-Specific Integrated Circuit)是指应用特定集成电路,是一种定制化设计的集成电路,专为特定应用领域或任务而设计。
//
GAL 是比 FPGA 逻辑规模更小的可编程逻辑器件。
GAL(Generic Array Logic)是一种可编程逻辑器件,属于复杂的数字集成电路(IC)家族。它是一种与FPGA(Field-Programmable Gate Array)类似的可编程逻辑设备,但规模相对较小。
//
PLA(Programmable Logic Array):PLA 包含一个可编程的 AND 阵列和一个可编程的 OR 阵列。
PAL:在 PAL 中,用户主要通过编程 AND 阵列来实现逻辑功能,而 OR 阵列是固定的,无法由用户直接编程。
SPLD(Simple Programmable Logic Device)
PLA、PAL、GAL 等 SPLD 器件更适合于实现大规模的组合逻辑而不是时序逻辑电路。
//
RTL 是 Register Transfer Level(寄存器传输级)的缩写,它是数字电路设计的一种抽象级别。RTL 描述了数字电路中的数据流和控制流,强调在时钟周期内数据是如何从一个寄存器传输到另一个寄存器的。
//
若 Verilog HDL 模块中的输入/输出信号类型缺省,则该信号为 wire 型,具有无数据存储特性。
在数字电路设计中,双向信号通常用于特定情况,如总线或双工通信,但在模块级别的设计中,一般使用单向信号来更好地控制信号的流向。
//
= 阻塞赋值:顺序执行
<= 非阻塞赋值:并行执行
//
A. 系统级描述 B. 算法级描述 C. 门级描述 D. RTL级描述 用Verilog语言,四种描述分别描述一位全加器
module full_adder (
input A, B, Cin,
output Sum, Cout
) ;
assign {
Sum, Cout} = A + B + Cin;
endmodule
module full_adder (
input A, B, Cin,
output Sum, Cout
) ;
always_comb begin
Sum = A ^ B ^ Cin;
Cout = ( A & B) | ( B & Cin) | ( A & Cin) ;
end
endmodule
module full_adder (
input A, B, Cin,
output Sum, Cout
) ;
wire w1, w2, w3, w4;
assign w1 = A ^ B;
assign w2 = w1 ^ Cin;
assign w3 = A & B;
assign w4 = w3 | ( w1 & Cin) ;
assign {
Sum, Cout} = {
w2, w4} ;
endmodule
module full_adder (
input wire A, B, Cin,
output wire Sum, Cout
) ;
reg