Difference between revisions of "Clock Card firmware"
From MCEWiki
(→Revision 4.0.b) |
(→Revision 4.0.a (Intermediate Version, Not for Telescope Use)) |
||
Line 239: | Line 239: | ||
* '''Features:''' | * '''Features:''' | ||
** Header Version 6 | ** Header Version 6 | ||
+ | ** Based on 4.0.9 | ||
** Added stop_dly, rcs_to_report_data, and cards_to_report commands | ** Added stop_dly, rcs_to_report_data, and cards_to_report commands | ||
** Added support for commands to the MCE during data acquisition | ** Added support for commands to the MCE during data acquisition |
Revision as of 15:32, 4 June 2009
Clock Card firmware revisions may implement different data packet header formats. All of the different formats are documented here.
Contents
Firmware Revision Listing
Revision 5.0.1
- Filename: cc_v05000001_12may2009.sof
- To Do:
- ---
- Features:
- Header Version 6
- STOP commands are meant to work in this revision. The successful execution of STOP commands through the system depends also on the PCI card firmware, and PCI driver. Modifications have been made to these, and their version numbers have been bumped to...
- Details:
- Differences between 5.0.0 and 5.0.1:
C system/test/source/tb/tb_cc_rcs_bcs_ac.vhd M all_cards/frame_timing/source/rtl/frame_timing_pack.vhd U all_cards/frame_timing/source/rtl/frame_timing_core.vhd U clk_card/clk_card/source/rtl/clk_card.vhd U clk_card/clk_switchover/source/rtl/clk_switchover.vhd U clk_card/issue_reply/source/rtl/cmd_queue.vhd U clk_card/issue_reply/source/rtl/cmd_translator.vhd U clk_card/issue_reply/source/rtl/issue_reply.vhd U clk_card/issue_reply/source/rtl/reply_queue.vhd U clk_card/issue_reply/source/rtl/reply_translator.vhd U clk_card/ret_dat/source/rtl/ret_dat_wbs.vhd U clk_card/ret_dat/source/rtl/ret_dat_wbs_pack.vhd
- Bugs:
- None yet reported
- FPGA Resource Usage (clk_card.fit.rpt):
+---------------------------------------------------------------------+ ; Fitter Summary ; +--------------------------+------------------------------------------+ ; Fitter Status ; Successful - Tue May 12 16:12:06 2009 ; ; Quartus II Version ; 8.1 Build 163 10/28/2008 SJ Full Version ; ; Revision Name ; clk_card ; ; Top-level Entity Name ; clk_card ; ; Family ; Stratix ; ; Device ; EP1S30F780C5 ; ; Timing Models ; Final ; ; Total logic elements ; 18,286 / 32,470 ( 56 % ) ; ; Total pins ; 259 / 598 ( 43 % ) ; ; Total virtual pins ; 0 ; ; Total memory bits ; 1,537,536 / 3,317,184 ( 46 % ) ; ; DSP block 9-bit elements ; 10 / 96 ( 10 % ) ; ; Total PLLs ; 1 / 6 ( 17 % ) ; ; Total DLLs ; 0 / 2 ( 0 % ) ; +--------------------------+------------------------------------------+
- Timing Analyzer Summary (clk_card.tan.rpt):
+----------------------------------------------------------------------------------------------------------- ; Timing Analyzer Summary +----------------------------------------------------------------------------------------------+-----------+ ; Type ; Slack ; +----------------------------------------------------------------------------------------------+-----------+ ; Worst-case tsu ; N/A ; ; Worst-case tco ; N/A ; ; Worst-case tpd ; N/A ; ; Worst-case th ; N/A ; ; Clock Setup: 'clk_switchover:clk_switchover_slave|cc_pll:pll0|altpll:altpll_component|_clk0' ; 1.995 ns ; ; Clock Setup: 'clk_switchover:clk_switchover_slave|cc_pll:pll0|altpll:altpll_component|_clk2' ; 3.585 ns ; ; Clock Setup: 'altera_internal_jtag~TCKUTAP' ; 5.644 ns ; ; Clock Setup: 'clk_switchover:clk_switchover_slave|cc_pll:pll0|altpll:altpll_component|_clk1' ; 9.234 ns ; ; Clock Setup: 'fibre_rx_clkr' ; 14.381 ns ; ; Clock Setup: 'clk_switchover:clk_switchover_slave|cc_pll:pll0|altpll:altpll_component|_clk3' ; 34.916 ns ; ; Clock Hold: 'clk_switchover:clk_switchover_slave|cc_pll:pll0|altpll:altpll_component|_clk0' ; 0.445 ns ; ; Clock Hold: 'fibre_rx_clkr' ; 0.445 ns ; ; Clock Hold: 'altera_internal_jtag~TCKUTAP' ; 0.534 ns ; ; Clock Hold: 'clk_switchover:clk_switchover_slave|cc_pll:pll0|altpll:altpll_component|_clk3' ; 0.544 ns ; ; Clock Hold: 'clk_switchover:clk_switchover_slave|cc_pll:pll0|altpll:altpll_component|_clk2' ; 0.658 ns ; ; Clock Hold: 'clk_switchover:clk_switchover_slave|cc_pll:pll0|altpll:altpll_component|_clk1' ; 10.656 ns ; ; Total number of failed paths ; ; +----------------------------------------------------------------------------------------------+-----------+
Revision 5.0.0 (Latest Release)
- Filename: cc_v05000000_22dec2008.sof
- To Do:
- ---
- Features:
- Header Version 6
- IMPORTANT: Must be used in conjunction with firmware v05000000 of all other cards!!!
- This version is based on 4.0.a. That is, it includes all of the features that were under development in 4.0.a, even though 4.0.a was not released for telescope use.
- Added the ability to read out a single column of data continuously from one Readout Card
- New commands include: readout_col_index, readout_priority, num_cols_reported
- To allow enough data bandwidth, the spare LVDS line from each card to the Clock Card is now used
- Details:
- Differences between 4.0.9 and 5.0.0:
U system/test/source/tb/tb_cc_rcs_bcs_ac.vhd U all_cards/all_cards/source/rtl/all_cards.vhd P all_cards/all_cards/source/rtl/all_cards_pack.vhd U all_cards/async/source/rtl/lvds_rx.vhd U all_cards/async/source/rtl/lvds_tx.vhd U all_cards/dispatch/source/rtl/dispatch.vhd U all_cards/dispatch/source/rtl/dispatch_reply_transmit.vhd U all_cards/dispatch/source/rtl/dispatch_wishbone.vhd U all_cards/frame_timing/source/rtl/frame_timing.vhd U all_cards/frame_timing/source/rtl/frame_timing_core.vhd P all_cards/frame_timing/source/rtl/frame_timing_pack.vhd U all_cards/frame_timing/source/rtl/frame_timing_wbs.vhd U clk_card/clk_card/source/rtl/clk_card.vhd P clk_card/clk_card/source/rtl/clk_card_pack.vhd P clk_card/clk_card/synth/clk_card.fit.rpt P clk_card/clk_card/synth/clk_card.fit.summary P clk_card/clk_card/synth/clk_card.map.rpt U clk_card/clk_card/synth/clk_card.qsf P clk_card/clk_card/synth/clk_card.qws U clk_card/clk_card/synth/clk_card.sof P clk_card/clk_card/synth/clk_card.tan.rpt P clk_card/clk_card/synth/clk_card.tan.summary U clk_card/issue_reply/source/rtl/cmd_translator.vhd U clk_card/issue_reply/source/rtl/issue_reply.vhd P clk_card/issue_reply/source/rtl/issue_reply_pack.vhd U clk_card/issue_reply/source/rtl/reply_queue.vhd U clk_card/issue_reply/source/rtl/reply_queue_receive.vhd U clk_card/issue_reply/source/rtl/reply_queue_sequencer.vhd P clk_card/issue_reply/source/rtl/reply_translator.vhd U clk_card/ret_dat/source/rtl/ret_dat_wbs.vhd U clk_card/ret_dat/source/rtl/ret_dat_wbs_pack.vhd U clk_card/sync_gen/source/rtl/sync_gen.vhd U clk_card/sync_gen/source/rtl/sync_gen_wbs.vhd U library/components/source/rtl/parallel_crc.vhd U library/sys_param/source/rtl/data_types_pack.vhd U library/sys_param/source/rtl/wishbone_pack.vhd
- Bugs:
- None yet reported
- FPGA Resource Usage (clk_card.fit.rpt):
+---------------------------------------------------------------------+ ; Fitter Summary ; +--------------------------+------------------------------------------+ ; Fitter Status ; Successful - Thu Jan 15 17:18:34 2009 ; ; Quartus II Version ; 8.1 Build 163 10/28/2008 SJ Full Version ; ; Revision Name ; readout_card ; ; Top-level Entity Name ; readout_card ; ; Family ; Stratix ; ; Device ; EP1S40F780C6 ; ; Timing Models ; Final ; ; Total logic elements ; 26,607 / 41,250 ( 65 % ) ; ; Total pins ; 358 / 616 ( 58 % ) ; ; Total virtual pins ; 0 ; ; Total memory bits ; 406,016 / 3,423,744 ( 12 % ) ; ; DSP block 9-bit elements ; 76 / 112 ( 68 % ) ; ; Total PLLs ; 1 / 6 ( 17 % ) ; ; Total DLLs ; 0 / 2 ( 0 % ) ; +--------------------------+------------------------------------------+
- Timing Analyzer Summary (clk_card.tan.rpt):
+--------------------------------------------------------------------------- ; Timing Analyzer Summary +--------------------------------------------------------------+-----------+ ; Type ; Slack ; +--------------------------------------------------------------+-----------+ ; Worst-case tsu ; N/A ; ; Worst-case tco ; N/A ; ; Worst-case th ; N/A ; ; Clock Setup: 'rc_pll:i_rc_pll|altpll:altpll_component|_clk0' ; 2.558 ns ; ; Clock Setup: 'rc_pll:i_rc_pll|altpll:altpll_component|_clk2' ; 3.892 ns ; ; Clock Setup: 'rc_pll:i_rc_pll|altpll:altpll_component|_clk3' ; 16.987 ns ; ; Clock Hold: 'rc_pll:i_rc_pll|altpll:altpll_component|_clk0' ; 0.741 ns ; ; Clock Hold: 'rc_pll:i_rc_pll|altpll:altpll_component|_clk2' ; 0.762 ns ; ; Clock Hold: 'rc_pll:i_rc_pll|altpll:altpll_component|_clk3' ; 0.763 ns ; ; Total number of failed paths ; ; +--------------------------------------------------------------+-----------+
Revision 4.0.b
- Filename: cc_v0400000b_03jun2009.sof
- To Do:
- ---
- Features:
- Header Version 6
- Based on v4.0.a, but has the necessary bug fixes to be as stable as v5.0.1 without implementing the dual-LVDS feature.
- STOP commands are meant to work in this revision. The successful execution of STOP commands through the system depends also on the PCI card firmware, and PCI driver. Modifications have been made to these, and their version numbers have been bumped to...
- This firmware is a hybrid version that implements a single LVDS line, but has STOP and On-The-Fly capabilities built in. The purpose of this firmware is to give SCUBA-2 these features without forcing them to upgrade the firmware on all their other cards.
- Details:
- Bugs:
- None yet reported
- FPGA Resource Usage (clk_card.fit.rpt):
+---------------------------------------------------------------------+ ; Fitter Summary ; +--------------------------+------------------------------------------+ ; Fitter Status ; Successful - Wed Jun 03 15:35:18 2009 ; ; Quartus II Version ; 8.1 Build 163 10/28/2008 SJ Full Version ; ; Revision Name ; clk_card ; ; Top-level Entity Name ; clk_card ; ; Family ; Stratix ; ; Device ; EP1S30F780C5 ; ; Timing Models ; Final ; ; Total logic elements ; 15,023 / 32,470 ( 46 % ) ; ; Total pins ; 254 / 598 ( 42 % ) ; ; Total virtual pins ; 0 ; ; Total memory bits ; 812,544 / 3,317,184 ( 24 % ) ; ; DSP block 9-bit elements ; 10 / 96 ( 10 % ) ; ; Total PLLs ; 1 / 6 ( 17 % ) ; ; Total DLLs ; 0 / 2 ( 0 % ) ; +--------------------------+------------------------------------------+
- Timing Analyzer Summary (clk_card.tan.rpt):
+----------------------------------------------------------------------------------------------------------- ; Timing Analyzer Summary +----------------------------------------------------------------------------------------------+-----------+ ; Type ; Slack ; +----------------------------------------------------------------------------------------------+-----------+ ; Worst-case tsu ; N/A ; ; Worst-case tco ; N/A ; ; Worst-case tpd ; N/A ; ; Worst-case th ; N/A ; ; Clock Setup: 'clk_switchover:clk_switchover_slave|cc_pll:pll0|altpll:altpll_component|_clk1' ; 1.328 ns ; ; Clock Setup: 'clk_switchover:clk_switchover_slave|cc_pll:pll0|altpll:altpll_component|_clk0' ; 1.442 ns ; ; Clock Setup: 'clk_switchover:clk_switchover_slave|cc_pll:pll0|altpll:altpll_component|_clk2' ; 3.383 ns ; ; Clock Setup: 'fibre_rx_clkr' ; 11.093 ns ; ; Clock Setup: 'clk_switchover:clk_switchover_slave|cc_pll:pll0|altpll:altpll_component|_clk3' ; 36.700 ns ; ; Clock Hold: 'fibre_rx_clkr' ; 0.445 ns ; ; Clock Hold: 'clk_switchover:clk_switchover_slave|cc_pll:pll0|altpll:altpll_component|_clk0' ; 0.532 ns ; ; Clock Hold: 'clk_switchover:clk_switchover_slave|cc_pll:pll0|altpll:altpll_component|_clk3' ; 0.542 ns ; ; Clock Hold: 'clk_switchover:clk_switchover_slave|cc_pll:pll0|altpll:altpll_component|_clk2' ; 0.556 ns ; ; Clock Hold: 'clk_switchover:clk_switchover_slave|cc_pll:pll0|altpll:altpll_component|_clk1' ; 2.989 ns ; ; Total number of failed paths ; ; +----------------------------------------------------------------------------------------------+-----------+
Revision 4.0.a (Intermediate Version, Not for Telescope Use)
- Filename: cc_v0400000a_16oct2008
- To Do:
- Make sure that the errno word, and the cards to report word in the data frame header agree with cards_to_report
- Features:
- Header Version 6
- Based on 4.0.9
- Added stop_dly, rcs_to_report_data, and cards_to_report commands
- Added support for commands to the MCE during data acquisition
- Details:
- clk_card.vhd: incremented the firmware version number, and added cards_to_report interface signals; added support for the stop_dly, rcs_to_report_data, and cards_to_report commands; Removed the Manchester PLL because the only way to ensure that packets are received without trouble is for the main PLL to be locked on the Manchester clock. The Manchester PLL was a failed attempted around this.
- clock_card_pack.vhd: added support for the stop_dly, rcs_to_report_data, and cards_to_report commands
- issue_reply.vhd: added support for the stop_dly, rcs_to_report_data, and cards_to_report commands
- cmd_translator.vhd: split up command registers so that it can handle WB/RB/RS commands while acquiring data based on a GO command.
- issue_reply_pack.vhd: added indexing constants.
- reply_queue.vhd: modified the logic for calculating the reply data size, in response to the addition of the rcs_to_report_data, and cards_to_report commands
- reply_queue_sequencer.vhd: modified the logic for reading the data from the reply queues; modified the logic for determining when to stop readout from a card queue to ease timing constraints. Changed to logic for multiplexing the data buses from the reply queues to combinatorial logic to ease timing constraints.
- reply_translator.vhd: added a stop_delay counter for delaying the replies to 'stop ret_dat' commands; added the QUICK_REPLY and QUICK_REPLY_PAUSE states to pause the return of replies to stop commands; added extra handling to the LD_STATUS state to avoid mixing stop replies, and replies to data or simple commands; added stop reply pause logic to DONE state
- ret_dat_wbs.vhd: added the stop_delay_o, rcs_to_report_data, and cards_to_report_o interfaces; implemented a custom register from cards_to_report and stop_delay; removed the register for ret_dat_card_addr which was a special case of cards_to_report.
- ret_dat_wbs_pack: added the constant DEFAULT_CARDS_TO_REPORT
- Bugs:
- Reading back rcs_to_report_data returns zero (fixed)
- Can't issue simple commands during data taking (???)
- Can't read from RC4 (fixed)
- See MCE Bugs (Internal MCE Wiki)
- FPGA Resource Usage (clk_card.fit.rpt):
+--------------------------------------------------------------------------+ ; Fitter Summary ; +--------------------------+-----------------------------------------------+ ; Fitter Status ; Successful - Fri Nov 21 12:19:34 2008 ; ; Quartus II Version ; 8.0 Build 231 07/10/2008 SP 1 SJ Full Version ; ; Revision Name ; clk_card ; ; Top-level Entity Name ; clk_card ; ; Family ; Stratix ; ; Device ; EP1S30F780C5 ; ; Timing Models ; Final ; ; Total logic elements ; 14,542 / 32,470 ( 45 % ) ; ; Total pins ; 254 / 598 ( 42 % ) ; ; Total virtual pins ; 0 ; ; Total memory bits ; 812,544 / 3,317,184 ( 24 % ) ; ; DSP block 9-bit elements ; 8 / 96 ( 8 % ) ; ; Total PLLs ; 1 / 6 ( 17 % ) ; ; Total DLLs ; 0 / 2 ( 0 % ) ; +--------------------------+-----------------------------------------------+
- Timing Analyzer Summary (clk_card.tan.rpt):
+---------------------------------------+-----------+ ; Type ; Slack ; +---------------------------------------+-----------+ ; Worst-case tsu ; N/A ; ; Worst-case tco ; N/A ; ; Worst-case tpd ; N/A ; ; Worst-case th ; N/A ; ; Clock Setup: 'clk_switchover:t|_clk0' ; 1.712 ns ; ; Clock Setup: 'clk_switchover:t|_clk1' ; 2.632 ns ; ; Clock Setup: 'clk_switchover:t|_clk2' ; 3.884 ns ; ; Clock Setup: 'fibre_rx_clkr' ; 13.678 ns ; ; Clock Setup: 'clk_switchover:t|_clk3' ; 36.938 ns ; ; Clock Hold: 'fibre_rx_clkr' ; 0.445 ns ; ; Clock Hold: 'clk_switchover:c|_clk0' ; 0.531 ns ; ; Clock Hold: 'clk_switchover:c|_clk3' ; 0.541 ns ; ; Clock Hold: 'clk_switchover:c|_clk2' ; 0.544 ns ; ; Clock Hold: 'clk_switchover:c|_clk1' ; 2.989 ns ; ; Total number of failed paths ; ; +---------------------------------------+-----------+
Revision 4.0.9
- Filename: cc_v04000009
- Features:
- Header Version 6
- Integrated a bug fix for the sram_ctrl block
- Integrated new all_cards block of code which was causing a synthesis warning in ModelSim
- Two new commands added: card_type, scratch.
- Bugs:
- FPGA Resource Usage (clk_card.fit.rpt):
+---------------------------------------------------------------------+ ; Fitter Summary ; +--------------------------+------------------------------------------+ ; Fitter Status ; Successful - Thu Feb 21 16:56:34 2008 ; ; Quartus II Version ; 6.1 Build 201 11/27/2006 SJ Full Version ; ; Revision Name ; clk_card ; ; Top-level Entity Name ; clk_card ; ; Family ; Stratix ; ; Device ; EP1S30F780C5 ; ; Timing Models ; Final ; ; Total logic elements ; 14,144 / 32,470 ( 44 % ) ; ; Total pins ; 254 / 598 ( 42 % ) ; ; Total virtual pins ; 0 ; ; Total memory bits ; 812,544 / 3,317,184 ( 24 % ) ; ; DSP block 9-bit elements ; 8 / 96 ( 8 % ) ; ; Total PLLs ; 2 / 6 ( 33 % ) ; ; Total DLLs ; 0 / 2 ( 0 % ) ; +--------------------------+------------------------------------------+
- Timing Analyzer Summary (clk_card.tan.rpt):
+----------------------------------------------------------------------------------------------------------- ; Timing Analyzer Summary +----------------------------------------------------------------------------------------------+-----------+ ; Type ; Slack ; +----------------------------------------------------------------------------------------------+-----------+ ; Worst-case tsu ; N/A ; ; Worst-case tco ; N/A ; ; Worst-case tpd ; N/A ; ; Worst-case th ; N/A ; ; Clock Setup: 'clk_switchover:clk_switchover_slave|cc_pll:pll0|altpll:altpll_component|_clk1' ; 0.294 ns ; ; Clock Setup: 'clk_switchover:clk_switchover_slave|cc_pll:pll0|altpll:altpll_component|_clk0' ; 2.091 ns ; ; Clock Setup: 'clk_switchover:clk_switchover_slave|cc_pll:pll0|altpll:altpll_component|_clk2' ; 2.711 ns ; ; Clock Setup: 'fibre_rx_clkr' ; 16.125 ns ; ; Clock Setup: 'manch_pll:manch_pll_block|altpll:altpll_component|_clk0' ; 18.658 ns ; ; Clock Setup: 'clk_switchover:clk_switchover_slave|cc_pll:pll0|altpll:altpll_component|_clk3' ; 35.366 ns ; ; Clock Hold: 'clk_switchover:clk_switchover_slave|cc_pll:pll0|altpll:altpll_component|_clk0' ; 0.445 ns ; ; Clock Hold: 'clk_switchover:clk_switchover_slave|cc_pll:pll0|altpll:altpll_component|_clk3' ; 0.445 ns ; ; Clock Hold: 'clk_switchover:clk_switchover_slave|cc_pll:pll0|altpll:altpll_component|_clk2' ; 0.542 ns ; ; Clock Hold: 'manch_pll:manch_pll_block|altpll:altpll_component|_clk0' ; 0.542 ns ; ; Clock Hold: 'fibre_rx_clkr' ; 0.543 ns ; ; Clock Hold: 'clk_switchover:clk_switchover_slave|cc_pll:pll0|altpll:altpll_component|_clk1' ; 2.989 ns ; ; Total number of failed paths ; ; +----------------------------------------------------------------------------------------------+-----------+