@mchp-mcc/scf-pic8-clb-v1

1.2.1 • Public • Published

SCF Auto-Module Workflow

Overview

The Configurable Logic Block (CLB) module provides a collection of logic elements that can be programmed to perform a wide variety of digital logic functions. The logic function may be completely combinatorial, sequential or a combination of the two, enabling users to incorporate hardware-based custom logic into their applications.

SCF Auto-Module Workflow

Prerequisites:

Overview

https://confluence.microchip.com/display/MCA/MSDK+Quickstart

Do step 1 to 4

Install mcc standalone:

https://www.microchip.com/en-us/tools-resources/configure/mplab-code-configurator

Setup

  • cd to the project root
  • run the following commands:
    • yarn install
      • this downloads all of the project dependencies to your machine
    • yarn build-run-dir
      • this builds a run directory in your project
      • if download fails, checkout and build Scripted Content Framework and copy the generated run folder to your project's root directory

Compile & Build

  • yarn build

    • Builds the project and distributes the output files to the run directory. This also runs create-auto-module as part of the build process
  • yarn start (see note below)

    • Creates a watcher on the project that detects changes in the source files. When a change is detected, a short compilation is performed and the new files are distributed. It is intended to speed up the design process.
  • In a different terminal open MCC by running ./launch on unix / linux or ./launch.bat on windows. Update the default device indicated in the launch file to your desired device. Under Device Resources you should see your module.

    Note: ./launch.bat can be run directly after yarn build if yarn start causes issues. Live update is then not enabeled

Unit Tests

  • yarn test
    • Triggers all the unit test cases specified by any file ending in .test.ts
    • Unit test report is available at coverage/lcov-report/index.html

The project

The mcc version of clb uses the same core as the web version. The App function differently then the web version, most functionality in the web App is in EditorView in mcc. This means supporting core functions is done in EditorView.tsx, not in App.tsx

This mcc driver project contains two views defined in index.tsx:

  • the propertiesview defined in index.html has two entries:

    • AutoView automated view from msdk
    • PortConnectionView defining the port overview in the lower parft of the EasyView defined by AutoView
  • the diagramview defined in editorview.html

App.tsx is called twice when mcc loads the clb module, one for each defined ViewType in App.tsx:

  • ViewType.EDITOR_VIEW renders EditorView defined in EditorView.tsx This is the diagram view of the logic definitions
  • ViewType.PROPERTIES_VIEW renders AutoView defined in MSDK and PortConnectionView defined in PortConnectionView.tsx

These views are independent of each other and does not have any knowledge of data used by the others. To communicate between them a state is defined.

Interface Props

  • viewType: the view (Editor or Properties)
  • state: the state of the views, both AutoViewModulePayload (properties view) and CustomViewState (diagram view)
  • dispatch: maintaining and updateing the state (Redux)

Interface CustomViewState

  • data made available to the state

function handleUpdateState

  • called when state needs to be updated from EditorView
  • calls Redux dispatch as type CLBAction.UPDATE_CLB_CUSTOMDATA
  • defined in clbtypes.ts
  • update code in reduser.tsx

Some files:

  • src/index.tsx defines the views
  • public/index.html defines the property view (the easy view to ther right)
  • public/editorview.html defines the diagram view
  • src/App.tsx the App
  • src/clbtypes.cs define clb state interface
  • src/reducer.tsx update state
  • src/EditorView.tsx handles creation and manipulation of clb diagrams
  • src/PortConnectionView.tsx creates the portview (lower right corner)
  • src/DiagramInit.ts initialices the gojs diagram

Define core version

  • Set in package.json:
  • microchip/logic-frontend-core No newline at end of file The Configurable Logic Block (CLB) module provides a collection of logic elements that can be programmed to perform a wide variety of digital logic functions. The logic function may be completely combinatorial, sequential, or a combination of the two, enabling users to incorporate hardware-based custom logic into their applications.

Changelog

All notable changes to this project will be documented in this file.

[1.2.1] - 2025-04-07

New Features

  • CC8SCRIP-20810 :- scf-pic8-clb-v1 - CLB Logic tool improvements

[1.2.0] - 2024-12-13

New Features

  • CC8SCRIP-20652 :- CLB - add option for custom bitstream name (for multiple bitstream projects)

Bug Fixes

  • CC8SCRIP-20635 :- CLB Custom name fails to re-name initialization function name causing project to fail to compile

[1.1.0] - 2024-03-08

Bug Fixes

  • CC8SCRIP-19681 :- CLB PLIB - overwrite the last word from bitstream
  • CC8SCRIP-19172 :- PIC16F13145 - Reopening the CLB peripheral in MCC removes pin assignments until resynthesized

New Features

  • CC8SCRIP-19477 :- CLB PLIB - update pin_manager
  • CC8SCRIP-19476 :- CLB PLIB - remove CLBSWOUT register and APIs

Readme

Keywords

none

Package Sidebar

Install

npm i @mchp-mcc/scf-pic8-clb-v1

Weekly Downloads

35

Version

1.2.1

License

SEE LICENSE IN LICENSE.txt

Unpacked Size

93.7 MB

Total Files

390

Last publish

Collaborators

  • yash.godbole
  • rd_mchp
  • harish.agari
  • ajivani007
  • niladree
  • dan.ionescu
  • mchp-nate
  • brian.bailey235
  • rajaguru_p
  • archana_u