Thread: [myhdl-list] ISE 14.7 and FSM
Brought to you by:
jandecaluwe
From: Edward V. <dev...@sb...> - 2014-12-06 16:16:30
|
Hello All, Fairly new to both VHDL and myhdl. I would appreciate any and all help. Thanks in advance. I have created other FSM that I used in simulation and it worked okay. I am using ISE 14.7 for a Spartan6 XC6SLX9. If I can provide any additional information just let me know. Creating a project with xess_jpeg_top.vhd & pck_myhdl_09.vhd will synthesize okay. The file xess_jpeg_top.vhd is not a package and has the following RTL modules. XESS_JPEG_TOP_INSTANCE_2_MUXLOGIC XESS_JPEG_TOP_INSTANCE_3_JPEG XESS_JPEG_TOP_INSTANCE_4_SDRAM_RD XESS_JPEG_TOP_INSTANCE_5_RAM2SIG XESS_JPEG_TOP_INSTANCE_7_FSMUPDATE Adding a FSM module see below. XESS_JPEG_TOP_INSTANCE_6_FSM to the xess_jpeg_top.vhd now creates a package. When I try to synthesize generates the following errors. ERROR:HDLCompiler:806 - "C:\Users\vidal\Documents\GitHub\jpeg-2000-test\jpeg2k\XESS_SdramSPInst\xess_jpeg_top.vhd" Line 172: Syntax error near "case". ERROR:HDLCompiler:806 - "C:\Users\vidal\Documents\GitHub\jpeg-2000-test\jpeg2k\XESS_SdramSPInst\xess_jpeg_top.vhd" Line 176: Syntax error near "when". ERROR:HDLCompiler:806 - "C:\Users\vidal\Documents\GitHub\jpeg-2000-test\jpeg2k\XESS_SdramSPInst\xess_jpeg_top.vhd" Line 180: Syntax error near "end". ERROR:HDLCompiler:806 - "C:\Users\vidal\Documents\GitHub\jpeg-2000-test\jpeg2k\XESS_SdramSPInst\xess_jpeg_top.vhd" Line 184: Syntax error near "when". ERROR:HDLCompiler:806 - "C:\Users\vidal\Documents\GitHub\jpeg-2000-test\jpeg2k\XESS_SdramSPInst\xess_jpeg_top.vhd" Line 187: Syntax error near "when". ERROR:HDLCompiler:806 - "C:\Users\vidal\Documents\GitHub\jpeg-2000-test\jpeg2k\XESS_SdramSPInst\xess_jpeg_top.vhd" Line 190: Syntax error near "when". ERROR:HDLCompiler:806 - "C:\Users\vidal\Documents\GitHub\jpeg-2000-test\jpeg2k\XESS_SdramSPInst\xess_jpeg_top.vhd" Line 193: Syntax error near "end". ERROR:HDLCompiler:854 - "C:\Users\vidal\Documents\GitHub\jpeg-2000-test\jpeg2k\XESS_SdramSPInst\xess_jpeg_top.vhd" Line 61: Unit <myhdl> ignored due to previous errors. Lines 169-194 XESS_JPEG_TOP_INSTANCE_6_FSM: process (addr_r, state, even_odd_x) is begin (even_odd_x <= '0') case state is when INIT => addr_x <= to_unsigned(1, 24); (state <= ODD_SAMPLES) when ODD_SAMPLES => if (addr_r = 1) then addr_x <= to_unsigned(2, 24); (state <= EVEN_SAMPLES) end if; when EVEN_SAMPLES => addr_x <= to_unsigned(2, 24); (state <= WR_DATA) when WR_DATA => addr_x <= to_unsigned(8, 24); (state <= INTERLACE) when INTERLACE => addr_x <= to_unsigned(16, 24); (state <= DONE) when others => -- DONE addr_x <= to_unsigned(1, 24); (state <= INIT) end case; end process XESS_JPEG_TOP_INSTANCE_6_FSM; The file that I am using to generate the FSM is at https://github.com/develone/jpeg-2000-test/tree/master/jpeg2k/XESS_SdramSPInst/xess_jpeg_top.vhd The following is the checked message. trying to add a FSM when following 4 lines are un-commented def xess_jpeg_top(clk_fast, addr_r, addr_x, addr_r1, addr_r2, muxsel, dataToRam_r, dataToRam_x, sig_in, noupdate_s, res_s, jp_lf, jp_sa ,jp_rh, jp_flgs, reset_col, rdy, addr_not_reached, offset, dataFromRam_s, state, even_odd_r, even_odd_x): instance_6 = RamCtrl(addr_r, addr_x, state, even_odd_r, even_odd_x) return instance_2, instance_3, instance_4, instance_5, instance_6, instance_7 toVHDL(xess_jpeg_top, clk_fast, addr_r, addr_x, addr_r1, addr_r2, muxsel, dataToRam_r, dataToRam_x, sig_in, noupdate_s, res_s, jp_lf, jp_sa ,jp_rh, jp_flgs, reset_col, rdy, addr_not_reached, offset, dataFromRam_s, state, even_odd_r, even_odd_x) the xess_jpeg_top.vhd now creates a package. when the following 3 lines are un-commented and the line instance_6 = RamCtrl(addr_r, addr_x, state, even_odd_r, even_odd_x) is commented out def xess_jpeg_top(clk_fast, addr_r, addr_x, addr_r1, addr_r2, muxsel, dataToRam_r, dataToRam_x, sig_in, noupdate_s, res_s, jp_lf, jp_sa ,jp_rh, jp_flgs, reset_col, rdy, addr_not_reached, offset, dataFromRam_s): return instance_2, instance_3, instance_4, instance_5, instance_7 toVHDL(xess_jpeg_top, clk_fast, addr_r, addr_x, addr_r1, addr_r2, muxsel, dataToRam_r, dataToRam_x, sig_in, noupdate_s, res_s, jp_lf, jp_sa ,jp_rh, jp_flgs, reset_col, rdy, addr_not_reached, offset, dataFromRam_s) The XESS_JPEG_TOP_INSTANCE_6_FSM is not generated and the file xess_jpeg_top.vhd is not a package. Thanks, Edward Vidal Jr. e-mail dev...@sb... 915-595-1613 |
From: Christopher F. <chr...@gm...> - 2014-12-06 19:52:03
|
On 12/6/14, 10:16 AM, Edward Vidal wrote: > Hello All, > Fairly new to both VHDL and myhdl. > I would appreciate any and all help. Thanks in advance. > I have created other FSM that I used in simulation and it worked okay. > I am using ISE 14.7 for a Spartan6 XC6SLX9. Simulation works ok but when you try and synthesize the design you get errors (assumes conversion works ok?). > If I can provide any additional information just let me know. > Creating a project with xess_jpeg_top.vhd & pck_myhdl_09.vhd will > synthesize okay. > The file xess_jpeg_top.vhd is not a package and has the following RTL > modules. Is the original source MyHDL source? Do you have a link to the original MyHDL? p.s. the IRC channel #myhdl on freenode can also be used for real-time discussions. Regards, Chris |
From: Edward V. <dev...@sb...> - 2014-12-06 20:13:36
|
The python file is in the same folder as the https://github.com/develone/jpeg-2000-test/blob/master/jpeg2k/XESS_SdramSPInst/xess_jpeg_top.vhd https://github.com/develone/jpeg-2000-test/blob/master/jpeg2k/XESS_SdramSPInst/xess_jpeg_top.py The FSM that works okay in a simulation is https://github.com/develone/jpeg-2000-test/blob/master/jpeg2k/jpeg_top.py with the test bed https://github.com/develone/jpeg-2000-test/blob/master/jpeg2k/simulation/jpegprocess_tb.vhd. This one is not using sdram. I did notice that the one that is not working has several lines without a ";" is this normal. The steps to change the https://github.com/develone/jpeg-2000-test/blob/master/jpeg2k/jpeg_top.py to generate the one with the non working FSM are in the previous e-mail or at the https://github.com/develone/jpeg-2000-test/commits/master/jpeg2k/XESS_SdramSPInst/xess_jpeg_top.py history tab. Thanks, Edward Vidal Jr. e-mail dev...@sb... 915-595-1613 On Saturday, December 6, 2014 11:51 AM, Christopher Felton <chr...@gm...> wrote: On 12/6/14, 10:16 AM, Edward Vidal wrote: > Hello All, > Fairly new to both VHDL and myhdl. > I would appreciate any and all help. Thanks in advance. > I have created other FSM that I used in simulation and it worked okay. > I am using ISE 14.7 for a Spartan6 XC6SLX9. Simulation works ok but when you try and synthesize the design you get errors (assumes conversion works ok?). > If I can provide any additional information just let me know. > Creating a project with xess_jpeg_top.vhd & pck_myhdl_09.vhd will > synthesize okay. > The file xess_jpeg_top.vhd is not a package and has the following RTL > modules. Is the original source MyHDL source? Do you have a link to the original MyHDL? p.s. the IRC channel #myhdl on freenode can also be used for real-time discussions. Regards, Chris ------------------------------------------------------------------------------ Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server from Actuate! Instantly Supercharge Your Business Reports and Dashboards with Interactivity, Sharing, Native Excel Exports, App Integration & more Get technology previously reserved for billion-dollar corporations, FREE http://pubads.g.doubleclick.net/gampad/clk?id=164703151&iu=/4140/ostg.clktrk _______________________________________________ myhdl-list mailing list myh...@li... https://lists.sourceforge.net/lists/listinfo/myhdl-list |
From: Christopher F. <chr...@gm...> - 2014-12-06 20:28:12
|
<snip> Edward, Couple suggestions, first, as you indicate, when you add the *RamCtrl* module you encounter issues. You should try and debug this module independent of the rest! If you are unable to determine the issue, asking a question on a smaller set of code will get a better response. It is a lot of work to trudge through your 600+ lines of code and try to determine what is going on. You NEED to reduce the issue to something manageable, very few will walk through all of your code to answer a question. If you interrogate the *RamCtrl* module there are a bunch of issues. What is *RamCtrl* supposed to do? If it is a state-machine it needs to be a sequential process (@always_seq(clock ...)) and not purely a combinatorial. And you need to decide what are the inputs to the state-machine and outputs (not sure why state is in the port list). One of the other issues is that you are missing several ".next" on assignments. Regards, Chris |