dimka76 12 Monday at 08:32 AM Posted Monday at 08:32 AM · Report post Здравствуйте. Не получается запустить симуляцию. 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 в библиотеке есть. А вот окно менеджера библиотек Подскажите, что я делаю не так или чего я еще не сделал ? Quote Share this post Link to post Share on other sites More sharing options...
des00 7 Monday at 09:46 AM Posted Monday at 09:46 AM · Report post 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 ее не видид, т.к. откуда взялась скомпилированная библиотека, если компиляция не состоялась? А если она найдена на просторах сети, то разные версии альдека отличались по формату библиотек. Quote Share this post Link to post Share on other sites More sharing options...
StewartLittle 9 Monday at 10:11 AM Posted Monday at 10:11 AM · Report post В 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 Quote Share this post Link to post Share on other sites More sharing options...
dimka76 12 Monday at 10:12 AM Posted Monday at 10:12 AM · Report post 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, но он не видит модулей Quote Share this post Link to post Share on other sites More sharing options...
StewartLittle 9 Monday at 10:18 AM Posted Monday at 10:18 AM · Report post В 23.01.2023 в 13:12, dimka76 сказал: Одна скомпилировалась и прицепилась к Active HDL, но он не видит модулей Никогда не имел дела с Альдеком, все больше с Ментором работал. В Моделсме, например, при запуске моделирования, нужно явно указывать путь к библиотеке. А как в Актив-ХДЛ? Quote Share this post Link to post Share on other sites More sharing options...
dimka76 12 Monday at 10:18 AM Posted Monday at 10:18 AM · Report post 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 Quote Share this post Link to post Share on other sites More sharing options...
des00 7 Monday at 10:27 AM Posted Monday at 10:27 AM · Report post 13 minutes ago, dimka76 said: Например здесь , все что начинается (CLK => - ошибки А то что начинается с $setuphold (posedge CLK, - предупреждения А, ну со specify у альдека всегда были проблемы, не умеет он в это. Если их мало, можно макросами обрезать, но если много то мои соболезнования. 13 minutes ago, dimka76 said: первая скомпилировалась, ее и цепляю к проекту. Надо в сорцах смотреть что не так. Вполне возможно что там такая же кухня как у хилых, сгенерированная корка ставиться через кучу прокладок и ее действительно в библиотеке нет Quote Share this post Link to post Share on other sites More sharing options...
dimka76 12 Monday at 10:35 AM Posted Monday at 10:35 AM · Report post 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 Только я в макросы не умею ))) Не приведете примерчик ? Quote Share this post Link to post Share on other sites More sharing options...
des00 7 Monday at 10:45 AM Posted Monday at 10:45 AM · Report post 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 включить/выключить если макрос обьявлен. Quote Share this post Link to post Share on other sites More sharing options...
dimka76 12 Tuesday at 07:45 AM Posted Tuesday at 07:45 AM · Report post 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, который, кстати, тоже используется в моем проекте. Quote Share this post Link to post Share on other sites More sharing options...
des00 7 Tuesday at 07:48 AM Posted Tuesday at 07:48 AM · Report post 2 minutes ago, dimka76 said: Эти ошибки качались модулей USB и ADC. Я просто удалил описания этих модулей. Ну можно и так) 2 minutes ago, dimka76 said: По поводу того, что как мне казалось, система не находит модулей в уже скомпилированной библиотеке. На самом деле это не так. так сразу и говорил) в общем всегда если либа в сорцах и есть проблемы, надо смотреть именно туда) Quote Share this post Link to post Share on other sites More sharing options...
dimka76 12 Wednesday at 11:14 AM Posted Wednesday at 11:14 AM · Report post Удалось запустит симуляцию для этой связки. Только пришлось перейди на более раннюю версию алдека. У 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, но что-то с аргументами тоже не выходит. Уже не знаю Quote Share this post Link to post Share on other sites More sharing options...
des00 7 Wednesday at 01:43 PM Posted Wednesday at 01:43 PM · Report post 2 hours ago, dimka76 said: Пробовал запускать GSR через asim, но что-то с аргументами тоже не выходит. это глобальный сброс судя по всему, нечто аналогичное glbl у хилых. запускали моделирование двух топов типа vsim -novopt work.tb work.glbl или просто в любое место топа бросали неподключенный никуда glbl Quote Share this post Link to post Share on other sites More sharing options...
dimka76 12 Wednesday at 07:33 PM Posted Wednesday at 07:33 PM · Report post On 1/25/2023 at 4:43 PM, des00 said: это глобальный сброс судя по всему, нечто аналогичное glbl у хилых. запускали моделирование двух топов типа vsim -novopt work.tb work.glbl или просто в любое место топа бросали неподключенный никуда glbl Спасибо. Я тут подумал, что от post-PnR simulation model file толку особого нет. Т.к. найти в нем нужный сигнал не представляется возможным. В нем имена цепей абсолютно не соответствуют именам в исходниках. Quote Share this post Link to post Share on other sites More sharing options...