lexus.mephi 0 4 сентября, 2013 Опубликовано 4 сентября, 2013 · Жалоба Есть большой hex-вектор, который я задаю так: wire [0:2623] pn_seq; assign pn_seq = { 316'h4DC2AF7BD8C3C9A1E76C9A090AF1C3114F07FCA2808E9462E9AD7B712D6F4AC8A59BB069CC5 0BF1, 316'h149927E6BB1C9FC8C18BB949B30CD09DDD749E704F57B41DEC7E7B176E12C5657432B51B0B8 12DF, 320'h0E14887E24D80C97F09374AD76270E58FE1774B2781D8D3821E393F2EA0FFD4D24DE20C05D0 BA170, 316'h3D10E52D61E013D837AA62D007CC2FD76D23A3E125BDE8A9A7C02A98B70251C556F6341EBDE CB80, 316'h1AAD5D9FB8CBEA80BB619096527A8C475B3D8DB28AF8543A00EC3480DFF1E2CDA9F985B523B 8790, 320'h07AA5D0CE58D21B18631006617F6F769EB947F924EA5161EC2C0488B63ED7993BA8EF4E552F A32FC, 320'h3F1BDB19923902BCBBE5DDABB824126E08459CA6CFA0267E5294A98C632569791E60EF659AE E9518, 324'hCDF08D87833690C1B79183ED127E53360CD86514859A28B5494F51AA4882419A25A2D01A5F4 7AA273, 76'h01E79A5370CCB3E197F}; В VCS последовательность читается нормально, а ModelSim разбивает вектор по 32 разряда и вставляет 32-битные нулевые вектора между частями: ...01E0000000079A5370C00000000CB3E197F}; Уже попробовал и в 1 строку все написать, и сделать конкатенацию 32-битных векторов. Что-то пока глухо. Может кто подскажет решение? Заранее спасибо! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
klop 0 4 сентября, 2013 Опубликовано 4 сентября, 2013 · Жалоба Попробовать сделать кучу проводов и потом собрать их в кучу. А вообще это привет тем кто доказывает что моделсимы ничем не хуже каденсов синопсисов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
lexus.mephi 0 4 сентября, 2013 Опубликовано 4 сентября, 2013 · Жалоба Попробовать сделать кучу проводов и потом собрать их в кучу. А вообще это привет тем кто доказывает что моделсимы ничем не хуже каденсов синопсисов. Да, такой вариант конечно же прокатит - просто так не хотелось создавать дополнительных 82 вектора. И generate тут не поможет, т.к. значения у всех веторов разные. Печалька с этим ModelSim'ом. Спасибо! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kpiter 0 4 сентября, 2013 Опубликовано 4 сентября, 2013 · Жалоба а разбить большой вектор на 82 по 32 через quietly virtual signal не вариант? Пример: quietly virtual signal -install tb/uut_down { tb/uut_down/S00_AXI_AWADDR(31 downto 7)} awaddr_dn #add wave -noupdate -format Logic -radix hexadecimal tb/uut_down/S00_AXI_AWADDR add wave -noupdate -format Logic -radix unsigned tb/uut_down/awaddr_dn Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
FatRobot 0 4 сентября, 2013 Опубликовано 4 сентября, 2013 · Жалоба У меня были схожие неприятности с ncsim. решились так: reg [127:0] vector; initial begin vector = {{5'b00110},{5'b00110},{5'b00110},{5'b00101},{6'b000101},{6'b000101},{6'b000101},{6'b000101},{6'b000101},{6'b000101},{6'b000101},{6'b000101},{6'b000101},{6'b000101},{6'b000101},{6'b000101},{6'b000101},{6'b000110},{6'b000100},{6'b000011},{6'b000101},{6'b100000}}; end //initial В Вашем случае: разбить на 32- или 64-битовые куски, а потом склеить {{}, {}, ...}. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
lexus.mephi 0 4 сентября, 2013 Опубликовано 4 сентября, 2013 · Жалоба У меня были схожие неприятности с ncsim. решились так: reg [127:0] vector; initial begin vector = {{5'b00110},{5'b00110},{5'b00110},{5'b00101},{6'b000101},{6'b000101},{6'b000101},{6'b000101},{6'b000101},{6'b000101},{6'b000101},{6'b000101},{6'b000101},{6'b000101},{6'b000101},{6'b000101},{6'b000101},{6'b000110},{6'b000100},{6'b000011},{6'b000101},{6'b100000}}; end //initial В Вашем случае: разбить на 32- или 64-битовые куски, а потом склеить {{}, {}, ...}. Так я пробовал - не помогло. Modelsim'у нужно 82 именованных вектора, чтоб он нули не пихал. В итоге вот такая борода получилась: assign pn_seq1 = 32'h4DC2AF7B, pn_seq2 = 32'hD8C3C9A1, pn_seq3 = 32'hE76C9A09, pn_seq4 = 32'h0AF1C311, pn_seq5 = 32'h4F07FCA2, pn_seq6 = 32'h808E9462, pn_seq7 = 32'hE9AD7B71, ... pn_seq81 = 32'h79A5370C, pn_seq82 = 32'hCB3E197F; assign pn_seq = {pn_seq1, pn_seq2, pn_seq3, pn_seq4, pn_seq5, pn_seq6, pn_seq7, pn_seq8, pn_seq9, pn_seq10, pn_seq11, pn_seq12, pn_seq13, pn_seq14, pn_seq15, pn_seq16, pn_seq17, pn_seq18, pn_seq19, pn_seq20, pn_seq21, pn_seq22, pn_seq23, pn_seq24, pn_seq25, pn_seq26, pn_seq27, pn_seq28, pn_seq29, pn_seq30, pn_seq31, pn_seq32, pn_seq33, pn_seq34, pn_seq35, pn_seq36, pn_seq37, pn_seq38, pn_seq39, pn_seq40, pn_seq41, pn_seq42, pn_seq43, pn_seq44, pn_seq45, pn_seq46, pn_seq47, pn_seq48, pn_seq49, pn_seq50, pn_seq51, pn_seq52, pn_seq53, pn_seq54, pn_seq55, pn_seq56, pn_seq57, pn_seq58, pn_seq59, pn_seq60, pn_seq61, pn_seq62, pn_seq63, pn_seq64, pn_seq65, pn_seq66, pn_seq67, pn_seq68, pn_seq69, pn_seq70, pn_seq71, pn_seq72, pn_seq73, pn_seq74, pn_seq75, pn_seq76, pn_seq77, pn_seq78, pn_seq79, pn_seq80, pn_seq81, pn_seq82}; Если б диплом писал, то был бы рад такому объемному коду :D А для работы хочется все покомпактнее. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
FatRobot 0 4 сентября, 2013 Опубликовано 4 сентября, 2013 · Жалоба Видимо, "или песни, или танцы".. Еще порекомендую считывать значения из файла и заполнять вектор (если для симуляции), но, думаю, что и этот вариант Вы рассматривали. Modelsim'у нужно ... для работы хочется ... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Sefo 0 20 сентября, 2013 Опубликовано 20 сентября, 2013 · Жалоба А если функцию написать в которой задать эти числа в виде обычной строки, а она эти строки переконвертирует в битовый вектор и возвратит его? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Timmy 1 25 сентября, 2013 Опубликовано 25 сентября, 2013 · Жалоба А у меня всё правильно работает, Modelsim SE 10.1c, тест использовал следующий: module top; wire [0:2623] pn_seq; assign pn_seq = { 316'h4DC2AF7BD8C3C9A1E76C9A090AF1C3114F07FCA2808E9462E9AD7B712D6F4AC8A59BB069CC5 0BF1, 316'h149927E6BB1C9FC8C18BB949B30CD09DDD749E704F57B41DEC7E7B176E12C5657432B51B0B8 12DF, 320'h0E14887E24D80C97F09374AD76270E58FE1774B2781D8D3821E393F2EA0FFD4D24DE20C05D0 BA170, 316'h3D10E52D61E013D837AA62D007CC2FD76D23A3E125BDE8A9A7C02A98B70251C556F6341EBDE CB80, 316'h1AAD5D9FB8CBEA80BB619096527A8C475B3D8DB28AF8543A00EC3480DFF1E2CDA9F985B523B 8790, 320'h07AA5D0CE58D21B18631006617F6F769EB947F924EA5161EC2C0488B63ED7993BA8EF4E552F A32FC, 320'h3F1BDB19923902BCBBE5DDABB824126E08459CA6CFA0267E5294A98C632569791E60EF659AE E9518, 324'hCDF08D87833690C1B79183ED127E53360CD86514859A28B5494F51AA4882419A25A2D01A5F4 7AA273, 76'h01E79A5370CCB3E197F}; initial begin #10; $display("%h", pn_seq); $stop(2); end endmodule Или глюки начинаются, если включить это в модуль посложнее? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться