FPGA - 240102 - FPGA期末速成

  • TAG - F P G A 、期末、速成 FPGA、期末、速成 FPGA、期末、速成

  • // – 习题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语言,四种描述分别描述一位全加器
// A. 系统级描述:
module full_adder (
  input A, B, Cin,
  output Sum, Cout
);
  // 系统级描述中可以使用高级的抽象,不关注具体电路实现细节
  assign {
   Sum, Cout} = A + B + Cin;
endmodule
// B. 算法级描述:
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
// C. 门级描述:
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
// D. RTL级描述(寄存器传输级描述):
module full_adder (
  input wire A, B, Cin,
  output wire Sum, Cout
);
  // RTL级描述涉及到数据传输和寄存器的操作
  reg 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值