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.
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
- 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
-
-
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
- Builds the project and distributes the output files to the run directory. This also runs
-
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
-
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 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
- 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.
All notable changes to this project will be documented in this file.
- CC8SCRIP-20810 :- scf-pic8-clb-v1 - CLB Logic tool improvements
- CC8SCRIP-20652 :- CLB - add option for custom bitstream name (for multiple bitstream projects)
- CC8SCRIP-20635 :- CLB Custom name fails to re-name initialization function name causing project to fail to compile
- CC8SCRIP-19681 :- CLB PLIB - overwrite the last word from bitstream
- CC8SCRIP-19172 :- PIC16F13145 - Reopening the CLB peripheral in MCC removes pin assignments until resynthesized
- CC8SCRIP-19477 :- CLB PLIB - update pin_manager
- CC8SCRIP-19476 :- CLB PLIB - remove CLBSWOUT register and APIs