https://terostechnology.github.io/terosHDLdoc/about/about.html
TerosHDL 的目标是为 HDL 开发人员提供一个开源 IDE,该 IDE 具有软件开发人员常用的功能。IDE 包含一堆工具,其中最重要的是VSCode 插件。一些工具是由Teros Technology组织开发的,而另一些则来自开源项目。所有工具都组织在不同的后端,并通过插件暴露给 GUI。
https ://code.visualstudio.com/
在扩展中搜索TerosHDLinside VSCode 并单击安装按钮:
安装其他:
安装过程略。
正常安装,不用修改,安装完毕后将下面路径(make的安装路径)加入到系统环境中。
C:\Program Files (x86)\GnuWin32\bin
在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文档说明,就能看到这个项目/文件自动生成的说明文档(极其中意的功能):
Generic name | Type | Value | Description |
---|---|---|---|
S0 | 4'b0001 | ||
S1 | 4'b0010 | ||
S2 | 4'b0100 | ||
S3 | 4'b1000 |
Port name | Direction | Type | Description |
---|---|---|---|
clk | input | ||
rst_n | input | ||
in | input | [1:0] | |
out | output | [1:0] | |
out_vld | output |
Name | Type | Description |
---|---|---|
state | reg [3:0] |
作为一个开源的IDE,功能比较完整,其中仿真部分没演示,大家可以自行探索,真的极其适合初学者,安装过程不复杂,都是常规的应用,下面给出来上面需要的安装文件。
https://github.com/suisuisi/teroshdl
其实我最中意的还是文档功能,对于维护HDL真的超级方便。
最后就是TerosHDL使用视频教程:
END
往期精选
FPGA技术江湖广发江湖帖
无广告纯净模式,给技术交流一片净土,从初学小白到行业精英业界大佬等,从军工领域到民用企业等,从通信、图像处理到人工智能等各个方向应有尽有,QQ微信双选,FPGA技术江湖打造最纯净最专业的技术交流学习平台。
FPGA技术江湖微信交流群
加群主微信,备注姓名+公司/学校+岗位/专业进群
FPGA技术江湖QQ交流群
备注姓名+公司/学校+岗位/专业进群