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 并单击安装按钮:

31be11b7f1f1e0487cbebb3d78afb5ae.png

安装其他:

python

安装过程略。

2de0628e08efd3082082ba948fffc49d.png

make

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

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

安装系统下TerosHDL

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

pip install teroshdl
69a10e23af1de9caeb574ec7a76075e2.png

完成后如下:

80fa4d29c717f497aad0442ae7a6f98b.png

检查缺少的环境

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

ae4e6c9cf31ffc001042468546146af4.png

完成后如下:

0dec0cacb051794d88205a11af1c9c65.png

实例演示

我们新建一个状态机的.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打开:

2b78296ac60a928f347d62c3e9aeb574.png

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

点击查看网表:

fb6f3ea6945cd4a0aa94ccde92a86f30.png

就能看到电路综合出来的网表:

2ab375c27c10e509d0d084f1927456b9.png

点击旁边的查看状态机就能看到状态机流程图:

4794bafa60755c3a8bb0512230b913c0.png

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

d7a513bb27e479d6a2ebc970703b9d90.png

导出来的文档如下:

Entity: fsm_sale

  • File: fsm_sale.v

Diagram

outside_default.png

Generics

Generic nameTypeValueDescription
S0
4'b0001
S1
4'b0010
S2
4'b0100
S3
4'b1000

Ports

Port nameDirectionTypeDescription
clkinput

rst_ninput

ininput[1:0]
outoutput[1:0]
out_vldoutput

Signals

NameTypeDescription
statereg  [3:0]

Processes

  • unnamed: ( @(posedge clk or negedge rst_n) )

    • Type: always

State machines

outside_default.png

总结

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

https://github.com/suisuisi/teroshdl

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

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

点下【在看】给小编加鸡腿

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值