← 2024 · NVIDIA · ASIC Design Intern(上海) 笔试

推荐答案 测试一下

Implement a combination logic for dout[1:0] = din[2:0]/3. (The more options, the better)

编程题 中等 2024秋招笔试真题Online AssessmentNVIDIA ASIC Design I

参考答案

输入 din 为 3 位无符号数(0~7),输出 dout 为 2 位无符号数(0~2),表示 din 除以 3 的商(忽略余数)。组合逻辑实现方式多样: 1. **真值表 + 卡诺图化简**:列出所有 8 种输入对应的输出,得到 dout[1]=din[2]&din[1]'&din[0] | din[2]&din[1]&din[0]',dout[0]=din[2]&din[1]'&din[0]' | din[2]&din[1]&din[0] | din[2]'&din[1]&din[0]。化简后可用与或门实现。 2. **查找表(LUT)**:使用 8×2 位 ROM,地址对应 din,数据对应 dout。在 FPGA 中可直接用 LUT 原语或综合工具自动推断。 3. **硬件描述语言(case 语句)**:如 Verilog 中 `always @(*) case(din) 0: dout=0; ... 7: dout=2; endcase`,综合为组合逻辑。 4. **算术运算(定点乘法)**:将除以 3 近似为乘以 0.33333,用 3 位乘法器:dout = (din * 85) >> 8,但需要 3×8 位乘法器和移位,资源较多。 5. **减法器迭代**:用组合逻辑实现连续减 3 直到小于 3,统计减法次数,但迭代次数不定,组合实现复杂。 6. **二选一比较器**:判断 din≥3、≥6 分别输出 0、1、2,如 dout = (din>=6)?2:((din>=3)?1:0);用两个比较器和选择器。 常用方案为 case 或比较器,兼顾简洁与效率。

涉及知识点

  • 组合逻辑设计方法
  • 真值表与卡诺图化简
  • 查找表(LUT)实现
  • 定点除法近似技术
  • 硬件描述语言(case语句)
  • 基于比较器的条件输出
← 上一题
登录后反馈错题