* information on how to contact the on-line assignments server. A checksum * is included that is computed from the .verify statements, so don't change * those or you won't be able to complete your checkoff! .checkoff "6004.csail.mit.edu/currentsemester/6004assignment.doit" "Lab #3" -450093170 .verify alu[31:0] periodic(9.9E-8,1.0000000000000001E-7) + 0x00000000 // 99ns + 0x55555555 // 199ns + 0x55555555 // 299ns + 0xAAAAAAAA // 399ns + 0xAAAAAAAA // 499ns + 0xAAAAAAAA // 599ns + 0x55555554 // 699ns + 0x00000000 // 799ns + 0x00000000 // 899ns + 0xFFFFFFFF // 999ns + 0x00000001 // 1099ns + 0x00000002 // 1199ns + 0x00000004 // 1299ns + 0x00000008 // 1399ns + 0x00000010 // 1499ns + 0x00000020 // 1599ns + 0x00000040 // 1699ns + 0x00000080 // 1799ns + 0x00000100 // 1899ns + 0x00000200 // 1999ns + 0x00000400 // 2099ns + 0x00000800 // 2199ns + 0x00001000 // 2299ns + 0x00002000 // 2399ns + 0x00004000 // 2499ns + 0x00008000 // 2599ns + 0x00010000 // 2699ns + 0x00020000 // 2799ns + 0x00040000 // 2899ns + 0x00080000 // 2999ns + 0x00100000 // 3099ns + 0x00200000 // 3199ns + 0x00400000 // 3299ns + 0x00800000 // 3399ns + 0x01000000 // 3499ns + 0x02000000 // 3599ns + 0x04000000 // 3699ns + 0x08000000 // 3799ns + 0x10000000 // 3899ns + 0x20000000 // 3999ns + 0x40000000 // 4099ns + 0x80000000 // 4199ns + 0x00000000 // 4299ns + 0x00000000 // 4399ns + 0x00000000 // 4499ns + 0x00000000 // 4599ns + 0x00000001 // 4699ns + 0x00000001 // 4799ns + 0x00000000 // 4899ns + 0x00000001 // 4999ns + 0x00000001 // 5099ns + 0x00000000 // 5199ns + 0x00000000 // 5299ns + 0x00000000 // 5399ns + 0x00000001 // 5499ns + 0x00000000 // 5599ns + 0x00000001 // 5699ns + 0x00000000 // 5799ns + 0x00000000 // 5899ns + 0x00000000 // 5999ns + 0xFFFFFFFF // 6099ns + 0x00000000 // 6199ns + 0xFFFFFFFF // 6299ns + 0xFFFFFFFF // 6399ns + 0xFFFFFFFF // 6499ns + 0x00000000 // 6599ns + 0xFFFFFFFF // 6699ns + 0xFFFFFFFF // 6799ns + 0x00000000 // 6899ns + 0x00000000 // 6999ns + 0xFFFFFFFF // 7099ns + 0x00000000 // 7199ns + 0xFFFFFFFF // 7299ns + 0x87654321 // 7399ns + 0x0ECA8642 // 7499ns + 0x1D950C84 // 7599ns + 0x3B2A1908 // 7699ns + 0x76543210 // 7799ns + 0xECA86420 // 7899ns + 0xD950C840 // 7999ns + 0xB2A19080 // 8099ns + 0x65432100 // 8199ns + 0xCA864200 // 8299ns + 0x950C8400 // 8399ns + 0x2A190800 // 8499ns + 0x54321000 // 8599ns + 0xA8642000 // 8699ns + 0x50C84000 // 8799ns + 0xA1908000 // 8899ns + 0x43210000 // 8999ns + 0x86420000 // 9099ns + 0x0C840000 // 9199ns + 0x19080000 // 9299ns + 0x32100000 // 9399ns + 0x64200000 // 9499ns + 0xC8400000 // 9599ns + 0x90800000 // 9699ns + 0x21000000 // 9799ns + 0x42000000 // 9899ns + 0x84000000 // 9999ns + 0x08000000 // 10099ns + 0x10000000 // 10199ns + 0x20000000 // 10299ns + 0x40000000 // 10399ns + 0x80000000 // 10499ns + 0xFEDCBA98 // 10599ns + 0x3F6E5D4C // 10699ns + 0x3FB72EA6 // 10799ns + 0x0FDB9753 // 10899ns + 0x0FEDCBA9 // 10999ns + 0x03F6E5D4 // 11099ns + 0x03FB72EA // 11199ns + 0x00FDB975 // 11299ns + 0x007EDCBA // 11399ns + 0x007F6E5D // 11499ns + 0x001FB72E // 11599ns + 0x001FDB97 // 11699ns + 0x0007EDCB // 11799ns + 0x0007F6E5 // 11899ns + 0x0001FB72 // 11999ns + 0x0001FDB9 // 12099ns + 0x0000FEDC // 12199ns + 0x00003F6E // 12299ns + 0x00003FB7 // 12399ns + 0x00000FDB // 12499ns + 0x00000FED // 12599ns + 0x000003F6 // 12699ns + 0x000003FB // 12799ns + 0x000000FD // 12899ns + 0x0000007E // 12999ns + 0x0000007F // 13099ns + 0x0000001F // 13199ns + 0x0000001F // 13299ns + 0x00000007 // 13399ns + 0x00000007 // 13499ns + 0x00000001 // 13599ns + 0x00000001 // 13699ns + 0x87654321 // 13799ns + 0x3B2A1908 // 13899ns + 0xE1D950C8 // 13999ns + 0x0ECA8642 // 14099ns + 0xF8765432 // 14199ns + 0x03B2A190 // 14299ns + 0xFE1D950C // 14399ns + 0x00ECA864 // 14499ns + 0x00765432 // 14599ns + 0xFFC3B2A1 // 14699ns + 0x001D950C // 14799ns + 0xFFF0ECA8 // 14899ns + 0x00076543 // 14999ns + 0xFFFC3B2A // 15099ns + 0x0001D950 // 15199ns + 0xFFFF0ECA // 15299ns + 0xFFFF8765 // 15399ns + 0x00003B2A // 15499ns + 0xFFFFE1D9 // 15599ns + 0x00000ECA // 15699ns + 0xFFFFF876 // 15799ns + 0x000003B2 // 15899ns + 0xFFFFFE1D // 15999ns + 0x000000EC // 16099ns + 0x00000076 // 16199ns + 0xFFFFFFC3 // 16299ns + 0x0000001D // 16399ns + 0xFFFFFFF0 // 16499ns + 0x00000007 // 16599ns + 0xFFFFFFFC // 16699ns + 0x00000001 // 16799ns + 0xFFFFFFFF // 16899ns + 0x00000000 // 16999ns + 0x00000000 // 17099ns + 0x00000000 // 17199ns + 0x00000000 // 17299ns + 0x00000001 // 17399ns + 0xFFFFFFFF // 17499ns + 0x00000000 // 17599ns + 0xFFFFFFFF // 17699ns + 0x00000001 // 17799ns + 0x00000001 // 17899ns + 0x00000002 // 17999ns + 0x00000004 // 18099ns + 0x00000008 // 18199ns + 0x00000010 // 18299ns + 0x00000020 // 18399ns + 0x00000040 // 18499ns + 0x00000080 // 18599ns + 0x00000100 // 18699ns + 0x00000200 // 18799ns + 0x00000400 // 18899ns + 0x00000800 // 18999ns + 0x00001000 // 19099ns + 0x00002000 // 19199ns + 0x00004000 // 19299ns + 0x00008000 // 19399ns + 0x00010000 // 19499ns + 0x00020000 // 19599ns + 0x00040000 // 19699ns + 0x00080000 // 19799ns + 0x00100000 // 19899ns + 0x00200000 // 19999ns + 0x00400000 // 20099ns + 0x00800000 // 20199ns + 0x01000000 // 20299ns + 0x02000000 // 20399ns + 0x04000000 // 20499ns + 0x08000000 // 20599ns + 0x10000000 // 20699ns + 0x20000000 // 20799ns + 0x40000000 // 20899ns + 0x80000000 // 20999ns + 0x00000001 // 21099ns + 0x00000002 // 21199ns + 0x00000004 // 21299ns + 0x00000008 // 21399ns + 0x00000010 // 21499ns + 0x00000020 // 21599ns + 0x00000040 // 21699ns + 0x00000080 // 21799ns + 0x00000100 // 21899ns + 0x00000200 // 21999ns + 0x00000400 // 22099ns + 0x00000800 // 22199ns + 0x00001000 // 22299ns + 0x00002000 // 22399ns + 0x00004000 // 22499ns + 0x00008000 // 22599ns + 0x00010000 // 22699ns + 0x00020000 // 22799ns + 0x00040000 // 22899ns + 0x00080000 // 22999ns + 0x00100000 // 23099ns + 0x00200000 // 23199ns + 0x00400000 // 23299ns + 0x00800000 // 23399ns + 0x01000000 // 23499ns + 0x02000000 // 23599ns + 0x04000000 // 23699ns + 0x08000000 // 23799ns + 0x10000000 // 23899ns + 0x20000000 // 23999ns + 0x40000000 // 24099ns + 0x80000000 // 24199ns + 0x2AF0D797 // 24299ns + 0x4383476C // 24399ns + 0x36D08F78 // 24499ns + 0xCFE01CF7 // 24599ns + 0x378BC310 // 24699ns + 0x75A74762 // 24799ns + 0x947B89D0 // 24899ns + 0x06D8FC2D // 24999ns + 0x72E2FCF8 // 25099ns + 0x00000000 // 25199ns + 0x00000000 // 25299ns + 0xB67FC4FE // 25399ns + 0xE4BA6BA0 // 25499ns + 0x28F04154 // 25599ns + 0x304501F2 // 25699ns + 0x92EB31B2 // 25799ns + 0x00000000 // 25899ns + 0x9F84DEBB // 25999ns + 0x87BD54BD // 26099ns + 0x6C9E61DD // 26199ns + 0xD00673C2 // 26299ns + 0xF8A3D73C // 26399ns + 0xCEE321F7 // 26499ns + 0x52F65B32 // 26599ns + 0xF4238631 // 26699ns + 0x844D336A // 26799ns + 0xD889B9E4 // 26899ns + 0x166F0A96 // 26999ns + 0x09490A55 // 27099ns + 0x6A2D880E // 27199ns + 0xA980CCBA // 27299ns + 0x7763AA26 // 27399ns .verify z periodic(9.9E-8,1.0000000000000001E-7) + 0x1 // 99ns + 0x0 // 199ns + 0x0 // 299ns + 0x0 // 399ns + 0x0 // 499ns + 0x0 // 599ns + 0x0 // 699ns + 0x1 // 799ns + 0x1 // 899ns + 0x0 // 999ns + 0x0 // 1099ns + 0x0 // 1199ns + 0x0 // 1299ns + 0x0 // 1399ns + 0x0 // 1499ns + 0x0 // 1599ns + 0x0 // 1699ns + 0x0 // 1799ns + 0x0 // 1899ns + 0x0 // 1999ns + 0x0 // 2099ns + 0x0 // 2199ns + 0x0 // 2299ns + 0x0 // 2399ns + 0x0 // 2499ns + 0x0 // 2599ns + 0x0 // 2699ns + 0x0 // 2799ns + 0x0 // 2899ns + 0x0 // 2999ns + 0x0 // 3099ns + 0x0 // 3199ns + 0x0 // 3298ns + 0x0 // 3398ns + 0x0 // 3498ns + 0x0 // 3598ns + 0x0 // 3698ns + 0x0 // 3798ns + 0x0 // 3898ns + 0x0 // 3998ns + 0x0 // 4098ns + 0x0 // 4198ns + 0x0 // 4298ns + 0x0 // 4398ns + 0x0 // 4498ns + 0x0 // 4598ns + 0x0 // 4698ns + 0x0 // 4798ns + 0x0 // 4898ns + 0x0 // 4998ns + 0x0 // 5098ns + 0x0 // 5198ns + 0x0 // 5298ns + 0x0 // 5398ns + 0x1 // 5498ns + 0x1 // 5598ns + 0x1 // 5698ns + 0x1 // 5798ns + 0x0 // 5898ns + 0x0 // 5998ns + 0x0 // 6098ns + 0x1 // 6198ns + 0x0 // 6298ns + 0x0 // 6398ns + 0x0 // 6498ns + 0x1 // 6598ns + 0x0 // 6698ns + 0x0 // 6798ns + 0x0 // 6898ns + 0x1 // 6998ns + 0x0 // 7098ns + 0x0 // 7198ns + 0x0 // 7298ns + 0x0 // 7398ns + 0x0 // 7498ns + 0x0 // 7598ns + 0x0 // 7698ns + 0x0 // 7798ns + 0x0 // 7898ns + 0x0 // 7998ns + 0x0 // 8098ns + 0x0 // 8198ns + 0x0 // 8299ns + 0x0 // 8399ns + 0x0 // 8499ns + 0x0 // 8599ns + 0x0 // 8699ns + 0x0 // 8799ns + 0x0 // 8899ns + 0x0 // 8999ns + 0x0 // 9099ns + 0x0 // 9199ns + 0x0 // 9299ns + 0x0 // 9399ns + 0x0 // 9499ns + 0x0 // 9599ns + 0x0 // 9699ns + 0x0 // 9799ns + 0x0 // 9899ns + 0x0 // 9999ns + 0x0 // 10099ns + 0x0 // 10199ns + 0x0 // 10299ns + 0x0 // 10399ns + 0x0 // 10499ns + 0x0 // 10599ns + 0x0 // 10699ns + 0x0 // 10799ns + 0x0 // 10899ns + 0x0 // 10999ns + 0x0 // 11099ns + 0x0 // 11199ns + 0x0 // 11299ns + 0x0 // 11399ns + 0x0 // 11499ns + 0x0 // 11599ns + 0x0 // 11699ns + 0x0 // 11799ns + 0x0 // 11899ns + 0x0 // 11999ns + 0x0 // 12099ns + 0x0 // 12199ns + 0x0 // 12299ns + 0x0 // 12399ns + 0x0 // 12499ns + 0x0 // 12599ns + 0x0 // 12699ns + 0x0 // 12799ns + 0x0 // 12899ns + 0x0 // 12999ns + 0x0 // 13099ns + 0x0 // 13199ns + 0x0 // 13299ns + 0x0 // 13399ns + 0x0 // 13499ns + 0x0 // 13599ns + 0x0 // 13699ns + 0x0 // 13799ns + 0x0 // 13899ns + 0x0 // 13999ns + 0x0 // 14099ns + 0x0 // 14199ns + 0x0 // 14299ns + 0x0 // 14399ns + 0x0 // 14499ns + 0x0 // 14599ns + 0x0 // 14699ns + 0x0 // 14799ns + 0x0 // 14899ns + 0x0 // 14999ns + 0x0 // 15099ns + 0x0 // 15199ns + 0x0 // 15299ns + 0x0 // 15399ns + 0x0 // 15499ns + 0x0 // 15599ns + 0x0 // 15699ns + 0x0 // 15799ns + 0x0 // 15899ns + 0x0 // 15999ns + 0x0 // 16099ns + 0x0 // 16199ns + 0x0 // 16299ns + 0x0 // 16399ns + 0x0 // 16499ns + 0x0 // 16599ns + 0x0 // 16699ns + 0x0 // 16799ns + 0x0 // 16899ns .verify v periodic(9.9E-8,1.0000000000000001E-7) + 0x0 // 99ns + 0x0 // 199ns + 0x0 // 299ns + 0x1 // 399ns + 0x0 // 499ns + 0x0 // 599ns + 0x1 // 699ns + 0x0 // 799ns + 0x0 // 899ns + 0x0 // 999ns + 0x0 // 1099ns + 0x0 // 1199ns + 0x0 // 1299ns + 0x0 // 1399ns + 0x0 // 1499ns + 0x0 // 1599ns + 0x0 // 1699ns + 0x0 // 1799ns + 0x0 // 1899ns + 0x0 // 1999ns + 0x0 // 2099ns + 0x0 // 2199ns + 0x0 // 2299ns + 0x0 // 2399ns + 0x0 // 2499ns + 0x0 // 2599ns + 0x0 // 2699ns + 0x0 // 2799ns + 0x0 // 2899ns + 0x0 // 2999ns + 0x0 // 3099ns + 0x0 // 3199ns + 0x0 // 3298ns + 0x0 // 3398ns + 0x0 // 3498ns + 0x0 // 3598ns + 0x0 // 3698ns + 0x0 // 3798ns + 0x0 // 3898ns + 0x0 // 3998ns + 0x0 // 4098ns + 0x0 // 4198ns + 0x0 // 4298ns + 0x0 // 4398ns + 0x0 // 4498ns + 0x1 // 4598ns + 0x1 // 4698ns + 0x1 // 4798ns + 0x0 // 4898ns + 0x0 // 4998ns + 0x0 // 5098ns + 0x1 // 5198ns + 0x1 // 5298ns + 0x1 // 5398ns + 0x0 // 5498ns + 0x0 // 5598ns + 0x0 // 5698ns + 0x0 // 5798ns + 0x0 // 5898ns + 0x0 // 5998ns + 0x0 // 6098ns + 0x0 // 6198ns + 0x0 // 6298ns + 0x0 // 6398ns + 0x0 // 6498ns + 0x0 // 6598ns + 0x0 // 6698ns + 0x0 // 6798ns + 0x0 // 6898ns + 0x0 // 6998ns + 0x0 // 7098ns + 0x0 // 7198ns + 0x0 // 7298ns + 0x0 // 7398ns + 0x0 // 7498ns + 0x0 // 7598ns + 0x0 // 7698ns + 0x0 // 7798ns + 0x0 // 7898ns + 0x0 // 7998ns + 0x0 // 8098ns + 0x0 // 8198ns + 0x0 // 8299ns + 0x0 // 8399ns + 0x0 // 8499ns + 0x0 // 8599ns + 0x0 // 8699ns + 0x0 // 8799ns + 0x0 // 8899ns + 0x0 // 8999ns + 0x0 // 9099ns + 0x0 // 9199ns + 0x0 // 9299ns + 0x0 // 9399ns + 0x0 // 9499ns + 0x0 // 9599ns + 0x0 // 9699ns + 0x0 // 9799ns + 0x0 // 9899ns + 0x0 // 9999ns + 0x0 // 10099ns + 0x0 // 10199ns + 0x0 // 10299ns + 0x0 // 10399ns + 0x0 // 10499ns + 0x0 // 10599ns + 0x0 // 10699ns + 0x0 // 10799ns + 0x0 // 10899ns + 0x0 // 10999ns + 0x0 // 11099ns + 0x0 // 11199ns + 0x0 // 11299ns + 0x0 // 11399ns + 0x0 // 11499ns + 0x0 // 11599ns + 0x0 // 11699ns + 0x0 // 11799ns + 0x0 // 11899ns + 0x0 // 11999ns + 0x0 // 12099ns + 0x0 // 12199ns + 0x0 // 12299ns + 0x0 // 12399ns + 0x0 // 12499ns + 0x0 // 12599ns + 0x0 // 12699ns + 0x0 // 12799ns + 0x0 // 12899ns + 0x0 // 12999ns + 0x0 // 13099ns + 0x0 // 13199ns + 0x0 // 13299ns + 0x0 // 13399ns + 0x0 // 13499ns + 0x0 // 13599ns + 0x0 // 13699ns + 0x0 // 13799ns + 0x0 // 13899ns + 0x0 // 13999ns + 0x0 // 14099ns + 0x0 // 14199ns + 0x0 // 14299ns + 0x0 // 14399ns + 0x0 // 14499ns + 0x0 // 14599ns + 0x0 // 14699ns + 0x0 // 14799ns + 0x0 // 14899ns + 0x0 // 14999ns + 0x0 // 15099ns + 0x0 // 15199ns + 0x0 // 15299ns + 0x0 // 15399ns + 0x0 // 15499ns + 0x0 // 15599ns + 0x0 // 15699ns + 0x0 // 15799ns + 0x0 // 15899ns + 0x0 // 15999ns + 0x0 // 16099ns + 0x0 // 16199ns + 0x0 // 16299ns + 0x0 // 16399ns + 0x0 // 16499ns + 0x0 // 16599ns + 0x0 // 16699ns + 0x0 // 16799ns + 0x0 // 16899ns .verify n periodic(9.9E-8,1.0000000000000001E-7) + 0x0 // 99ns + 0x0 // 199ns + 0x0 // 299ns + 0x1 // 399ns + 0x1 // 499ns + 0x1 // 599ns + 0x0 // 699ns + 0x0 // 799ns + 0x0 // 899ns + 0x1 // 999ns + 0x0 // 1099ns + 0x0 // 1199ns + 0x0 // 1299ns + 0x0 // 1399ns + 0x0 // 1499ns + 0x0 // 1599ns + 0x0 // 1699ns + 0x0 // 1799ns + 0x0 // 1899ns + 0x0 // 1999ns + 0x0 // 2099ns + 0x0 // 2199ns + 0x0 // 2299ns + 0x0 // 2399ns + 0x0 // 2499ns + 0x0 // 2599ns + 0x0 // 2699ns + 0x0 // 2799ns + 0x0 // 2899ns + 0x0 // 2999ns + 0x0 // 3099ns + 0x0 // 3199ns + 0x0 // 3298ns + 0x0 // 3398ns + 0x0 // 3498ns + 0x0 // 3598ns + 0x0 // 3698ns + 0x0 // 3798ns + 0x0 // 3898ns + 0x0 // 3998ns + 0x0 // 4098ns + 0x1 // 4198ns + 0x0 // 4298ns + 0x0 // 4398ns + 0x0 // 4498ns + 0x0 // 4598ns + 0x0 // 4698ns + 0x0 // 4798ns + 0x1 // 4898ns + 0x1 // 4998ns + 0x1 // 5098ns + 0x1 // 5198ns + 0x1 // 5298ns + 0x1 // 5398ns + 0x0 // 5498ns + 0x0 // 5598ns + 0x0 // 5698ns + 0x0 // 5798ns + 0x1 // 5898ns + 0x1 // 5998ns + 0x1 // 6098ns + 0x0 // 6198ns + 0x1 // 6298ns + 0x1 // 6398ns + 0x1 // 6498ns + 0x0 // 6598ns + 0x1 // 6698ns + 0x1 // 6798ns + 0x1 // 6898ns + 0x0 // 6998ns + 0x1 // 7098ns + 0x1 // 7198ns + 0x1 // 7298ns + 0x1 // 7398ns + 0x1 // 7498ns + 0x1 // 7598ns + 0x1 // 7698ns + 0x1 // 7798ns + 0x1 // 7898ns + 0x1 // 7998ns + 0x1 // 8098ns + 0x1 // 8198ns + 0x1 // 8299ns + 0x1 // 8399ns + 0x1 // 8499ns + 0x1 // 8599ns + 0x1 // 8699ns + 0x1 // 8799ns + 0x1 // 8899ns + 0x1 // 8999ns + 0x1 // 9099ns + 0x1 // 9199ns + 0x1 // 9299ns + 0x1 // 9399ns + 0x1 // 9499ns + 0x1 // 9599ns + 0x1 // 9699ns + 0x1 // 9799ns + 0x1 // 9899ns + 0x1 // 9999ns + 0x1 // 10099ns + 0x1 // 10199ns + 0x1 // 10299ns + 0x1 // 10399ns + 0x1 // 10499ns + 0x1 // 10599ns + 0x0 // 10699ns + 0x1 // 10799ns + 0x0 // 10899ns + 0x1 // 10999ns + 0x0 // 11099ns + 0x1 // 11199ns + 0x0 // 11299ns + 0x0 // 11399ns + 0x1 // 11499ns + 0x0 // 11599ns + 0x1 // 11699ns + 0x0 // 11799ns + 0x1 // 11899ns + 0x0 // 11999ns + 0x1 // 12099ns + 0x1 // 12199ns + 0x0 // 12299ns + 0x1 // 12399ns + 0x0 // 12499ns + 0x1 // 12599ns + 0x0 // 12699ns + 0x1 // 12799ns + 0x0 // 12899ns + 0x0 // 12999ns + 0x1 // 13099ns + 0x0 // 13199ns + 0x1 // 13299ns + 0x0 // 13399ns + 0x1 // 13499ns + 0x0 // 13599ns + 0x1 // 13699ns + 0x1 // 13799ns + 0x0 // 13899ns + 0x1 // 13999ns + 0x0 // 14099ns + 0x1 // 14199ns + 0x0 // 14299ns + 0x1 // 14399ns + 0x0 // 14499ns + 0x0 // 14599ns + 0x1 // 14699ns + 0x0 // 14799ns + 0x1 // 14899ns + 0x0 // 14999ns + 0x1 // 15099ns + 0x0 // 15199ns + 0x1 // 15299ns + 0x1 // 15399ns + 0x0 // 15499ns + 0x1 // 15599ns + 0x0 // 15699ns + 0x1 // 15799ns + 0x0 // 15899ns + 0x1 // 15999ns + 0x0 // 16099ns + 0x0 // 16199ns + 0x1 // 16299ns + 0x0 // 16399ns + 0x1 // 16499ns + 0x0 // 16599ns + 0x1 // 16699ns + 0x0 // 16799ns + 0x1 // 16899ns * instantiate alu Xalu alufn[5:0] a[31:0] b[31:0] alu[31:0] z v n alu * Generate sample 32-bit inputs for A and B and try different control settings Wa a[31:0] nrz(0,3.3,100n,0n,.1n,.1n) // test all combinations of 3 inputs to each bit of the adder. Also tests // N and both ways of producing V + 0x00000000 0x55555555 0x00000000 0x55555555 0xAAAAAAAA 0x00000000 0xAAAAAAAA + 0xFFFFFFFF 0x00000001 0xFFFFFFFF // test each input to Z logic + 0x00000001 0xFFFFFFF2 0x00000001 0xAAAAAAAC 0xFFFFFFFF 0x00000002 0x00000000 0x0000007F + 0x00000080 0x00000180 0x00000380 0x00000780 0x00001000 0x00001000 0x00003000 0x00007000 + 0x0000F000 0x00001000 0x00001000 0x0007F800 0x000FFC00 0x001FFE00 0x003FFF00 0x00000080 + 0xFF000000 0x04000000 0x03000FFF 0x070007FF 0x0F0003FF 0x1F0001FF 0x3F0000FF 0x80000001 // test all possible combinations of z,v,n inputs to compare32 + 0x00000002 0x00000002 0x00000002 + 0x80000000 0x80000000 0x80000000 + 0x00000003 0x00000003 0x00000003 + 0x7FFFFFFF 0x7FFFFFFF 0x7FFFFFFF + 0x00000003 0x00000003 0x00000003 // test logic operations + 0x00000000 0xFFFFFFFF 0x00000000 0xFFFFFFFF + 0x00000000 0xFFFFFFFF 0x00000000 0xFFFFFFFF + 0x00000000 0xFFFFFFFF 0x00000000 0xFFFFFFFF + 0x00000000 0xFFFFFFFF 0x00000000 0xFFFFFFFF // test left shift + 0x87654321 0x87654321 0x87654321 0x87654321 0x87654321 0x87654321 0x87654321 0x87654321 + 0x87654321 0x87654321 0x87654321 0x87654321 0x87654321 0x87654321 0x87654321 0x87654321 + 0x87654321 0x87654321 0x87654321 0x87654321 0x87654321 0x87654321 0x87654321 0x87654321 + 0x87654321 0x87654321 0x87654321 0x87654321 0x87654321 0x87654321 0x87654321 0x87654321 // test right shift + 0xFEDCBA98 0x7EDCBA98 0xFEDCBA98 0x7EDCBA98 0xFEDCBA98 0x7EDCBA98 0xFEDCBA98 0x7EDCBA98 + 0x7EDCBA98 0xFEDCBA98 0x7EDCBA98 0xFEDCBA98 0x7EDCBA98 0xFEDCBA98 0x7EDCBA98 0xFEDCBA98 + 0xFEDCBA98 0x7EDCBA98 0xFEDCBA98 0x7EDCBA98 0xFEDCBA98 0x7EDCBA98 0xFEDCBA98 0x7EDCBA98 + 0x7EDCBA98 0xFEDCBA98 0x7EDCBA98 0xFEDCBA98 0x7EDCBA98 0xFEDCBA98 0x7EDCBA98 0xFEDCBA98 // test arithmetic right shift + 0x87654321 0x76543210 0x87654321 0x76543210 0x87654321 0x76543210 0x87654321 0x76543210 + 0x76543210 0x87654321 0x76543210 0x87654321 0x76543210 0x87654321 0x76543210 0x87654321 + 0x87654321 0x76543210 0x87654321 0x76543210 0x87654321 0x76543210 0x87654321 0x76543210 + 0x76543210 0x87654321 0x76543210 0x87654321 0x76543210 0x87654321 0x76543210 0x87654321 // test multiply + 0 0 0 1 1 1 -1 -1 -1 + 0x00000001 0x00000002 0x00000004 0x00000008 0x00000010 0x00000020 0x00000040 0x00000080 + 0x00000100 0x00000200 0x00000400 0x00000800 0x00001000 0x00002000 0x00004000 0x00008000 + 0x00010000 0x00020000 0x00040000 0x00080000 0x00100000 0x00200000 0x00400000 0x00800000 + 0x01000000 0x02000000 0x04000000 0x08000000 0x10000000 0x20000000 0x40000000 0x80000000 + 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 + 1009732533 7652013586 3467354876 8095909117 3929274945 3754204805 6489474296 2480524037 + 2063610402 0082291665 0842268953 1964509303 2320902560 1595334764 3508033606 9901902529 + -0937670715 -3831131165 -8867674397 -0443627659 -1280799970 -8015736147 -6403236653 -9895116877 + -1217176833 -6606574717 -3407276850 -3669736170 -6581339885 -1119929170 -3106010805 -4557182406 Wb b[31:0] nrz(0,3.3,100n,0n,.1n,.1n) // test all combinations of 3 inputs to each bit of the adder. Also tests // N and both ways of producing V + 0x00000000 0x00000000 0x55555555 0x55555555 0x00000000 0xAAAAAAAA 0xAAAAAAAA + 0xFFFFFFFF 0xFFFFFFFF 0x00000000 // test each input to Z logic + 0x00000000 0xFFFFFFF0 0x00000003 0x5555555C 0xFFFFFFEF 0x0000001E 0xFFFFFFC0 0xFFFFFFFF + 0x00000080 0x00000080 0x00000080 0x00000080 0x00000000 0x00001000 0x00001000 0x00001000 + 0x00001000 0xFFFE1000 0xFFFC1000 0x00000800 0x00000400 0x00000200 0x00000100 0xFF800080 + 0x02000000 0xFE000000 0x00FFF001 0x00FFF801 0x00FFFC01 0x00FFFE01 0x00FFFF01 0x00000001 // test all possible combinations of z,v,n inputs to compare32 + 0xFFFFFFFD 0xFFFFFFFD 0xFFFFFFFD + 0x7FFFFFFF 0x00000002 0x12345678 + 0x00000005 0x00000005 0x00000005 + 0xFFFFFFFE 0xFFFFFFFE 0xFFFFFFFE + 0x00000003 0x00000003 0x00000003 // test logic operations + 0x00000000 0x00000000 0xFFFFFFFF 0xFFFFFFFF + 0x00000000 0x00000000 0xFFFFFFFF 0xFFFFFFFF + 0x00000000 0x00000000 0xFFFFFFFF 0xFFFFFFFF + 0x00000000 0x00000000 0xFFFFFFFF 0xFFFFFFFF // test left shift + 0x00000000 0x00000001 0x00000002 0x00000003 0x00000004 0x00000005 0x00000006 0x00000007 + 0x00000008 0x00000009 0x0000000A 0x0000000B 0x0000000C 0x0000000D 0x0000000E 0x0000000F + 0x00000010 0x00000011 0x00000012 0x00000013 0x00000014 0x00000015 0x00000016 0x00000017 + 0x00000018 0x00000019 0x0000001A 0x0000001B 0x0000001C 0x0000001D 0x0000001E 0x0000001F // test right shift + 0x00000000 0x00000001 0x00000002 0x00000003 0x00000004 0x00000005 0x00000006 0x00000007 + 0x00000008 0x00000009 0x0000000A 0x0000000B 0x0000000C 0x0000000D 0x0000000E 0x0000000F + 0x00000010 0x00000011 0x00000012 0x00000013 0x00000014 0x00000015 0x00000016 0x00000017 + 0x00000018 0x00000019 0x0000001A 0x0000001B 0x0000001C 0x0000001D 0x0000001E 0x0000001F // test arithmetic right shift + 0x00000000 0x00000001 0x00000002 0x00000003 0x00000004 0x00000005 0x00000006 0x00000007 + 0x00000008 0x00000009 0x0000000A 0x0000000B 0x0000000C 0x0000000D 0x0000000E 0x0000000F + 0x00000010 0x00000011 0x00000012 0x00000013 0x00000014 0x00000015 0x00000016 0x00000017 + 0x00000018 0x00000019 0x0000001A 0x0000001B 0x0000001C 0x0000001D 0x0000001E 0x0000001F // test multiply + 0 1 -1 0 1 -1 0 1 -1 + 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 + 0x00000001 0x00000002 0x00000004 0x00000008 0x00000010 0x00000020 0x00000040 0x00000080 + 0x00000100 0x00000200 0x00000400 0x00000800 0x00001000 0x00002000 0x00004000 0x00008000 + 0x00010000 0x00020000 0x00040000 0x00080000 0x00100000 0x00200000 0x00400000 0x00800000 + 0x01000000 0x02000000 0x04000000 0x08000000 0x10000000 0x20000000 0x40000000 0x80000000 + 9149914523 6847927686 4616283554 9475089923 -3708920048 -8033694598 -2694036858 -7029734135 + 5314033340 4205082341 4410481949 8515747954 -3297926575 -5760040881 -2222206413 -1255073742 + 1110002040 1286074697 9664489439 2870725815 -6360649329 -1650534484 -4021952563 -4365177082 + 0720731790 6119690446 2645747774 5192433729 -6539459593 -4258260527 -1547445266 -9527079953 Wc alufn[5:0] nrz(0,3.3,100n,0n,.1n,.1n) + 0x00 0x00 0x00 0x00 0x00 0x00 0x00 // ADD, SUB + 0x01 0x00 0x01 + 0 1 0 0 1 0 1 1 + 0 0 0 0 0 0 0 0 + 0 1 1 0 0 0 0 1 + 0 0 0 0 0 0 0 1 + 0x33 0x35 0x37 // CMPEQ, CMPLT, CMPLE + 0x33 0x35 0x37 + 0x33 0x35 0x37 + 0x33 0x35 0x37 + 0x33 0x35 0x37 + 0x18 0x18 0x18 0x18 // AND + 0x1E 0x1E 0x1E 0x1E // OR + 0x16 0x16 0x16 0x16 // XOR + 0x1A 0x1A 0x1A 0x1A // A + 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 // SHL + 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 + 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 + 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 + 0x21 0x21 0x21 0x21 0x21 0x21 0x21 0x21 // SHR + 0x21 0x21 0x21 0x21 0x21 0x21 0x21 0x21 + 0x21 0x21 0x21 0x21 0x21 0x21 0x21 0x21 + 0x21 0x21 0x21 0x21 0x21 0x21 0x21 0x21 + 0x23 0x23 0x23 0x23 0x23 0x23 0x23 0x23 // SRA + 0x23 0x23 0x23 0x23 0x23 0x23 0x23 0x23 + 0x23 0x23 0x23 0x23 0x23 0x23 0x23 0x23 + 0x23 0x23 0x23 0x23 0x23 0x23 0x23 0x23 // test multiply + 2 2 2 2 2 2 2 2 2 + 2 2 2 2 2 2 2 2 + 2 2 2 2 2 2 2 2 + 2 2 2 2 2 2 2 2 + 2 2 2 2 2 2 2 2 + 2 2 2 2 2 2 2 2 + 2 2 2 2 2 2 2 2 + 2 2 2 2 2 2 2 2 + 2 2 2 2 2 2 2 2 + 2 2 2 2 2 2 2 2 + 2 2 2 2 2 2 2 2 + 2 2 2 2 2 2 2 2 + 2 2 2 2 2 2 2 2 * Run the simulation long enough to test all input values .tran 27400n * Some useful plots... you can plot additional signals by specifying * the appropriate .plot commands in your main netlist file. .plotdef op + ADD SUB MUL ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? + ??? ??? ??? ??? ??? ??? XOR ??? AND ??? A ??? ??? ??? OR ??? + SHL SHR ??? SRA SHL SHR ??? SRA SHL SHR ??? SRA SHL SHR ??? SRA + ??? ??? ??? CMPEQ ??? CMPLT ??? CMPLE + ??? ??? ??? CMPEQ ??? CMPLT ??? CMPLE .plot L(a[31:0]) .plot L(b[31:0]) .plot op(alufn[5:0]) .plot L(alu[31:0])