# Caravel User Project

[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![UPRJ_CI](https://github.com/efabless/caravel_project_example/actions/workflows/user_project_ci.yml/badge.svg)](https://github.com/efabless/caravel_project_example/actions/workflows/user_project_ci.yml) [![Caravel Build](https://github.com/efabless/caravel_project_example/actions/workflows/caravel_build.yml/badge.svg)](https://github.com/efabless/caravel_project_example/actions/workflows/caravel_build.yml)

| :exclamation: Important Note            |
|-----------------------------------------|
Title: Enhanced Chaotic Oscillator Design
Description: As part of this project, two general frameworks called NLCS (Normalized Linearly-combined Chaotic System) and FPCS (Flipped Product Chaotic System) are developed for building robust chaotic system with enhanced entropic properties. NLCS comprises an arbitrary linear combination of existing maps followed by a simple normalization technique to improve  the chaotic performance. The proposed frameworks are general and can be extended to any number of seed maps with any coefficient for linear combination. In FPCS, we built a general framework of 1-D chaotic maps where the output of one map is multiplied with the output of a vertically flipped second map to get the final output. Several systems are developed using different combinations of three seed maps, namely, logistic, tent, and sine maps. The robustness of the system across the entire parameter space is illustrated using stability analysis and bifurcation diagram along with four established metrics, namely, Lyapunov exponent, Kolmogorov entropy, Shannon entropy, and correlation coefficient. The systems developed by the proposed methods offer an uninterrupted chaotic window over the whole range of operation while the constituent seed maps only provide a narrow chaotic range. Unlike the seed maps, the entropy values in the developed systems remain uniformly high across the whole range and the value is always close to the maximum achievable value from the constituent seed maps. The simplicity of the proposed methods has been demonstrated by highly efficient VLSI implementation in this project. The proposed systems can be useful in diverse practical security application such as chaos-based cryptography, secure communication, reconfigurable logic gate, PRNG (Pseudo Random Number Generator) etc.

Refer to [README](docs/source/quickstart.rst) for a quick start of how to use caravel_user_project

Refer to [README](docs/source/index.rst) for this sample project documentation. 
