u@home:~$

  • 装Quartus II 13.1 Web Edition

    发现自己前段时间就装了个13.1,现在才想起来之前是用modelsim去跑opensparc里的一个模块。 现在quartus_sh跑不起来,缺so文件。也早忘了以前在我那个dell笔记本上怎么搞的了。 其实也没多麻烦,so文件基本都在quartus/linux64目录下,只是LD_LIBRARY_PATH没有设置,找不到so。 还有就是so的版本号不对,要老的版本,随便复制下改个名就能凑合着用。 在~/.bashrc里加这个就行。 export LD_LIBRARY_PATH=/home/u/altera/13.1/quartus/linux64 要想在ubuntu的launcher里加个快捷方式,在/home/u/.local/share/applications目录下创建quartus.desktop [Desktop Entry] Type=Application Version=0.9.4 Name=Quartus II 13.1 (64-bit) Web Edition Comment=Quartus II 13.1 (64-bit) Icon=/home/u/altera/13.1/quartus/adm/quartusii.png Exec=/home/u/altera/13.1/quartus/bin/quartus --64bit Terminal=false Path=/home/u/altera/13.1 明天还得看看usb blaster能把不能认出来,这个我在blogspot上记录过。 现在打个字是真懒啊。。。。多一点都不想写。

  • Sample Page

    模块有valid,表示启用。 模块输出的信号要 & valid,表示确实是这个模块有意发出的。 模块输出信号带目的模块缩写,比如lsu_ecl_,这样的信号一定都有valid。

  • Address misalign exception

    想开始加exception了,之前cpu6 soc1里面只做过illegal instruction的,这次准备先搞address misalign的。 lsu里没处理这个,比如store,不管地址是不是misalign,都直接发出去给cache,发出data_req,只是要写的数据没有写进去。 st.h存两个字节,地址是0xc0000019,是不对其的。data_addr_ok是给回来了,后面data_data_ok是咋回事,这是个st指令。。 先记下,回头再调。 看了下龙芯手册,不是用的中断向量表,除了TLB,所有的exception和interrupt都是走CSR.EENTRY的入口。 然后通过CSR.ESTA里的信息由软件来判断是什么情况。 单这个EENTRY地址怎么定的,手册里没有。reset后的地址是1c000000是手册给出来的,这个EENTRY没给。 看了下chiplab,chiplab里没有exception这部分功能,之前也没注意。 查了下龙芯手册,结果发现LoongArch32和LoongArch64还不一样。 或者说LoongArch32是CSR.ECFG.VS为0时候的特殊情况。LoongArch64里可以用中断向量表的,为什么要这么设计,还不懂。 调的过程中遇到个问题。 lsu里给出的lsu_rdata_valid_m,这个名字我起的不好,应该叫lsu_finish_m。表示load或store操作结束,但并不能保证store是否成功,load是否成功读到数据。 问题是,如果lsu_rdata_valid_m不给出,lsu就一直stall ifu。 assign lsu_rdata_valid_m = data_data_ok; 1015 // 1016 // lsu_dispatch_d is the staring signal 1017 // lsu_ecl_rdata_valid_m ends it 1018 // 1019 assign lsu_stall_req_next = (lsu_dispatch_d) | (lsu_stall_req & ~lsu_ecl_rdata_valid_m); 1020 1021 dffr_s #(1)...