A lightweight IDE that supports verilog simulation and Risc-V code compilation

Overview

EveIDE_LIGHT 使用手册

EveIDE_LIGHT

当前版本 : v0.0.2-beta (支持windows7以上版本 64位操作系统)
作者 : Adancurusul



版本说明

当前为v0.0.2-beta 版本,在releases中可以直接下载,beta版本会保留命令行窗口以便使用出现bug时可以及时向开发团队反馈
*由于开发人员只有一个,bug可能会比较多,请见谅。
如果使用中存在任何问题可联系 [email protected] 或者 QQ:1016867898

版本部分特性

  • 工程目录和ide所在目录需放在同一磁盘中(如C盘)
  • 自动例化已用Racket重写,优化输出文件格式、支持一个文件下多个模组且可以独立使用,但是仍然具备一定局限,自动例化器
    • 例化代码中input 与output 应当每行一个不能一行多个
    • 例化的模组中parameter定义前需要加上“parameter” eg:“parameter a = 0”
    • 可能会出现例化后信号丢失或者信号多出现象,请注意检查
  • 本版本编译时只能对工程下的main.c或main.s或main.S自动编译,此特性会在后续版本中修复

概述

什么是EveIDE_LIGHT

EveIDE_LIGHT 目的是为RiscV核心设计者打造一个轻量化解包即用、快速开发与验证的集成开发环境。 EveIDE_LIGHT目前集成了编辑器,仿真器和烧录器,后期还会添加Git等版本管理模块。打包后可执行很小 ,且能做到解包即用不用配置其他环境

使用介绍

选择工作区

选择工作区

EveIDE_LIGHT 工程管理方式为工作区,工作区下可以创建或导入多个仿真工程和编译工程,首次打开IDE时会弹出工作区目录选择,只需根据自己需要选择工作区。 可以点击select从文件管理系统中选择文件夹,曾经使用的工作区也可以通过输入框右侧下拉选项选择
每次启动IDE默认会弹出选择窗口,也可以通过点击左下角设为默认
选择完工作区后点击OK按钮即可进入IDE主界面,当所选文件夹不存在时IDE会报错
选择工作区_错误

进入主界面

主界面视图 选择工作目录后会进入到主界面,主界面由顶部菜单栏,左侧模组区,右侧编辑器和下部输出区域组成,EveIDE_LIGHT 本着轻量化易使用原则采用扁平化ui设计,不会有过多弹窗弹出,主要逻辑功能都在主界面可以快速使用

左侧模组区

左侧模组区由工程视图区,编译区和仿真区组成

工程视图

工程视图提供了工作区下包含的所有编译工程的树状视图右上角三个按键分别是:展开所有节点、收缩所有节点和刷新树状视图
工程视图0
点击展开所有节点后树状视图会被完全展开,点击收缩后节点会自动收缩,刷新树状视图可以重新扫描文件获得新的树状结构。
这里以两个示例工程为例介绍下树状结构

树状视图0

树状结构在折叠状态为工程列表,对于所有目录下有文件的文件夹都可以通过双击或者点击小箭头打开与折叠,对于IDE支持查看的文件和能打开的文件夹都会在名字前加上图标。

删除文件
所有节点右键都会弹出删除节点的选项,点击删除后会弹出警告,选择yes:文件夹会连同内部文件一同被删除,文件会被直接删除选择No则不会做任何操作。
对于c语言,EveIDE_LIGHT有一套函数识别机制(有待优化)可以帮助使用者更加直观的看到c语言下的函数,并可以通过双击函数打开该文件,同时IDE目前仅支持打开UTF-8的文件格式,其他格式会报错并无法打开,双击会产生报错警告
打开文件失败

编译设置

点击左侧模组视图左边的第二个标签会进入到编译设置页面,编译后IDE会保存该工程的配置
编译设置
最上方左侧是工程选择,可以点击展开下拉列表选取需要编译的工程名字
选择工程
可以在toolchain那一栏配置自己的工具链,可以将自己的工具链bin文件路径填入,IDE会自动识别工具链前缀,如该目录下无gcc工具则会在点击编译后抛出警告并停止编译
错误的gcc路径

gcc选择下面为指令集选择,可以根据自己工程的指令集来选择

选择isa

IDE支持自动为使用者编译,只需将Auto generate勾上即可(当为设置Auto generate时自定义编译设置将无效)
*目前EveIDE_LIGHT只支持工程目录下的main.S和main.c自动生成,后面会继续完善
自动makefile
为了方便开发者在FPGA上和仿真器中验证,IDE为开发者设置了输出文件可选项,目前支持mif,coe,纯二进制bin,和与纯二进制区分后缀为elf的文件

IDE默认编译输出结果存放在工程下的build文件夹(自动生成),也可以自定义输出位置
编译输出
配置完所有选项后点击compile按钮即可编译,编译信息会在输出窗口显示
编译输出
如果代码有错误无法成功编译则会用红色显示 编译错误

仿真设置

EveIDE_LIGHT设计了一套自动寻找例化模组和头文件算法能帮助开发者实现一键仿真(有一定bug,优化中)

同时文件下模组也会显示在树状结构中 仿真

右键树状结构中的文件可以弹出右键菜单列表,第一项为设置该文件为顶层,设置为顶层后文件名背景会变成蓝色,第二项为生成例化文件,IDE能对文件中信号进行自动例化(有bug,优化中)方便开发者调用,后面两个为打开和删除文件
右键菜单
顶层文件中应加上例如:

initial begin
	$dumpfile("tb.lxt");
	$dumpvars(0, counter);
end   

以便后续能显示波形,若未添加ide会弹出警告窗口
仿真出错
点击仿真后会调用iverilog进行仿真,仿真结果会输出到输出框中,若无误则会弹出gtkwave用以显示波形,警告会以粉色显示在输出框,错误以红色显示 仿真警告
仿真报错
仿真成功
仿真结果

右侧编辑器

EveIDE_LIGHT 本着小巧稳定的原则取消了之前的自研编辑器改为采用更加稳定易用的monaco editor 且目前支持c,verilog,riscv汇编的高亮功能,后续还会继续优化编辑器体验。
*对于后缀为bin的文件由于是纯二进制文件于是IDE会读取并以64位字长的小端序显示并不支持编辑

显示bin文件
为避免同一个工作区下不同工程的同名文件之间的干扰,当前打开文件若处于树状图中则会展开当前文件所在节点,切换文件时左侧树状结构也会同时切换
切换文件
文件在被修改后会在小窗口名字后面产生一个*作为改动标记,点击保存或者Ctr+s保存后即消失
改动标记

顶部菜单

文件

视图

视图菜单栏目前用于控制模组和输出区域的显示和隐藏当被选中状态时该视图会显示,可以通过单击列表项来改变视图的显示和隐藏

工程

用于新建工程和切换工作区
工程菜单
点击新建工程子列表后的任意一个会弹出新建工程窗口,在输入框中输入新建工程路径点击create即可生成新工程同时更新在树状视图
新建工程
若选择的文件夹不是空文件夹IDE会弹出警告但不会修改其中内容
新建工程警告

模组

本版本中暂无用途

You might also like...

Open source code of classic.minecraft.net

Minecraft classic Open source This Project is a clone for classic.minecraft.net. Owner of this Repo (CodeWhiteWeb) doesn't have any rights to this pro

Dec 16, 2022

📖 Contenerised documentation generator from in-code comments for CLIPS (inspired by JavaDoc)

clips-doc Installation Download the clips-doc.docker.tar Docker image. You will need docker to proceed. docker load --input clips-doc.docker.tar Image

Apr 18, 2022

Database driven code generation for ts-sql-query

ts-sql-codegen This utility generates table mapper classes for ts-sql-query by inspecting a database through tbls. While it is possible to use ts-sql-

Dec 12, 2022

AlaSQL.js - JavaScript SQL database for browser and Node.js. Handles both traditional relational tables and nested JSON data (NoSQL). Export, store, and import data from localStorage, IndexedDB, or Excel.

AlaSQL.js - JavaScript SQL database for browser and Node.js. Handles both traditional relational tables and nested JSON data (NoSQL). Export, store, and import data from localStorage, IndexedDB, or Excel.

Please use version 1.x as prior versions has a security flaw if you use user generated data to concat your SQL strings instead of providing them as a

Jan 9, 2023

A query builder for PostgreSQL, MySQL and SQLite3, designed to be flexible, portable, and fun to use.

knex.js A SQL query builder that is flexible, portable, and fun to use! A batteries-included, multi-dialect (MSSQL, MySQL, PostgreSQL, SQLite3, Oracle

Jan 4, 2023

Azure Data Studio is a data management tool that enables you to work with SQL Server, Azure SQL DB and SQL DW from Windows, macOS and Linux.

Azure Data Studio is a data management tool that enables you to work with SQL Server, Azure SQL DB and SQL DW from Windows, macOS and Linux.

Azure Data Studio is a data management tool that enables working with SQL Server, Azure SQL DB and SQL DW from Windows, macOS and Linux.

Dec 31, 2022

A Gmail Clone which built with ReactJS and Redux. You can sign in with your Google Account, compose a new e-mail and send realtime emails to the project.

Gmail Clone with ReactJS A Gmail Clone that you can sign in with your Google Account, compose a new e-mail and send realtime emails to the project. Cl

Nov 14, 2022

Senior Design Project. Water intake tracker. Software for the communication to bottle and app. Software for app and database

WaterMate Senior Design Project. Water intake tracker to provide everyone with an easy to use water tracking system that can be integrated with your f

Nov 10, 2021

Fastify is a web framework highly focused on providing the best developer experience with the least overhead and a powerful plugin architecture, inspired by Hapi and Express.

Fastify is a web framework highly focused on providing the best developer experience with the least overhead and a powerful plugin architecture, inspired by Hapi and Express.

Oct 11, 2022
Releases(v0.0.7)
Owner
Chen Yuheng
Chen Yuheng
ORM for TypeScript and JavaScript (ES7, ES6, ES5). Supports MySQL, PostgreSQL, MariaDB, SQLite, MS SQL Server, Oracle, SAP Hana, WebSQL databases. Works in NodeJS, Browser, Ionic, Cordova and Electron platforms.

TypeORM is an ORM that can run in NodeJS, Browser, Cordova, PhoneGap, Ionic, React Native, NativeScript, Expo, and Electron platforms and can be used

null 30.1k Jan 3, 2023
TypeScript ORM for Node.js based on Data Mapper, Unit of Work and Identity Map patterns. Supports MongoDB, MySQL, MariaDB, PostgreSQL and SQLite databases.

TypeScript ORM for Node.js based on Data Mapper, Unit of Work and Identity Map patterns. Supports MongoDB, MySQL, MariaDB, PostgreSQL and SQLite datab

MikroORM 5.4k Dec 31, 2022
⚡️ lowdb is a small local JSON database powered by Lodash (supports Node, Electron and the browser)

Lowdb Small JSON database for Node, Electron and the browser. Powered by Lodash. ⚡ db.get('posts') .push({ id: 1, title: 'lowdb is awesome'}) .wri

null 18.9k Dec 30, 2022
A web client port-scanner written in GO, that supports the WASM/WASI interface for Browser WebAssembly runtime execution.

WebAssembly Port Scanner Written in Go with target WASM/WASI. The WASM main function scans all the open ports in the specified range (see main.go), vi

Avi Lumelsky 74 Dec 27, 2022
Like JSON-RPC, but supports streaming.

Earthstar Streaming RPC Similar to JSON-RPC, but also supports streaming (soon). Written to be used in Earthstar (github, docs). Table of Contents Usa

Earthstar Project 5 Feb 10, 2022
project overview tool, used to analyze the amount of code, the number of files, code statistics and so on.

pot z-pot is a project overview tool, used to analyze the amount of code, the number of files, code statistics and so on. 项目概述工具,用于分析代码量、文件数、代码统计等。 快速

zhangchi 18 Aug 10, 2022
Nodeparse - A lightweight, vanilla replacement for Express framework when parsing the HTTP body's data or parsing the URL parameters and queries with NodeJS.

nodeparse A lightweight, vanilla replacement for Express framework when parsing the HTTP body's data or parsing the URL parameters and queries with No

Trần Quang Kha 1 Jan 8, 2022
A lightweight way to cache on graphQL servers

cacheflowQL What is cacheflowQL? CacheflowQL is an npm package with complex caching algorithms that provide developers deep insights into their GraphQ

OSLabs Beta 53 Nov 16, 2022
around nestjs, with prisma and some graphql lib,write less code,create power api

介绍 这是一个 prisma + nestjs + graphql 的集成示例 对于开发者来说,特别是使用 graphql 的时候,只需要写非常少量的代码即可完成数据的各种操作,同时也支持接口透传。 开发&部署 本地开发 npm run start:dev swagger 地址:http://loc

芋头 26 Nov 24, 2022
Learn GraphQL PIAIC CNC Class code

GraphQL using React! Steps (for 01 - react-graphql) Generate and copy Access Token from Github Personal Acess Token Create .env file in project folder

Yousuf Qutubuddin 71 Jan 2, 2023