⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 crc32_dat128.v

📁 本電子檔為 verilog cookbook,包含了通訊,影像,DSP等重要常用之verilog編碼,可作為工程師與初學者的參考手冊
💻 V
📖 第 1 页 / 共 5 页
字号:
input [31:0] crc_in;
input [127:0] dat_in;
output [31:0] crc_out;

wire [31:0] crc_out;

wire x378, x377, x376, x375, x374, x373, x372, 
       x371, x370, x369, x368, x367, x366, x365, x364, 
       x363, x362, x361, x360, x359, x358, x357, x356, 
       x355, x354, x353, x352, x351, x350, x349, x348, 
       x347, x346, x345, x344, x343, x342, x341, x340, 
       x339, x338, x337, x336, x335, x334, x333, x332, 
       x331, x330, x329, x328, x327, x326, x325, x324, 
       x323, x322, x321, x320, x319, x318, x317, x316, 
       x315, x314, x313, x312, x311, x310, x309, x308, 
       x307, x306, x305, x304, x303, x302, x301, x300, 
       x298, x297, x296, x295, x294, x293, x292, x291, 
       x290, x288, x287, x286, x285, x284, x283, x282, 
       x281, x280, x279, x278, x277, x276, x275, x274, 
       x273, x272, x271, x270, x269, x268, x267, x266, 
       x265, x264, x263, x262, x261, x260, x259, x258, 
       x257, x256, x255, x254, x253, x252, x251, x250, 
       x249, x248, x247, x246, x245, x244, x243, x242, 
       x241, x240, x239, x238, x237, x236, x235, x234, 
       x233, x232, x231, x230, x229, x228, x227, x226, 
       x225, x224, x223, x222, x221, x220, x219, x218, 
       x217, x216, x215, x214, x213, x212, x211, x210, 
       x209, x208, x207, x206, x205, x204, x203, x202, 
       x201, x200, x199, x198, x197, x196, x195, x194, 
       x193, x192, x191, x190, x189, x188, x187, x186, 
       x185, x184, x183, x182, x181, x180, x179, x178, 
       x177, x176, x175, x174, x173, x172, x171, x170, 
       x169, x168, x167, x166, x165, x164, x163, x162, 
       x161, x160, x159, x158, x157, x156, x155, x154, 
       x153, x152, x151, x150, x149, x148, x147, x146, 
       x145, x144, x143, x142, x141, x140, x139, x138, 
       x137, x136, x135, x134, x133, x132, x131, x130, 
       x129, x128, x127, x126, x125, x124, x123, x122, 
       x121, x120, x119, x118, x117, x116, x115, x114, 
       x113, x112, x111, x110, x109, x108, x107, x106, 
       x105, x104, x103, x102, x101, x100, x99, x98, 
       x97, x96, x95, x94, x93, x92, x91, x90, 
       x89, x88, x87, x86, x85, x84, x83, x82, 
       x81, x80, x79, x78, x77, x76, x75, x74, 
       x73, x72, x71, x70, x69, x68, x67, x66, 
       x65, x64, x63, x62, x61, x60, x59, x58, 
       x57, x56, x55, x54, x53, x52, x51, x50, 
       x49, x48, x47, x46, x45, x44, x43, x42, 
       x41, x40, x39, x38, x37, x36, x35, x34, 
       x33, x32, x31, x30, x29, x28, x27, x26, 
       x25, x24, x23, x22, x21, x20, x19, x18, 
       x17, x16, x15, x14, x13, x12, x11, x10, 
       x9, x8, x7, x6, x5, x4, x3, x2, 
       x1, x0;

assign crc_out = {x31,x30,x29,x28,x27,x26,x25,x24,x23,x22,x21,x20,x19,x18,x17,
        x16,x15,x14,x13,x12,x11,x10,x9,x8,x7,x6,x5,x4,x3,x2,x1,
        x0};

wire d0,d1,d2,d3,d4,d5,d6,d7,d8,d9,d10,d11,d12,d13,d14,
    d15,d16,d17,d18,d19,d20,d21,d22,d23,d24,d25,d26,d27,d28,d29,d30,
    d31,d32,d33,d34,d35,d36,d37,d38,d39,d40,d41,d42,d43,d44,d45,d46,
    d47,d48,d49,d50,d51,d52,d53,d54,d55,d56,d57,d58,d59,d60,d61,d62,
    d63,d64,d65,d66,d67,d68,d69,d70,d71,d72,d73,d74,d75,d76,d77,d78,
    d79,d80,d81,d82,d83,d84,d85,d86,d87,d88,d89,d90,d91,d92,d93,d94,
    d95,d96,d97,d98,d99,d100,d101,d102,d103,d104,d105,d106,d107,d108,d109,d110,
    d111,d112,d113,d114,d115,d116,d117,d118,d119,d120,d121,d122,d123,d124,d125,d126,
    d127;

assign { d127,d126,d125,d124,d123,d122,d121,d120,d119,d118,d117,d116,d115,d114,d113,
        d112,d111,d110,d109,d108,d107,d106,d105,d104,d103,d102,d101,d100,d99,d98,d97,
        d96,d95,d94,d93,d92,d91,d90,d89,d88,d87,d86,d85,d84,d83,d82,d81,
        d80,d79,d78,d77,d76,d75,d74,d73,d72,d71,d70,d69,d68,d67,d66,d65,
        d64,d63,d62,d61,d60,d59,d58,d57,d56,d55,d54,d53,d52,d51,d50,d49,
        d48,d47,d46,d45,d44,d43,d42,d41,d40,d39,d38,d37,d36,d35,d34,d33,
        d32,d31,d30,d29,d28,d27,d26,d25,d24,d23,d22,d21,d20,d19,d18,d17,
        d16,d15,d14,d13,d12,d11,d10,d9,d8,d7,d6,d5,d4,d3,d2,d1,
        d0} = dat_in [127:0];

wire c0,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,
    c15,c16,c17,c18,c19,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c30,
    c31;

assign { c31,c30,c29,c28,c27,c26,c25,c24,c23,c22,c21,c20,c19,c18,c17,
        c16,c15,c14,c13,c12,c11,c10,c9,c8,c7,c6,c5,c4,c3,c2,c1,
        c0} = crc_in [31:0];

    xor6 x378i (.out(x378),.a(x371),.b(x60),.c(x65),.d(x55),.e(x47),.f(x376));  // 6 ins 1 outs level 2

    xor6 x377i (.out(x377),.a(d126),.b(x372),.c(x46),.d(x373),.e(x374),.f(x375));  // 6 ins 1 outs level 2

    xor6 x376i (.out(x376),.a(c1),.b(c17),.c(d101),.d(d96),.e(d85),.f(d48));  // 6 ins 1 outs level 1

    xor6 x375i (.out(x375),.a(c14),.b(d26),.c(d72),.d(d97),.e(c0),.f(d65));  // 6 ins 1 outs level 1

    xor6 x374i (.out(x374),.a(d81),.b(d45),.c(d116),.d(d21),.e(d47),.f(d95));  // 6 ins 1 outs level 1

    xor6 x373i (.out(x373),.a(d117),.b(d10),.c(d73),.d(d14),.e(d111),.f(c31));  // 6 ins 1 outs level 1

    xor6 x372i (.out(x372),.a(c30),.b(d31),.c(d6),.d(d67),.e(c7),.f(d58));  // 6 ins 1 outs level 1

    xor6 x371i (.out(x371),.a(d53),.b(d54),.c(c15),.d(d29),.e(d104),.f(c8));  // 6 ins 1 outs level 1

    xor6 x370i (.out(x370),.a(d107),.b(x361),.c(x70),.d(x36),.e(x45),.f(1'b0));  // 5 ins 1 outs level 2

    xor6 x369i (.out(x369),.a(x51),.b(x38),.c(x43),.d(x40),.e(x46),.f(1'b0));  // 5 ins 1 outs level 2

    xor6 x368i (.out(x368),.a(x362),.b(x367),.c(x363),.d(x364),.e(x365),.f(x366));  // 6 ins 1 outs level 2

    xor6 x367i (.out(x367),.a(c30),.b(c5),.c(d119),.d(1'b0),.e(1'b0),.f(1'b0));  // 3 ins 1 outs level 1

    xor6 x366i (.out(x366),.a(c6),.b(d37),.c(d9),.d(d35),.e(c14),.f(d102));  // 6 ins 1 outs level 1

    xor6 x365i (.out(x365),.a(d7),.b(d38),.c(d59),.d(d62),.e(d33),.f(d86));  // 6 ins 1 outs level 1

    xor6 x364i (.out(x364),.a(d85),.b(d72),.c(d113),.d(d124),.e(d49),.f(c17));  // 6 ins 1 outs level 1

    xor6 x363i (.out(x363),.a(d17),.b(c16),.c(d88),.d(d80),.e(c19),.f(d28));  // 6 ins 1 outs level 1

    xor6 x362i (.out(x362),.a(d69),.b(d94),.c(c10),.d(d11),.e(c24),.f(d74));  // 6 ins 1 outs level 1

    xor6 x361i (.out(x361),.a(d58),.b(d68),.c(c31),.d(d64),.e(d106),.f(1'b0));  // 5 ins 1 outs level 1

    xor6 x360i (.out(x360),.a(x66),.b(x43),.c(x60),.d(x34),.e(1'b0),.f(1'b0));  // 4 ins 1 outs level 2

    xor6 x359i (.out(x359),.a(x351),.b(x35),.c(x357),.d(x55),.e(x57),.f(1'b0));  // 5 ins 1 outs level 2

    xor6 x358i (.out(x358),.a(x352),.b(x51),.c(x353),.d(x354),.e(x355),.f(x356));  // 6 ins 1 outs level 2

    xor6 x357i (.out(x357),.a(d18),.b(d121),.c(d36),.d(1'b0),.e(1'b0),.f(1'b0));  // 3 ins 1 outs level 1

    xor6 x356i (.out(x356),.a(d6),.b(d32),.c(c14),.d(d16),.e(d39),.f(d14));  // 6 ins 1 outs level 1

    xor6 x355i (.out(x355),.a(d8),.b(d102),.c(d52),.d(d99),.e(c0),.f(d123));  // 6 ins 1 outs level 1

    xor6 x354i (.out(x354),.a(c3),.b(d1),.c(d94),.d(d96),.e(d37),.f(d72));  // 6 ins 1 outs level 1

    xor6 x353i (.out(x353),.a(d73),.b(d26),.c(c28),.d(d58),.e(d113),.f(c6));  // 6 ins 1 outs level 1

    xor6 x352i (.out(x352),.a(c11),.b(d119),.c(d17),.d(d85),.e(d12),.f(d51));  // 6 ins 1 outs level 1

    xor6 x351i (.out(x351),.a(d2),.b(c27),.c(c25),.d(d107),.e(d70),.f(d64));  // 6 ins 1 outs level 1

    xor6 x350i (.out(x350),.a(x342),.b(x69),.c(x34),.d(x347),.e(x348),.f(1'b0));  // 5 ins 1 outs level 2

    xor6 x349i (.out(x349),.a(x343),.b(d15),.c(x344),.d(x345),.e(x346),.f(1'b0));  // 5 ins 1 outs level 2

    xor6 x348i (.out(x348),.a(c7),.b(d101),.c(d19),.d(d81),.e(c24),.f(d32));  // 6 ins 1 outs level 1

    xor6 x347i (.out(x347),.a(d65),.b(d38),.c(d37),.d(d71),.e(d3),.f(d84));  // 6 ins 1 outs level 1

    xor6 x346i (.out(x346),.a(d122),.b(c13),.c(d14),.d(d8),.e(d52),.f(d31));  // 6 ins 1 outs level 1

    xor6 x345i (.out(x345),.a(d18),.b(d99),.c(d68),.d(d73),.e(d109),.f(c29));  // 6 ins 1 outs level 1

    xor6 x344i (.out(x344),.a(d60),.b(d17),.c(d10),.d(d86),.e(d125),.f(d111));  // 6 ins 1 outs level 1

    xor6 x343i (.out(x343),.a(d54),.b(d9),.c(d69),.d(d39),.e(d36),.f(d123));  // 6 ins 1 outs level 1

    xor6 x342i (.out(x342),.a(d115),.b(d2),.c(d89),.d(d45),.e(d103),.f(c2));  // 6 ins 1 outs level 1

    xor6 x341i (.out(x341),.a(x333),.b(x60),.c(x61),.d(x43),.e(x339),.f(x69));  // 6 ins 1 outs level 2

    xor6 x340i (.out(x340),.a(x334),.b(x55),.c(x335),.d(x336),.e(x337),.f(x338));  // 6 ins 1 outs level 2

    xor6 x339i (.out(x339),.a(d39),.b(c10),.c(c18),.d(c13),.e(1'b0),.f(1'b0));  // 4 ins 1 outs level 1

    xor6 x338i (.out(x338),.a(d109),.b(d116),.c(d86),.d(d15),.e(c7),.f(d94));  // 6 ins 1 outs level 1

    xor6 x337i (.out(x337),.a(d114),.b(d45),.c(d58),.d(d20),.e(d78),.f(d112));  // 6 ins 1 outs level 1

    xor6 x336i (.out(x336),.a(d46),.b(d65),.c(d4),.d(d47),.e(d106),.f(c31));  // 6 ins 1 outs level 1

    xor6 x335i (.out(x335),.a(d103),.b(d98),.c(c15),.d(d120),.e(d44),.f(c21));  // 6 ins 1 outs level 1

    xor6 x334i (.out(x334),.a(d49),.b(d18),.c(c20),.d(c4),.e(d113),.f(d100));  // 6 ins 1 outs level 1

    xor6 x333i (.out(x333),.a(d6),.b(d73),.c(d117),.d(d80),.e(d54),.f(c17));  // 6 ins 1 outs level 1

    xor6 x332i (.out(x332),.a(x50),.b(x59),.c(x36),.d(x66),.e(x40),.f(1'b0));  // 5 ins 1 outs level 2

    xor6 x331i (.out(x331),.a(x323),.b(x39),.c(x34),.d(x328),.e(x329),.f(1'b0));  // 5 ins 1 outs level 2

    xor6 x330i (.out(x330),.a(d39),.b(x324),.c(x67),.d(x325),.e(x326),.f(x327));  // 6 ins 1 outs level 2

    xor6 x329i (.out(x329),.a(d42),.b(d24),.c(d1),.d(c26),.e(d37),.f(d115));  // 6 ins 1 outs level 1

    xor6 x328i (.out(x328),.a(d106),.b(d122),.c(d55),.d(c3),.e(d119),.f(c15));  // 6 ins 1 outs level 1

    xor6 x327i (.out(x327),.a(d48),.b(d74),.c(d92),.d(c23),.e(d71),.f(d72));  // 6 ins 1 outs level 1

    xor6 x326i (.out(x326),.a(c19),.b(d28),.c(d54),.d(d5),.e(c10),.f(d20));  // 6 ins 1 outs level 1

    xor6 x325i (.out(x325),.a(d75),.b(d126),.c(c9),.d(d67),.e(d73),.f(d21));  // 6 ins 1 outs level 1

    xor6 x324i (.out(x324),.a(d7),.b(d127),.c(d10),.d(d64),.e(c16),.f(d0));  // 6 ins 1 outs level 1

    xor6 x323i (.out(x323),.a(d103),.b(d40),.c(d83),.d(d29),.e(d41),.f(d17));  // 6 ins 1 outs level 1

    xor6 x322i (.out(x322),.a(x313),.b(x38),.c(x32),.d(x320),.e(x55),.f(x71));  // 6 ins 1 outs level 2

    xor6 x321i (.out(x321),.a(x314),.b(x315),.c(x316),.d(x317),.e(x318),.f(x319));  // 6 ins 1 outs level 2

    xor6 x320i (.out(x320),.a(d82),.b(d76),.c(d72),.d(1'b0),.e(1'b0),.f(1'b0));  // 3 ins 1 outs level 1

    xor6 x319i (.out(x319),.a(c26),.b(d55),.c(d68),.d(c20),.e(d113),.f(d66));  // 6 ins 1 outs level 1

    xor6 x318i (.out(x318),.a(d54),.b(c21),.c(d108),.d(d115),.e(d7),.f(d14));  // 6 ins 1 outs level 1

    xor6 x317i (.out(x317),.a(c16),.b(d124),.c(c12),.d(d70),.e(d5),.f(c2));  // 6 ins 1 outs level 1

    xor6 x316i (.out(x316),.a(d126),.b(c27),.c(d65),.d(c25),.e(d4),.f(d123));  // 6 ins 1 outs level 1

    xor6 x315i (.out(x315),.a(c31),.b(d1),.c(d38),.d(d71),.e(d25),.f(d40));  // 6 ins 1 outs level 1

    xor6 x314i (.out(x314),.a(d50),.b(d60),.c(d79),.d(d73),.e(d8),.f(c9));  // 6 ins 1 outs level 1

    xor6 x313i (.out(x313),.a(d45),.b(d20),.c(d121),.d(d80),.e(d116),.f(d56));  // 6 ins 1 outs level 1

    xor6 x312i (.out(x312),.a(d59),.b(x303),.c(x59),.d(x46),.e(x40),.f(1'b0));  // 5 ins 1 outs level 2

    xor6 x311i (.out(x311),.a(x308),.b(x70),.c(x61),.d(x43),.e(x309),.f(1'b0));  // 5 ins 1 outs level 2

    xor6 x310i (.out(x310),.a(d37),.b(x304),.c(x32),.d(x305),.e(x306),.f(x307));  // 6 ins 1 outs level 2

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -