TODOS:
- change
NVME_FRAMEWORK_PACKAGEtoNVMEF_PACKAGE - fix bug vol_cntr1_pa_val for fsm_nv_reg_db
- fix bug 38 on fsm_nv_reg_tb
- overhaul project packages
- unify projects names and folders
- use this program to unify the code base (it must be configured properly)
- set scripts:
- [ok]: create
/scriptfolder - create
generate_project.tclthat will generate the whole project using the below scripts crated withgenerate_scripts.tcl - create
README.mdinside it - generate tcl scripts for:
write_proj_tcl: see this linkwrite_ip_tcl [get_ips]: see Tcl Command Referencewrite_xdc: see above
- create
generate_scripts.tcl: the scritpts differentiate from when they need to be generated during project and when they are run for project generation
- [ok]: create
- [ok] write characterization for the two types of model for each fsm_nv_reg
- [ok]: python program to automate characterization for task based backup
- [ok]: add power_approximation to project by using the states of
fsm_nv_regthis could be used in charachterization process later - [ok]: move
FRAM_MAX_DELAY_NSfromtest_architecture_package.vhdtoGLOBAL_SETTINGS.vhd - [ok]: rename
GLOBAL_SETTINGS.vhd->NVME_FRAMEWORK_PACKAGE.vhd - [ok]: rename
TEST_MODULE_PACKAGE.vhd->TEST_ARCHITECTURE_PACKAGE.vhd - [ok]: rename
vol_cntrtovol_arc(volatile architecture) and keep only the counters with the previous namevol_cntr - [ok]: serach for framework in overleaf and substiture where needed \nvmef
- [ok]: change
NVA_EMULATORfolder with/vivado - [ok]: add erasing process to vol_cntr during power_off time:
After a power failure the contents of the V_REG will remain as it is a BRAM in a powerd FPGA. It is the task of the developer to ensure this values are not accessed because in theory they are not available (as a real system would lose them) - [ok]: check that the first request to
nv_regis useless (tweakVAR_CNT_INIT_VALor else) and theV_REGshall not save it so keepdata_rec_recovered_addr/offsetsteady. Or at least make that the first request toNV_REGis good because the moment thatdata_rec_busygoes up we have a non requested pulse onvar_cntrthat changes it's value and sodata_rec_nv_reg_addr(the protocol is violated). - [ok]: when we end the recovery process the ouptus for the
V_REGmust remain steady till we exitdo_operation_sformfsm_nv_regso that theV_REGwill not read wrong data - [ok]: capture the output data from
nv_regusing the protocol definitions: capture whennv_reg_busyis off - [ok]: Refactor
bram_addr_width_bittov_reg_addr_width_bit - [ok]: Refactor vol_cntr states (recovery and loading) to have meaning because now they are flipped wrt fsm_nvreg causing confusion (ex: copy data_save and data_rec naming of fsm_nvreg to vol_cntr_fsm)
- [ok]: Refactor variable counter to var_counter
- [ok]: delete multiple adder
- [ok]: Refactor adder to vol_cntr in all instances (in vol_cntr.vhd search for add1)
- [ok]: Refactor
fsm_statustofsm_nv_reg_state - [ok]: Refactor
fsm_nv_reg_statustofsm_nv_reg_state_internal - [ok]: Refactor
statusandstatus_sigtofsm_stateandfsm_state_sig