在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 822|回复: 6

[原创] 使用simics运行老工艺的memory compiler

[复制链接]
发表于 2024-7-8 16:54:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 xylimm 于 2024-7-8 18:44 编辑

老工艺的memory compiler很多需要运行在solaris上,除购买sun服务器/工作站之外,还可以使用simics模拟器运行solaris。

以下步骤在centos7.9+simics-3.0.31+sol-8-u7-sparc-v1/v2环境验证通过。

准备工作:

1. 安装simics-3.0.31 linux-64

2. 打开终端窗口,在simics安装目录(默认为/opt/virtutech/simics-3.0.31)运行



  1. patch -p1 < simics-base-3.0.31.patch


复制代码
simics-base-3.0.31.patch.zip (1.07 KB, 下载次数: 11 )

3. 创建workspace,比如在~/simics目录,则运行




  1. /opt/virtutech/simics-3.0.31/bin/workspace-setup ~/simics


复制代码


安装solaris 8:

1. 打开终端窗口,进入刚刚创建的workspace目录

2. 在targets/sunfire/peanut-sol8-cd-install[1-3].simics前面添加




  1. $ip_address = "10.10.0.241"
  2. $host_name  = "mcasrv"
  3. $netmask    = "255.255.255.0"
  4. $user_name  = "eda"
  5. $password   = "xade"


复制代码
这些设置都可以修改,ip_addres格式为10.10.0.x,x范围2~254, netmask不要改

3. 在targets/sunfire/peanut-common.simics前面添加上面的前2行

4. 在peanut-sol8-cd-install1.simics前面添加




  1. $cdrom_path = "/home/user/solaris/sol-8-u7-sparc-v1.iso"


复制代码
注意:/home/user/solaris/sol-8-u7-sparc-v1.iso需要修改为solaris 8安装盘cd1镜像的路径。

5. 在peanut-sol8-cd-install2.simics前面添加





  1. $cdrom_path = "/home/user/solaris/sol-8-u7-sparc-v2.iso"


复制代码
注意:/home/user/solaris/sol-8-u7-sparc-v2.iso需要修改为solaris 8安装盘cd2镜像的路径。

6. 在peanut-common.simics前面添加




  1. $os         = "solaris8"


复制代码
后面添加




  1. connect-real-network $ip_address
  2. run


复制代码


7. 在终端窗口依次运行




  1. ./simics -fast -no-win targets/sunfire/peanut-sol8-cd-install1.simics
  2. ./simics -fast -no-win targets/sunfire/peanut-sol8-cd-install2.simics
  3. ./simics -fast -no-win targets/sunfire/peanut-sol8-cd-install3.simics


复制代码
当simics暂停,显示Now exit Simics后,在simics命令行运行exit退出simics


 楼主| 发表于 2024-7-8 18:06:17 | 显示全部楼层
使用solaris 8:

以下操作需要打开终端窗口在workspace目录运行命令

  • 启动solaris 8




  1. ./simics -fast -no-win targets/sunfire/peanut-common.simics


复制代码


  • 使用ftp和telnet
ftp:




  1. ftp IPADDR 4021


复制代码
telnet:




  1. telnet IPADDR 4023


复制代码
其中IPADDR是运行simics的机器的ip地址
如果连接失败,在simics命令行运行list-port-forwarding-setup查看端口号是否正确。以上端口号是默认值,如果被占用则会自动选择其他空闲的端口。
不能使用root登录。


  • 关闭solaris 8
用telnet登录到solaris 8上,运行




  1. init 0


复制代码
显示Program terminated后,按ctrl+c暂停simics,在simics命令行运行




  1. save-persistent-state peanut-sol8-mc.state


复制代码
保存名为peanut-sol8-mc.state的state,文件名可按需要自行修改
在peanut-common.simics中add-directory "%script%"之前添加




  1. $state      = "peanut-sol8-mc.state"


复制代码
peanut-sol8-mc.state修改为刚刚保存的文件名
这样,下次启动solaris 8就会从这个state启动。

注意:如果不保存state,所有修改都将丢失。


  • 创建快照
创建快照后,可以从这个快照快速恢复solaris 8运行环境,无需关闭solaris 8也无需保存state。按ctrl+c暂停simics后,运行下面命令创建快照:




  1. write-configuration peanut-sol8-rdy.ckpt


复制代码
在终端窗口运行下面命令从快照恢复:




  1. ./simics -fast -no-win -c peanut-sol8-rdy.ckpt -e run


复制代码

使用simicsfs访问主机文件:

在solaris 8中启用simicsfs后,可以读/写运行simics的机器(称为主机)上的文件,速度比使用ftp快。

  • 启用simicsfs
首先用ftp登录到solaris 8上,运行




  1. lcd /opt/virtutech/simics-3.0.31/import/sun4u/
  2. cd ~
  3. put mount_simicsfs mount
  4. put simicsfs-sol8 simicsfs


复制代码
然后用telnet登录到solaris 8上,运行




  1. su -l
  2. mkdir /usr/lib/fs/simicsfs
  3. chown root:sys /usr/lib/fs/simicsfs
  4. mv /export/home/eda/mount /usr/lib/fs/simicsfs/mount
  5. chmod 0555 /usr/lib/fs/simicsfs/mount
  6. chown root:bin /usr/lib/fs/simicsfs/mount
  7. mv /export/home/eda/simicsfs /usr/kernel/fs/sparcv9/simicsfs
  8. chmod 0755 /usr/kernel/fs/sparcv9/simicsfs
  9. chown root:sys /usr/kernel/fs/sparcv9/simicsfs
  10. echo 'simicsfs        -        /host        simicsfs        -        no        -' >> /etc/vfstab
  11. mkdir /host


复制代码
现在可以使用simicsfs了。关闭solaris 8前记得保存state或创建快照。


  • 使用simicsfs

以下命令均为在solari8上以root用户运行。

使用前运行




  1. mount /host


复制代码
使用后运行




  1. umount /host


复制代码

建议只用来读写文件,不要用来执行程序。

建议创建快照前用上面umount 命令卸载simicsfs,否则需要在下次从快照恢复时保证正在使用simicsfs访问的文件未发生变化。

  • 控制simicsfs的访问范围
在peanut-common.simics中run之前添加




  1. simicsfs.root /home/user/simicsfs_root


复制代码
在下次启动solaris 8并重新挂载simicsfs后,simicsfs的根目录为主机的/home/user/simicsfs_root目录,即通过simicsfs只能访问主机上/home/user/simicsfs_root目录中的文件





 楼主| 发表于 2024-7-8 18:38:40 | 显示全部楼层
本帖最后由 xylimm 于 2024-7-8 18:56 编辑

运行memory compiler:

第一步,启动本地X server


  • 如果在windows上,可以使用VcXsrv


1. 用XLaunch创建一个启动文件,设置下面参数值,其他保持默认:

Display number: 0

Additional parameters for VcXsrv: +byteswappedclients    (旧版本不需要设置这个参数)


2. 在X0.hosts中添加一行,内容为运行simics的机器的ip地址或主机名。
如果没有这个文件,运行一次启动文件这个文件就会创建。

3. 双击启动文件运行VcXsrv。如果windows防火墙提示,则选择“允许”。

右键单击启动文件图标,然后单击“Edit”可以修改参数。

  • 如果在linux上,可以使用自带的X server,但需要修改系统设置以允许其他机器连接到本地X server


如果使用的是gdm,即/etc/gdm/custom.conf文件存在,按以下步骤:

1. 在/etc/gdm/custom.conf中[security]后添加一行




  1. DisallowTCP=False


复制代码
2. 在/etc/X0.hosts中添加一行,内容为运行simics的机器的ip地址或主机名。
如果这个文件不存在,则手动创建。


3. 重启gdm。如果是centos 7.9,运行




  1. systemctl restart gdm


复制代码
注意:运行这个命令前保存所有已修改的内容,否则有可能会丢失。

4. 修改系统防火墙设置,允许6000 TCP端口。

第二步,用telnet登录到solaris 8上

第三步,设置DISPLAY环境变量,在telnet运行




  1. setenv DISPLAY XSERVER:0


复制代码
其中XSERVER为运行simics的机器的ip地址或主机名

最后,在telnet运行命令,启动memory compiler


 楼主| 发表于 2024-7-8 19:00:04 | 显示全部楼层
顺便问一句,除了学习用途外,实际有公司用simics运行memory compiler吗?

发表于 2024-7-9 16:39:48 | 显示全部楼层
感谢
发表于 2024-12-5 16:17:37 | 显示全部楼层
感谢分享经验
发表于 2024-12-5 16:58:45 | 显示全部楼层
Thanks for sharing
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-25 15:19 , Processed in 0.024218 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表