基于安卓平台(AidLux)的System Verilog(FPGA)学习(一)
本教程旨在利用安卓设备学习Verilog。现在Verilog的开发主要在linux平台完成,常用的开发平台vivado在window系统上的计算耗时就要高于linux系统,而安卓平台上有着便捷的linux开发环境。熟悉使用linux系统也是学习system verilog中必不可少的一部分。本教程将从简单的操作入手,利用安卓设备的性能,充分发挥安卓平板和安卓手机的生产力作用。
System Verilog是当前IC设计中应用最广泛的语言,是Verilog语言的拓展和延伸。Verilog适合系统级,算法级,寄存器级,逻辑级,门级,电路开关级设计;而System Verilog更适合于可重用的可综合IP和可重用的验证用IP设计,以及特大型基于IP的系统级设计和验证。System Verilog主要定位在芯片的实现和验证流程上。其拥有芯片设计及验证工程师所需的全部结构,它集成了面向对象编程、动态线程和线程间通信等特性,作为一种工业标准语言,SV全面综合了RTL设计、测试平台、断言和覆盖率,为系统级的设计及验证提供强大的支持作用。
Part.1 安卓平台安装linux终端
不同于iOS系统的封闭环境,安卓平台的开放环境为其带来了诸多生产力开发特性。安卓平台通过安装termux应用就可以获取linux平台的诸多开发工具。但是termux很难安装图形界面,并且安装成功的图形界面也较为卡顿,使用体验较差。而国内团队开发的AidLux应用就完美解决了这些问题,画面精美无卡顿。
Part.2 AidLux开启linux原生桌面
linux原生桌面对linux开发更加友好,对linux平台应用的兼容性也会更好。aidlux内部集成了xfce4桌面环境,点击应用图标就能直接通过vnc连接到xfce4桌面。
但是在开启xfce4桌面之前,我们需要先修改xfce4应用的显示分辨率。
`nano /usr/local/bin/vncserver-start`
export USER=root
export HOME=/root
vncserver -geometry 1024x768 -depth 24 -name remote-desktop :1
将1024x768更改为1920x1080,如下所示
第二步:运行xfce4应用。
Part.3 AidLux安装Verilog套件
apt install iverilog gtkwave
Part.4 AidLux安装Vscode
利用浏览器打开vscode官方网站,下载vscode arm64 Debian版本
在终端中输入如下命令:
cd /root/Downloads
dpkg -i code_
(按住Tab键就可以自动补全文件名)
为此必须执行如下命令:
code --no-sandbox --user-data-dir
即可打开vscode:
Part.4 iverilog + gtkwave 测试Verilog程序(纯命令行)
以简单计数器为例
创建源代码文件counter.v
module counter(irst, iclk, ocnt );
input irst, iclk;
output reg [3:0] ocnt;
always @ (posedge iclk)
if(irst)
ocnt <= 4'b0000;
else
ocnt <= ocnt + 1'b1;
endmodule
创建testbench文件:counter_tb.v
module counter_tb;
reg irst = 0;
reg iclk = 0;
wire [3:0] ocnt;
initial begin
irst = 1; #100;
irst = 0; #300;
$stop;
#1000;
$finish;
end
always begin #5 iclk = !iclk; end
counter counter_test(
.irst(irst),
.iclk(iclk),
.ocnt(ocnt)
);
initial
$monitor("At time %t, ocnt = %d", $time, ocnt);
initial
begin
$dumpfile("counter_test.vcd");
$dumpvars(0, counter_test);
end
endmodule
编写自动执行脚本。
创建可执行脚本 zhixing.sh
添加如下内容
iverilog -o counter_test counter_tb.v counter.v
vvp -n counter_test -lxt2
cp counter_test.vcd counter_test.lxt
gtkwave counter_test.lxt
执行脚本zhixing.sh
该脚本会自动调用iverilog和gtkwave
同vivado一样,在左侧添加信号即可查看仿真波形。
大家可以关注笔者的公众号:通信雷达园地 查看具体操作步骤,公众号中的文章写得更加清楚。
链接:https://mp.weixin.qq.com/s?__biz=Mzg3NTgzNTA1MQ==&mid=2247483735&idx=1&sn=9a962fe1ac27fe880055eedeeb2653ad&chksm=cf3a3a93f84db385c4875213b84bfe2bf9b0ee92a653327419f353326bb7d67cf97674d6e372#rd
文章链接
公众号文章截图
: