dimka76 42 23 января, 2023 Опубликовано 23 января, 2023 · Жалоба Здравствуйте. Не получается запустить симуляцию. 1. Компилирую библиотеки Gowin c:\Gowin\Gowin_V1.9.8.05\IDE\simlib\gw1n\prim_sim.v - компилируется без ошибок, но с предупреждениями. c:\Gowin\Gowin_V1.9.8.05\IDE\simlib\gw1n\prim_tsim.v - компилируется и c ошибками, и с предупреждениями. Quote # Error: VCP7006 c:/Gowin/Gowin_V1.9.8.05/IDE/simlib/gw1n/prim_tsim.v : (126008, 10): Only INPUT/INOUT port can be specified as path source: CLK. # Warning: VCP7102 c:/Gowin/Gowin_V1.9.8.05/IDE/simlib/gw1n/prim_tsim.v : (126010, 28): OUTPUT NET/REG used as event reference: CLK. и куча аналогичных, только в разных строчках. 2. Добавил скомпилированную библиотеку gow1n_sim.lib в проект ActiveHDL, но похоже ActiveHDL ее не видид, т.к. при попытке оказать модуль верхнего уровня возникают ошибки Quote # ELBREAD: Error: ELBREAD_0081 gowin_rpll_10_50.v (22): Design unit rPLL instantiated in fpga_project_03.rPLL_10_50 not found in searched libraries: fpga_project_03. # ELBREAD: Error: Elaboration process completed with errors. # Design: Error: Elaboration failed Хотя модуль rPLL в библиотеке есть. А вот окно менеджера библиотек Подскажите, что я делаю не так или чего я еще не сделал ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 23 января, 2023 Опубликовано 23 января, 2023 · Жалоба 1 hour ago, dimka76 said: 1. Компилирую библиотеки Gowin c:\Gowin\Gowin_V1.9.8.05\IDE\simlib\gw1n\prim_sim.v - компилируется без ошибок, но с предупреждениями. c:\Gowin\Gowin_V1.9.8.05\IDE\simlib\gw1n\prim_tsim.v - компилируется и c ошибками, и с предупреждениями. и куча аналогичных, только в разных строчках. а по сорцам не понятно что ему не нравиться? 1 hour ago, dimka76 said: 2. Добавил скомпилированную библиотеку gow1n_sim.lib в проект ActiveHDL, но похоже ActiveHDL ее не видид, т.к. откуда взялась скомпилированная библиотека, если компиляция не состоялась? А если она найдена на просторах сети, то разные версии альдека отличались по формату библиотек. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
StewartLittle 41 23 января, 2023 Опубликовано 23 января, 2023 · Жалоба В 23.01.2023 в 11:32, dimka76 сказал: c:\Gowin\Gowin_V1.9.8.05\IDE\simlib\gw1n\prim_sim.v - компилируется без ошибок, но с предупреждениями Может, на версию поновее перейти? Сейчас v1.9.8.10 в ходу. Во вложении исходники из этой версии - попробуйте, как они будут компилироваться? simlib_v1.9.8.10.zip Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 42 23 января, 2023 Опубликовано 23 января, 2023 · Жалоба On 1/23/2023 at 12:46 PM, des00 said: а по сорцам не понятно что ему не нравиться? Spoiler //USB20_PHY module USB20_PHY( //utmi interface DATAOUT, //DataOut. 16-bit parallel USB data output bus. TXREADY, //Transmit Data Ready. RXACTIVE, //Receive Active. Indicates that the receive state machine has detected SYNC and is active. RXVLD, //Receive Data Valid. Indicates that the DataOut bus has valid data. RXVLDH, //Receive Data Valid High. CLK, //Clock. This output is used for clocking receive and transmit parallel data. RXERROR, //Receive Error. DP, //USB data pin Data+ DM, //USB data pin Data– LINESTATE, //Line State. These signals reflect the current state of the single ended receivers. DATAIN, //16-bit parallel USB data input bus. TXVLD, //Transmit Valid. Indicates that the DataIn bus is valid. TXVLDH, //Transmit Valid High.When DataBus16_8 = 1, this signal indicates that the DataIn[15:8] bus contains valid transmit data. RESET, //Reset. Reset all state machines in the UTM. SUSPENDM, //Suspend. 0:suspend, 1: normal XCVRSEL, //Transceiver Select. This signal selects between the LS, FS and HS transceivers TERMSEL, //Termination Select. This signal selects between the FS and HS terminations OPMODE, //Operational Mode. These signals select between various operational modes //utmi+ interface HOSTDIS, //This signal is used for all types of peripherals connected to it. IDDIG, //Indicates whether the connected plug is a mini-A or mini-B. ADPPRB, //Indicates if the voltage on Vbus (0.6V < Vth < 0.75V). ADPSNS, //Indicates if the voltage on Vbus (0.2V < Vth < 0.55V). SESSVLD, //Indicates if the session for an A/B-peripheral is valid (0.8V < Vth < 2V). VBUSVLD, //Indicates if the voltage on Vbus is at a valid level for operation (4.4V < Vth < 4.75V) RXDP, //Single-ended receive data, positive terminal.This signal is only valid if FsLsSerialMode is set to 1b RXDM, //Single-ended receive data, negative terminal.This signal is only valid if FsLsSerialMode is set to 1b RXRCV, //Receive data.This signal is only valid if FsLsSerialMode is set to 1b IDPULLUP, //Signal that enables the sampling of the analog Id line. DPPD, //This signal enables the 15k Ohm pull-down resistor on the DP line. DMPD, //0b : Pull-down resistor not connected to DM; 1b : Pull-down resistor connected to DM CHARGVBUS, //This signal enables charging Vbus DISCHARGVBUS, //The signal enables discharging Vbus. TXBITSTUFFEN, //Indicates if the data on the DataOut[7:0] lines needs to be bitstuffed or not. TXBITSTUFFENH,//Indicates if the data on the DataOut[15:8] lines needs to be bitstuffed or not. TXENN, //Active low enable signal. Only used when FsLsSerialMode is set to 1b TXDAT, //Differential data at D+/D- output. Only used when FsLsSerialMode is set to 1b TXSE0, //Force Single-Ended Zero. Only used when FsLsSerialMode is set to 1b FSLSSERIAL, //0b : FS and LS packets are sent using the parallel interface. 1b : FS and LS packets are sent using the serial interface. //used for TEST LBKERR, //used for observation CLKRDY, //Observation/debug signal to show that the internal PLL has locked and is ready. //used for analog circuit adjustment INTCLK, //Clock signals provided internally of the SoC //analog pad ID, //ID signal from the cable VBUS, //VBus signals connected with the cable REXT, XIN, //Crystal in signals, supported range is 12MHZ~24MHZ XOUT, //Crystal out signals CLK480PAD,//480MHZ clock output for observation TEST, //For IP TESTing purpose.Please leave it unconnected since there are already soft pull-down in the IP SCANOUT1, //Scan chain output SCANOUT2, SCANOUT3, SCANOUT4, SCANOUT5, SCANOUT6, SCANCLK, //Clock signals for scan mode SCANEN, //Select to shift mode SCANMODE, //High effective signal to enter scan mode TRESETN, //Low effective RESET signal for scan mode SCANIN1, //Scan chain input SCANIN2, SCANIN3, SCANIN4, SCANIN5, SCANIN6 ); parameter DATABUS16_8 = 1'b0;//Selects between 8 and 16 bit data transfers. parameter ADP_PRBEN = 1'b0;//Enables/disables the ADP Probe comparator parameter TEST_MODE = 5'b00000;//used for testing and debugging purpose parameter HSDRV1 = 1'b0; //High speed drive adjustment. Please connect to 0 for normal operation. parameter HSDRV0 = 1'b0; //High speed drive adjustment. Please connect to 0 for normal operation. parameter CLK_SEL = 1'b0;//Clock source selection signal. 0 to select external clock provided by the crystal connected on XIN, XOUT. 1 to select internal clock provided on INTCLK port parameter M = 4'b0000; //M divider input data bits parameter N = 6'b101000; //N divider input data bits parameter C = 2'b01; //Control charge pump current input data bits, it supports from 30uA (00) to 60uA (11). parameter FOC_LOCK = 1'b0;//0: LOCK is generated by PLL lock detector. 1: LOCK is always high(always lock) //interconnection input [15:0] DATAIN; input TXVLD; input TXVLDH; input RESET; input SUSPENDM; input [1:0] XCVRSEL; input TERMSEL; input [1:0] OPMODE; output [15:0] DATAOUT; output TXREADY; output RXACTIVE; output RXVLD; output RXVLDH; output CLK; //Clock. This output is used for clocking receive and transmit parallel data. output RXERROR; inout DP; inout DM; output [1:0] LINESTATE; input IDPULLUP; input DPPD; input DMPD; input CHARGVBUS; input DISCHARGVBUS; input TXBITSTUFFEN; input TXBITSTUFFENH; input TXENN; input TXDAT; input TXSE0; input FSLSSERIAL; output HOSTDIS; output IDDIG; output ADPPRB; output ADPSNS; output SESSVLD; output VBUSVLD; output RXDP; output RXDM; output RXRCV; output LBKERR; output CLKRDY; //utmi+ interface //additional signal for analog circuit adjustment input INTCLK; //analog pad inout ID; inout VBUS; inout REXT; input XIN; inout XOUT; input TEST; output CLK480PAD; input SCANCLK; input SCANEN; input SCANMODE; input TRESETN; input SCANIN1; output SCANOUT1; input SCANIN2; output SCANOUT2; input SCANIN3; output SCANOUT3; input SCANIN4; output SCANOUT4; input SCANIN5; output SCANOUT5; input SCANIN6; output SCANOUT6; specify (CLK => DATAOUT[0]) = (0:0:0, 0:0:0); (CLK => DATAOUT[1]) = (0:0:0, 0:0:0); (CLK => DATAOUT[2]) = (0:0:0, 0:0:0); (CLK => DATAOUT[3]) = (0:0:0, 0:0:0); (CLK => DATAOUT[4]) = (0:0:0, 0:0:0); (CLK => DATAOUT[5]) = (0:0:0, 0:0:0); (CLK => DATAOUT[6]) = (0:0:0, 0:0:0); (CLK => DATAOUT[7]) = (0:0:0, 0:0:0); (CLK => DATAOUT[8]) = (0:0:0, 0:0:0); (CLK => DATAOUT[9]) = (0:0:0, 0:0:0); (CLK => DATAOUT[10]) = (0:0:0, 0:0:0); (CLK => DATAOUT[11]) = (0:0:0, 0:0:0); (CLK => DATAOUT[12]) = (0:0:0, 0:0:0); (CLK => DATAOUT[13]) = (0:0:0, 0:0:0); (CLK => DATAOUT[14]) = (0:0:0, 0:0:0); (CLK => DATAOUT[15]) = (0:0:0, 0:0:0); (CLK => TXREADY) = (0:0:0, 0:0:0); (CLK => RXACTIVE) = (0:0:0, 0:0:0); (CLK => RXVLD) = (0:0:0, 0:0:0); (CLK => RXVLDH) = (0:0:0, 0:0:0); (CLK => RXERROR) = (0:0:0, 0:0:0); (CLK => DP) = (0:0:0, 0:0:0); (CLK => DM) = (0:0:0, 0:0:0); $setuphold (posedge CLK, posedge DATAIN[0], 0:0:0, 0:0:0); ..................................................................... ................................ Например здесь , все что начинается (CLK => - ошибки А то что начинается с $setuphold (posedge CLK, - предупреждения On 1/23/2023 at 12:46 PM, des00 said: откуда взялась скомпилированная библиотека, если компиляция не состоялась? А если она найдена на просторах сети, то разные версии альдека отличались по формату библиотек. первая скомпилировалась, ее и цепляю к проекту. On 1/23/2023 at 1:11 PM, StewartLittle said: Может, на версию поновее перейти? Сейчас v1.9.8.10 в ходу. Во вложении исходники из этой версии - попробуйте, как они будут компилироваться? simlib_v1.9.8.10.zip 951.29 kB · 0 downloads Одна скомпилировалась и прицепилась к Active HDL, но он не видит модулей Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
StewartLittle 41 23 января, 2023 Опубликовано 23 января, 2023 · Жалоба В 23.01.2023 в 13:12, dimka76 сказал: Одна скомпилировалась и прицепилась к Active HDL, но он не видит модулей Никогда не имел дела с Альдеком, все больше с Ментором работал. В Моделсме, например, при запуске моделирования, нужно явно указывать путь к библиотеке. А как в Актив-ХДЛ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 42 23 января, 2023 Опубликовано 23 января, 2023 · Жалоба On 1/23/2023 at 1:11 PM, StewartLittle said: Во вложении исходники из этой версии Те же ошибки и предупреждения On 1/23/2023 at 1:18 PM, StewartLittle said: А как в Актив-ХДЛ? По шпаргалке с сайта https://www.aldec.com/en/support/resources/documentation/articles/2189 Quote alib gow1n_sim alog -work gow1n_sim $GOWIN_PATH\IDE\gow1n\prim_sim.v Путь только подправил. И она сразу появилась и в менеджере библиотек и в Design Browser Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 23 января, 2023 Опубликовано 23 января, 2023 · Жалоба 13 minutes ago, dimka76 said: Например здесь , все что начинается (CLK => - ошибки А то что начинается с $setuphold (posedge CLK, - предупреждения А, ну со specify у альдека всегда были проблемы, не умеет он в это. Если их мало, можно макросами обрезать, но если много то мои соболезнования. 13 minutes ago, dimka76 said: первая скомпилировалась, ее и цепляю к проекту. Надо в сорцах смотреть что не так. Вполне возможно что там такая же кухня как у хилых, сгенерированная корка ставиться через кучу прокладок и ее действительно в библиотеке нет Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 42 23 января, 2023 Опубликовано 23 января, 2023 · Жалоба On 1/23/2023 at 1:27 PM, des00 said: Надо в сорцах смотреть что не так. Вполне возможно что там такая же кухня как у хилых, сгенерированная корка ставиться через кучу прокладок и ее действительно в библиотеке нет В менеджере библиотек то я ее вижу. И модули, входящие в нее, тоже вижу. картинки из первого моего сообщения. On 1/23/2023 at 1:27 PM, des00 said: А, ну со specify у альдека всегда были проблемы, не умеет он в это. Если их мало, можно макросами обрезать, но если много то мои соболезнования Compile failure 23 Errors 116 Warnings Только я в макросы не умею ))) Не приведете примерчик ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 23 января, 2023 Опубликовано 23 января, 2023 · Жалоба 5 minutes ago, dimka76 said: В менеджере библиотек то я ее вижу. И модули, входящие в нее, тоже вижу. картинки из первого моего сообщения. Надо руками лезть в либу и смотреть как там описан модуль. То что вы видите, не факт что есть. 5 minutes ago, dimka76 said: Compile failure 23 Errors 116 Warnings Только я в макросы не умею ))) Не приведете примерчик ? ну в моделсиме что-то типа `ifndef MODEL_TECH <part to mask> `endif MODEL_TECH это встроенный define в симуляторе. Незнаю есть ли что похожее в альдеке, но вы можете прописать глобальный макрос сами `define MY_MASK_MACRO и ссылаться на него. А дальше ifdef/ifndef включить/выключить если макрос обьявлен. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 42 24 января, 2023 Опубликовано 24 января, 2023 · Жалоба On 1/23/2023 at 1:45 PM, des00 said: MODEL_TECH это встроенный define в симуляторе. Незнаю есть ли что похожее в альдеке, но вы можете прописать глобальный макрос сами `define MY_MASK_MACRO и ссылаться на него. А дальше ifdef/ifndef включить/выключить если макрос обьявлен. Я в итоге более радикально избавился от ошибок компиляции библиотеки. Библиотека в исходниках. Эти ошибки касались модулей USB и ADC. Я просто удалил описания этих модулей. По поводу того, что как мне казалось, система не находит модулей в уже скомпилированной библиотеке. На самом деле это не так. При компиляции было предупреждение, которого я не замечал. И, при назначении модуля верхнего уровня, это предупреждение превращалось в ошибку. А именно это связано с IP модулем FIFO. Вот это предупреждение Quote Undefined module: \~fifo_sc.fifo_sc_top was used. А вот код \~fifo_sc.fifo_sc_top fifo_sc_inst ( .Clk(Clk), .Reset(Reset), .WrEn(WrEn), .RdEn(RdEn), .Data(Data[31:0]), .Full(Full), .Empty(Empty), .Q(Q[31:0]) ); Там есть ряд вложенных файлов. И если пройти по ним, то приходим к файлу .v , содержимое которого зашифровано. Но Aldec в своей шпаргалке приводит пример именно с FIFO, который, кстати, тоже используется в моем проекте. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 24 января, 2023 Опубликовано 24 января, 2023 · Жалоба 2 minutes ago, dimka76 said: Эти ошибки качались модулей USB и ADC. Я просто удалил описания этих модулей. Ну можно и так) 2 minutes ago, dimka76 said: По поводу того, что как мне казалось, система не находит модулей в уже скомпилированной библиотеке. На самом деле это не так. так сразу и говорил) в общем всегда если либа в сорцах и есть проблемы, надо смотреть именно туда) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 42 25 января, 2023 Опубликовано 25 января, 2023 · Жалоба Удалось запустит симуляцию для этой связки. Только пришлось перейди на более раннюю версию алдека. У Gowin есть IP модули есть Hard и Soft. С симуляцией Hard IP модулей проблем нет, а вот Soft IP похоже зашифрованные. Пытаюсь пойти следующим путем. В Gowin создаю Generate post-PnR simulation model file. Default: *.vo. В Active HDL цепляю его к проекту, создаю тестбенч. Компиляция проходит без ошибок, а вот симуляция не проходит инициализацию, выдает ошибки. ELAB2: Fatal Error: ELAB2_0036 Unresolved hierarchical reference to "GSR.GSRO" from module "tb_fifo_32.tb.\FF1/fifo_sc_inst/Q_r2_30_s0 \" (module not found). В библиотеке модуль определен так module GSR (GSRI); input GSRI; wire GSRO; assign GSRO = GSRI; endmodule //GSR (global set/reset control) В фале *.vo, сгенерированном в Gowin инстанцирование такое GSR \FF1/GSR ( .GSRI(VCC) ); DFFCE \FF1/fifo_sc_inst/Q_r2_30_s0 ( .D(\FF1/fifo_sc_inst/n13_1 ), .CLK(clk_d), .CE(\FF1/fifo_sc_inst/n11_3 ), .CLEAR(rst_d), .Q(data_out_d[30]) ); Модуль DFFCE в библиотеке описан так module DFFCE (Q, D, CLK, CE, CLEAR); input D, CLK, CLEAR, CE; output Q; parameter INIT = 1'b0; reg Q_reg; wire gsrt = GSR.GSRO; initial Q_reg = INIT; always @(gsrt or CLEAR) begin if(!gsrt) assign Q_reg = INIT; else if(CLEAR) assign Q_reg = 1'b0; else deassign Q_reg; end always @(posedge CLK) begin if (CE) Q_reg <= D; end assign Q = Q_reg; endmodule // DFFCE (positive clock edge; asynchronous clear; clock enable) пробовал в тестбенче назначать сигнал GSR.GSRO через assingn, но к успеху это не привело. Пробовал запускать GSR через asim, но что-то с аргументами тоже не выходит. Уже не знаю Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 25 января, 2023 Опубликовано 25 января, 2023 · Жалоба 2 hours ago, dimka76 said: Пробовал запускать GSR через asim, но что-то с аргументами тоже не выходит. это глобальный сброс судя по всему, нечто аналогичное glbl у хилых. запускали моделирование двух топов типа vsim -novopt work.tb work.glbl или просто в любое место топа бросали неподключенный никуда glbl Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 42 25 января, 2023 Опубликовано 25 января, 2023 · Жалоба On 1/25/2023 at 4:43 PM, des00 said: это глобальный сброс судя по всему, нечто аналогичное glbl у хилых. запускали моделирование двух топов типа vsim -novopt work.tb work.glbl или просто в любое место топа бросали неподключенный никуда glbl Спасибо. Я тут подумал, что от post-PnR simulation model file толку особого нет. Т.к. найти в нем нужный сигнал не представляется возможным. В нем имена цепей абсолютно не соответствуют именам в исходниках. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Serg_Mur 0 9 октября, 2023 Опубликовано 9 октября, 2023 · Жалоба Доброго времени суток. По работе вынужден осваивать микросхемы GoWin (раньше работал только с Альтерой) и возникла проблема с моделированием с использованием проприетарных модулей. Прошу помощи подсказать, как засунуть проект с IP модулями (использую HS_FIFO и ODDR, IDDR) GoWin в Aldec. Нашел инструкцию, которую дает Aldec. https://www.aldec.com/en/support/resources/documentation/articles/2189 Собственно подскажите пожалуйста, что нужно делать по пункту "Preparing Libraries". Пользователь я бестолковый, к командной строке не привык, привык тыкаться мышкой и к интерфейсам "как для домохозяек". Инструкция описывает порядок для Verilog, можно ли сделать то же самое на VHDL (привык я к нему и весь проект на нем)? Прекрасно понимаю, что можно встроить Verilog-файл, но мне нравится унификация. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться