-
VGA转换HDMI
新的显示器上有的都不带VGA接口了,只有HDMI什么的。而我需要VGA输出到显示器上,所以得买个转换接口。 这回犯了以前实验室里Johannes里犯过的错,买hdmi2dpi的转换插头结果买成了dpi2hdmi的,虽然两头都能连上,但是接头只发热,没图像。 我这回本来要买vga2hdmi,但先买回来个hdmi2vga,也是连上以后没反应。 后来又买了vga2hdmi的,这个还是需要usb供电的。 结果跑原来soc1的程序屏幕怎么都没显示,但fpga开发板直接连上显示器后刷在上面的马里奥能显示出来,所以传接口是没问题的。 放了这么两三年,基本忘干净了,开始以为是makefile里给quartus的板子的设置,pin的位值和电压什么的设置的不全。 感觉也可能是pad clk没搞对。又怀疑是不是我下的quartus版本有问题,因为机器上很多lib不一定符合要求。之前装了quartus13.1,后面又装了13.0sp1和19.1。 也还是没解决问题,又在windows系统上装19.1,生成的sof还是不行。代码里也折腾了很久。 后来网上找到了卖板子的提供的测试程序,自带的VGA.sof可以点亮显示器。重新编译VGA的项目生成的sof也没问题。。。 这时候又重度怀疑是quartus pin planner上的设置有问题,比如VGA项目里的vga输出都是3.3v,而soc1的都是没指定,默认的2.5v。 把配置项都抄过去,也还是不行。所以又在VGA项目的环境下把soc1的代码都搬过去,还是不行。 这时候已经郁闷好几天了,开始脑洞大开了。 是不是VGA信号输出的时序不准,马里奥的是刷在flash里,而每次用quartus programmer刷进去的应该是在sram里,会不会速度稍微快一点。 所以就准备在控制hsync sync的代码里把时间稍微改改,这些代码也是打开以后一点都不认识了,本来就是往上找的代码改的。当时也没写注释,现在看来真是不知道在干啥。 在数像素点的时候发现text模式用的分辨率是640x400,而VGA例子里用的是640x480。突然想到会不会是因为640x400这个分辨率不太常见,这个vga2hdmi转换接口不支持啊。 网上一搜还真有这个问题,因为毕竟做这个vga2hdmi转换接口的芯片也需要一个一个的支持分辨率,而网上有资料的转接口都是写的最低支持分辨率是640x480。 这个可以解释以上所有现象,结果一试还真的是这个原因。 原来soc1里的配置没问题,2.5v也都可以点亮VGA显示器。 把加了更多参数的c4e6e10pins贴在这里。 # need at least one \n at the begining # Yes, it is safe to ignore incomplete I/O assignment warning messages in the Quartus® II software,...
-
加个新的自定义寄存器,其中的一个bit被设置为1后就无法再改回去
目的就是做这么一个bit,相当于一个开关吧。系统reset的时候是0,一但被设置成1,就一直是1了,没法再改回去了。 比如记得smram系统初始化时是可以写的,然后就被写保护了。 用这个bit是不是可以做类似的功能? 代码很简单,新加个csr.bsec寄存器,选个0x100,好记,好像loongarch手册上没用这段,但也没说这部分是不是能自定义。 bit 0叫ef,eeprom flush。表示这个bit设置后,eeprom就不能再刷了。 看了下一般eeprom的接口都是i2c,然后还有一个写保护的pin。 ///// // // All the exceptions are handled at _e stage, including ale, illinstr, badaddr // // For example, illegal instruction exception happens at _d stage. Handle different types of exception // at different stages make things more complicated. Should choose between...
-
装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上记录过。 现在打个字是真懒啊。。。。多一点都不想写。