前言
本教程通過 win10 下的 docker 實現,過程簡單,不需要自己進行破解,同時是通過 wsl 方式實現,比虛擬機效率會更加高一些。
鏡像是由網友制作的,eetop 鏈接為:http://bbs.eetop.cn/thread-883833-1-1.html
僅供個人學習使用
win10 下安裝 docker
在官網找到 win10 的 docker 安裝包,進行安裝
https://docs.docker.com/docker-for-windows/install/
下載穩(wěn)定版即可
使用前要安裝 wsl2,作為 docker 在 win10 下的后端支持
https://docs.microsoft.com/en-us/windows/wsl/install-win10
下載好以后直接雙擊安裝即可
?
docker 配置
在拉取鏡像之前,先為 docker 設置鏡像加速器,推薦阿里云的 docker 鏡像加速服務
https://cn.aliyun.com/
注冊以后,進入控制臺,容器鏡像服務 ->鏡像加速器
然后打開 docker 的設置界面,Docker Engine,將剛剛的鏈接復制到下面
應用并重啟即可。
默認的 docker 的目錄是在 c 盤下的,鏡像將來會占用 c 盤空間,接下來移動 docker 的目錄
首先關閉 docker,然后創(chuàng)建一個目錄D:SoftwareDatawsldocker-desktop-data
打開 cmd,wsl -l -v
可以看到由有兩個 docker,我們只需要移動第二個就可以了
依次執(zhí)行,
wsl --shutdown
wsl --export docker-desktop-data D:SoftwareDatawsldocker-desktop-datadocker-desktop-data.tar
檢查以下目標目錄有沒有生成對應的文件docker-desktop-data.tar
wsl --unregister docker-desktop-data
wsl --import docker-desktop-data D:SoftwareDatawsldocker-desktop-data D:SoftwareDatawsldocker-desktop-datadocker-desktop-data.tar --version 2
移動完成
?
啟動 docker 容器
通過開始菜單啟動 docker 以后,打開 cmd,拉取鏡像docker pull phyzli/ubuntu18.04_xfce4_vnc4server_synopsys2016
大概有十幾 G,耐心等待。
鏡像拉取完畢以后,啟動鏡像docker run -it -p 5902:5902 --hostname lizhen --mac-address 02:42:ac:11:00:02 -v //d/mydata:/mnt/mydata phyzli/ubuntu18.04_xfce4_vnc4server_synopsys2016
-p 5902:5902
是進行端口映射,--hostname lizhen --mac-address 02:42:ac:11:00:02
是在配置主機名和 mac 地址,和 license 綁定的,不能修改。-v //d/mydata:/mnt/mydata
是將 win10 下的目錄//d/mydata
掛載到容器的/mnt/mydata
上,便于數據交換。
進入到容器內部以后就可以使用了,每次進入都需要使用命令lmgrd
激活 license
測試一下 vcs 是否正常,進入到我們掛載的目錄mnt/mydata
,下面是tb.sv
的內容
module tb ();
initial begin
$display("hello vcs");
end
endmodule
vcs tb.sv
進行編譯,然后./simv
進行仿真
接下來試一下 vnc 遠程桌面,通過命令vncserver -geometry 1920x1080 :2
在容器內啟動 vnc
然后回到 cmd,ipconfig
查看虛擬機的 ip
win10 中打開 vncviewer,配置連接,填入剛剛的 ipv4 地址,端口是 5902
進行連接,連接密碼為zhenchen
進入圖形化界面
下面試一下 vcs 和 verdi 的聯合仿真,同樣還是前面的tb.sv
vcs tb.sv -debug_all -lca -kdb
./simv -gui=verdi
?
其他
在進入容器后,直接exit
會退出容器,如果在啟動容器時加上-d
,容器會在后臺繼續(xù)運行
通過docker ps -a
可以查看容器的狀態(tài)
如果想要再啟動容器,可以通過docker start ee
啟動容器,ee
是容器 ID 的前兩位,不用全部打完也可以
啟動容器后如果要進入容器,通過指令docker exec -it ee bash
就能進入了
刪除容器可以通過指令docker rm -f ee
,刪除容器不會把前面掛載的文件夾刪除,不用擔心