两道HDL题目,牛人帮忙看看哈

我都不会,牛人帮忙看看啊,是英伟达的笔试题目:)   

两道HDL题目,牛人帮忙看看哈


规定:英语作答,不能写Verilog,必须用门电路表示


1.
设计A[9:0]*1101.10111的电路,要求用尽可能少的门


2.
设计地址生成器,要求依次输出以下序列:


0,8,2,10,4,12,...,15,


16,24,18,26,...,31,


32,40,34,42,...,47,



48,56,50,58,...,63,


64,72,66,76,...,79


我也来说两句 查看全部回复

最新回复

  • windzjy (2008-9-25 09:01:46)

    用门电路,好像有点难度,关注
  • ql_smbj (2008-9-25 11:33:30)

    计数器 触发器 啥的 可以用不?
  • qmdong (2008-9-25 15:33:26)

    1.1101.10111必须是正数,化简得A*100-100.0-100-1,
    乘累加可有阵列加法器(全部是半加和全加器)或4-2压缩器
    2.两个计数器:一个count1[2:0]计数到100就返回000
    另一个count2[3:0]
    输出output={count1,count2[0],count2[2:1],count2[3]}

    [ 本帖最后由 qmdong 于 2008-9-26 11:21 编辑 ]
  • waiwai788 (2008-9-25 15:59:42)

    1
    答:进行小数乘法运算,有一个比较简单的方法,就是把1101.10111变成补码的形式,这样你的乘法运算就可以变成加法运算,这样就可以减少设计的门电路.
  • ccj507 (2008-9-25 16:14:37)

    请问楼主: 0,8,2,10,4,12,...,15, 中的省略号是什么? 否则,序列不好判断~~~
  • ococ (2008-9-25 16:24:57)

    期待牛出现……
  • ql_smbj (2008-9-25 17:03:44)

    QUOTE:

    原帖由 ccj507 于 2008-9-25 16:14 发表
    请问楼主: 0,8,2,10,4,12,...,15, 中的省略号是什么? 否则,序列不好判断~~~
    省略号代表的是 13 14 吧!
  • smallred (2008-9-25 19:45:06)

    学习学习

    [ 本帖最后由 smallred 于 2008-9-25 19:46 编辑 ]
  • 飞扬紫百合 (2008-9-25 21:54:38)

    第一题好像在哪本书上见过
    好像没有什么门
    两三个吧
    忘了
    记不起来了
  • amin2008 (2008-9-25 23:54:33)

    关注中
  • addn10 (2008-9-25 23:56:09)

    2
    use a 7bit counter
    count[6:0]
    and then
    output={count[6:4],count0],count2[2:1],count[3]}

    WHEN count=1001111 THEN reset it

    [ 本帖最后由 addn10 于 2008-9-26 00:01 编辑 ]
  • leon0236 (2008-9-26 01:00:33)

    我来瞻仰一下
  • 不知尘 (2008-9-26 08:33:48)

    不太懂,先看看
  • ql_smbj (2008-9-26 09:24:24)

    QUOTE:

    原帖由 addn10 于 2008-9-25 23:56 发表
    2
    use a 7bit counter
    count[6:0]
    and then
    output={count[6:4],count0],count2[2:1],count[3]}

    WHEN count=1001111 THEN reset it
    原题的输出序列并没有 1001111 个,所以计数到1001111再复位 显然不合适 。。。
  • addn10 (2008-9-26 09:51:06)

    QUOTE:

    原帖由 ql_smbj 于 2008-9-26 09:24 发表


    原题的输出序列并没有 1001111 个,所以计数到1001111再复位 显然不合适 。。。
    well the sum of series number elements :16*5=80
    so counter counts fromt 0~79 is ok
  • ql_smbj (2008-9-26 10:58:33)

    QUOTE:

    原帖由 addn10 于 2008-9-26 09:51 发表


    well the sum of series number elements :16*5=80
    so counter counts fromt 0~79 is ok
    现在的问题就是不知道 这个序列 到底是什么样的?

    我理解是 0 8 2 10 4 12 13 14 15  一行才9个数 9*4+7(最后一行7个?)

    红色的字 是我的理解 。。。
  • smallred (2008-9-26 11:14:39)

    应该是 0 8 2 10 4 12 6 14 1 9 3 11 5 13 7 15
  • smallred (2008-9-26 11:16:03)

    想 问一下这种题大家一般怎样找规律和实现阿
  • addn10 (2008-9-26 11:22:04)

    QUOTE:

    原帖由 ql_smbj 于 2008-9-26 10:58 发表


    现在的问题就是不知道 这个序列 到底是什么样的?

    我理解是 0 8 2 10 4 12 13 14 15  一行才9个数 9*4+7(最后一行7个?)

    红色的字 是我的理解 。。。
    my guess the series as below

      0,  8,  2,10,  4,12,  6,14,  1,  9,  3,11,  5,13,  7,15
    16,24,18,26,20,28,22,30,17,25,19,27,21,29,23,31
    32,......................................................................47
    48,......................................................................63
    64,......................................................................79
  • litholove (2008-9-26 11:28:58)

    1, 用最少的门,即要减少被乘数1的个数。将被乘数左移5位,得出结果后在将其右移5位。
    110110111=1000_000_000 - 1_000-1
    结果mul= (A << 9 - A<< 3 - A) >> 5

    2, 做一个7位计数器,从0~79;列出真值表0000--》0000 ; 0001--》1000;0010--》1010 。。。。。。1111--》1111;
    addr = {q6,q5,q4,q0,q2,q1,q3};