当前位置: 首页 > news >正文

FPGA/HDL 人员开发利器-TerosHDL(开源 IDE)

HDL 人员开发利器-TerosHDL(开源 IDE)

https://terostechnology.github.io/terosHDLdoc/about/about.html

TerosHDL是啥

TerosHDL 的目标是为 HDL 开发人员提供一个开源 IDE,该 IDE 具有软件开发人员常用的功能。IDE 包含一堆工具,其中最重要的是VSCode 插件。一些工具是由Teros Technology组织开发的,而另一些则来自开源项目。所有工具都组织在不同的后端,并通过插件暴露给 GUI。

安装

安装 VSCode

https 😕/code.visualstudio.com/

在扩展中搜索TerosHDLinside VSCode 并单击安装按钮:

在这里插入图片描述

安装其他:

python

安装过程略。

make

正常安装,不用修改,安装完毕后将下面路径(make的安装路径)加入到系统环境中。

C:\Program Files (x86)\GnuWin32\bin

安装系统下TerosHDL

在vscode中点击左侧TerosHDL,在终端输入:

pip install teroshdl

在这里插入图片描述

完成后如下:

在这里插入图片描述

检查缺少的环境

按照下图检查一下TerosHDL还缺少什么环境,自己按照需求按照即可。

在这里插入图片描述

完成后如下:

在这里插入图片描述

实例演示

我们新建一个状态机的.v文件,具体如下:

module fsm_sale(
input                   clk                 ,
input                   rst_n               ,
input      [1:0]        in                  ,
output reg [1:0]        out                 ,
output reg              out_vld
);
//---------------定义信号----------------------//
reg  [3:0]              state             ;

//---------------定义信号状态变量--------------------//
parameter S0           = 4'b0001           ;
parameter S1           = 4'b0010           ;
parameter S2           = 4'b0100           ;
parameter S3           = 4'b1000           ;

//---------------一段式状态机--------------------//

always @(posedge clk or negedge rst_n)begin
   if(!rst_n)begin
    state <= S0;
  out <= 0;
  out_vld <= 0;
   end
 else begin
    case(state)
     S0:begin
      if(in==1)begin
      state <= S1;out <= 0;out_vld <= 0;
    end
      else if(in==2)begin
        state <= S2;out <= 0;out_vld <= 0;
        end 
    else begin
      state <= state;out <= 0;out_vld <= 0;
    end
   end
     S1:begin
        if(in==1)begin
       state <= S2;out <= 0;out_vld <= 0;
    end
    else if(in==2)begin
       state <= S3;out <= 0;out_vld <= 0;
    end
    else begin
      state <= state;out <= 0;out_vld <= 0;
    end 
       end
       S2:begin
          if(in==1)begin
       state <= S3;out <= 0;out_vld <= 0;
      end
    else if(in==2)begin
       state <= S0;out <= 0;out_vld <=1;
    end
    else begin
       state <= state;out <= 0;out_vld <= 0;
    end
         end
     S3:begin
        if(in==1)begin
       state <= S0;out <= 0;out_vld <=1;
    end
    else if(in==2)begin
       state <= S0;out <= 1;out_vld <=1;
    end
    else begin
       state <= state;out <= 0;out_vld <= 0;
    end
       end
         default:state <= S0; 
  endcase
 end
end

endmodule

使用VSCode打开:

在这里插入图片描述

点击右上角的编译按钮,等待一会:

点击查看网表:

在这里插入图片描述

就能看到电路综合出来的网表:
在这里插入图片描述

点击旁边的查看状态机就能看到状态机流程图:
在这里插入图片描述

点击module文档说明,就能看到这个项目/文件自动生成的说明文档(极其中意的功能):

在这里插入图片描述

导出来的文档如下:

Entity: fsm_sale

File: fsm_sale.v

Diagram

在这里插入图片描述

Generics

在这里插入图片描述

Ports

在这里插入图片描述

Signals

在这里插入图片描述

Processes

unnamed: ( @(posedge clk or negedge rst_n) )
Type: always

State machines

在这里插入图片描述

总结

作为一个开源的IDE,功能比较完整,其中仿真部分没演示,大家可以自行探索,真的极其适合初学者,安装过程不复杂,都是常规的应用,下面给出来上面需要的安装文件。

https://github.com/suisuisi/teroshdl

其实我最中意的还是文档功能,对于维护HDL真的超级方便。

最后就是TerosHDL使用视频教程:

参考设计:《FPGA/HDL 人员开发利器-TerosHDL(开源 IDE)》

相关文章:

  • 《谁动了我的奶酪》阅读笔记
  • 2023秋招--腾讯天美--游戏客户端--一面面经
  • 跨模态学习能力再升级,EasyNLP电商文图检索效果刷新SOTA
  • JavaScript 中什么时候使用 Map 更合适(二)
  • 【统计学习|书籍阅读】第五章 决策树 p55-p75
  • 【GlobalMapper精品教程】009:DSM过滤植被和房屋并生成等高线案例教程
  • web前端期末大作业:我的家乡广东(html+css布局)div制作
  • 【C进阶】——内存操作函数memcpy、memmove、memcmp、memset详解及其模拟实现
  • 【DNS服务器的配置】实操
  • mysql索引下推与回表
  • 安装Scala
  • [C#小技巧]如何捕捉上升沿和下降沿
  • 一行代码,将2D转3D图表!
  • C++编程 杨辉三角详解
  • JavaScript 中的异步编程(上)
  • 【159天】尚学堂高琪Java300集视频精华笔记(128)
  • Cookie 在前端中的实践
  • HTML-表单
  • interface和setter,getter
  • JavaScript中的对象个人分享
  • js
  • magento2项目上线注意事项
  • Spring Security中异常上抛机制及对于转型处理的一些感悟
  • SQLServer插入数据
  • SQLServer之创建显式事务
  • 第13期 DApp 榜单 :来,吃我这波安利
  • 后端_MYSQL
  • 设计模式 开闭原则
  • 我的zsh配置, 2019最新方案
  • 我这样减少了26.5M Java内存!
  • 原创:新手布局福音!微信小程序使用flex的一些基础样式属性(一)
  • 1.Ext JS 建立web开发工程
  • ​LeetCode解法汇总2670. 找出不同元素数目差数组
  • ​一帧图像的Android之旅 :应用的首个绘制请求
  • #ifdef 的技巧用法
  • #includecmath
  • (1)Map集合 (2)异常机制 (3)File类 (4)I/O流
  • (11)工业界推荐系统-小红书推荐场景及内部实践【粗排三塔模型】
  • (9)目标检测_SSD的原理
  • (ISPRS,2023)深度语义-视觉对齐用于zero-shot遥感图像场景分类
  • (附源码)spring boot公选课在线选课系统 毕业设计 142011
  • (附源码)spring boot校园拼车微信小程序 毕业设计 091617
  • (区间dp) (经典例题) 石子合并
  • (三)c52学习之旅-点亮LED灯
  • (三)Hyperledger Fabric 1.1安装部署-chaincode测试
  • (十三)Flask之特殊装饰器详解
  • (转载)跟我一起学习VIM - The Life Changing Editor
  • * 论文笔记 【Wide Deep Learning for Recommender Systems】
  • **CI中自动类加载的用法总结
  • .NET “底层”异步编程模式——异步编程模型(Asynchronous Programming Model,APM)...
  • .NET Core MongoDB数据仓储和工作单元模式封装
  • .net framework profiles /.net framework 配置
  • .net 使用$.ajax实现从前台调用后台方法(包含静态方法和非静态方法调用)
  • .NetCore部署微服务(二)
  • .Net调用Java编写的WebServices返回值为Null的解决方法(SoapUI工具测试有返回值)