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](https://img-blog.csdnimg.cn/img_convert/31be11b7f1f1e0487cbebb3d78afb5ae.png)
安装其他:
python
安装过程略。
![2de0628e08efd3082082ba948fffc49d.png](https://img-blog.csdnimg.cn/img_convert/2de0628e08efd3082082ba948fffc49d.png)
make
正常安装,不用修改,安装完毕后将下面路径(make的安装路径)加入到系统环境中。
C:\Program Files (x86)\GnuWin32\bin
安装系统下TerosHDL
在vscode中点击左侧TerosHDL,在终端输入:
pip install teroshdl
![69a10e23af1de9caeb574ec7a76075e2.png](https://img-blog.csdnimg.cn/img_convert/69a10e23af1de9caeb574ec7a76075e2.png)
完成后如下:
![80fa4d29c717f497aad0442ae7a6f98b.png](https://img-blog.csdnimg.cn/img_convert/80fa4d29c717f497aad0442ae7a6f98b.png)
检查缺少的环境
按照下图检查一下TerosHDL还缺少什么环境,自己按照需求按照即可。
![ae4e6c9cf31ffc001042468546146af4.png](https://img-blog.csdnimg.cn/img_convert/ae4e6c9cf31ffc001042468546146af4.png)
完成后如下:
![0dec0cacb051794d88205a11af1c9c65.png](https://img-blog.csdnimg.cn/img_convert/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](https://img-blog.csdnimg.cn/img_convert/2b78296ac60a928f347d62c3e9aeb574.png)
点击右上角的编译按钮,等待一会:
点击查看网表:
![fb6f3ea6945cd4a0aa94ccde92a86f30.png](https://img-blog.csdnimg.cn/img_convert/fb6f3ea6945cd4a0aa94ccde92a86f30.png)
就能看到电路综合出来的网表:
![2ab375c27c10e509d0d084f1927456b9.png](https://img-blog.csdnimg.cn/img_convert/2ab375c27c10e509d0d084f1927456b9.png)
点击旁边的查看状态机就能看到状态机流程图:
![4794bafa60755c3a8bb0512230b913c0.png](https://img-blog.csdnimg.cn/img_convert/4794bafa60755c3a8bb0512230b913c0.png)
点击module文档说明,就能看到这个项目/文件自动生成的说明文档(极其中意的功能):
![d7a513bb27e479d6a2ebc970703b9d90.png](https://img-blog.csdnimg.cn/img_convert/d7a513bb27e479d6a2ebc970703b9d90.png)
导出来的文档如下:
Entity: fsm_sale
File: fsm_sale.v
Diagram
![outside_default.png](https://csdnimg.cn/release/phoenix/outside_default.png)
Generics
Generic name | Type | Value | Description |
---|---|---|---|
S0 | 4'b0001 | ||
S1 | 4'b0010 | ||
S2 | 4'b0100 | ||
S3 | 4'b1000 |
Ports
Port name | Direction | Type | Description |
---|---|---|---|
clk | input | ||
rst_n | input | ||
in | input | [1:0] | |
out | output | [1:0] | |
out_vld | output |
Signals
Name | Type | Description |
---|---|---|
state | reg [3:0] |
Processes
unnamed: ( @(posedge clk or negedge rst_n) )
Type: always
State machines
![outside_default.png](https://csdnimg.cn/release/phoenix/outside_default.png)
总结
作为一个开源的IDE,功能比较完整,其中仿真部分没演示,大家可以自行探索,真的极其适合初学者,安装过程不复杂,都是常规的应用,下面给出来上面需要的安装文件。
https://github.com/suisuisi/teroshdl
其实我最中意的还是文档功能,对于维护HDL真的超级方便。
最后就是TerosHDL使用视频教程:
点下【在看】给小编加鸡腿