安路SparkRoad开发板测评(2) 集成开发环境的简单操作
<p> 安路提供的FPGA集成开发环境起了一个大气的名字:唐朝,简称TD. 功能类似于Altera的Quartus II以及Xilinx的ISE.</p><p> TD安装完八百多兆,比我一直用的Qualtus 9.1 web版占用磁盘还要少。启动软件,第一感受就是——界面真简洁,对初学者友好。不过,至少要Windows7才可以运行。</p>
<p> </p>
<p> 来创建一个简单的工程吧。看File菜单栏,没有新建工程的项。哦,直接在Project菜单栏,选择新建工程,出现对话框。</p>
<p> 这一步就是填写名称,选择工程的路径(TD会在路径下面再新建一个工程名的子目录),选择使用的FPGA具体型号。然后确定就可以了,没有多余的步骤。</p>
<p></p>
<p> </p>
<p> 然后来编写一个使用开关和LED的简单逻辑。新建一个 Verilog语言源文件,取名为test.v, 并添加到工程中去。</p>
<p> TD的编辑器有自动提示补全功能,我反而不习惯,也没找到在哪里关掉。好在TD提供了调用外部编辑器的选项。当保存源文件以后,TD会进行语法检查等工作,可以提前发现书写错误,这个功能是实用的(我用的Quartus没有,要在综合阶段才会检查,影响效率)。</p>
<p> TD自动识别了编写的test 模块,并设置为工程的顶层模块,就不用手动去设了。然后,点工具栏上的绿色圆形按钮,开始综合工作。</p>
<p> </p>
<p></p>
<p> 这时候下面的console子窗口会有很多信息输出。如果出错停止,在这里就能看到原因。</p>
<p> 如果一切正常,就能看到TD提示说生成了.bit文件,可以下载到FPGA了。</p>
<p> </p>
<p> 不过到此,还缺少一个工作:给编写的逻辑分配输入输出引脚,要和芯片关联起来才能用。我用了一个时钟输入脚,16个开关输入,和16个LED输出。需要找一下在哪里分配引脚,看看菜单栏,有Tools下的I/O Constraint栏,应该就是了。</p>
<p> 调出对话框,里面下半部分是个表,列出了用到的I/O,因为没有分配,Bank和Location列都是空着的。只需要在Location列每一行填写FPGA管脚名称就可以了,Bank会自动显示。这个步骤要对照SparkRoad板子的电路图进行,如果填错了是达不到想要的效果的。</p>
<p></p>
<p> 填好之后会提示保存成一个后缀 .adc约束文件,可以在工程左边的树状图中看到,并可以打开文件编辑。</p>
<p></p>
<p> 可以看到这个约束文件是文本的,管脚分配一目了然。既然是文本的,在工程之间复用的时候copy编辑一下就可以,不需要再照图录入。</p>
<p> </p>
<p> 可以点左下方的Design Summary看一下报告。RTL summary是逻辑综合结果,总结出用了多少个D触发器、基本逻辑。Gate summary是FPGA中实现这个逻辑占用的资源情况。还有Physical summary包含了每个用到的管脚报告。</p>
<p></p>
<p> </p>
<p></p>
<p> </p>
<p></p>
<p> 因为这个简单的工程没有使用时钟约束,Timing summary等是没有的。</p>
<p> </p>
<p> 最后来把生成的码流下载到FPGA中。连好板子以后,点工具栏最右边下载按钮,出现对话框,先选中生成的.bit文件,再点“Run”开始下载,下面绿色的进度条就开始动了。</p>
<p></p>
<p> 下载完成之后,可以看到板子上的LED开始闪烁起来。</p>
<p><br />
因为这个FPGA是不含flash的,在开发阶段,可以用JTAG将逻辑配置到它里面;但作为产品使用的时候,FPGA要自己从外部flash器件中读取配置。比如,要让上面编写的逻辑固化到板子上,还需要一个烧写flash的操作。可喜的是,TD软件做这一步很简单,只要下载的时候把Mode从默认的“JTAG”改为“PROGRAM FLASH”就可以了。</p>
<p> </p>
<p> 小结:TD软件(唐朝),界面简单,上手容易,对初学者友好。</p>
<p>在下载的时候把Mode从默认的“JTAG”改为“PROGRAM FLASH”,也行,谢谢分享</p>
<p>看你的帖子就一个字,舒服。我比较奇怪的是"唐朝",为什么没有中文支持呢。</p> littleshrimp 发表于 2022-4-13 18:55
看你的帖子就一个字,舒服。我比较奇怪的是"唐朝",为什么没有中文支持呢。
<p>中文支持?我没有试在代码里写中文。你想说的意思是中文界面吧。</p>
<p>我来猜一下,做中文界面是需要软件开发投入的(而且得语文好的人),可能公司觉得没必要,英文界面世界用户通吃。咱们英语教学都普及到小学了,能学FPGA的,英文水平该够用。术语看不懂的问题不怪英文,因为是洋人发明的词,翻译成中文不懂的还是不懂。我不知道有关术语中文用语统一没有,若翻译没有妥当还会费解。</p>
cruelfox 发表于 2022-4-13 20:37
中文支持?我没有试在代码里写中文。你想说的意思是中文界面吧。
我来猜一下,做中文界面是需要软件开 ...
<p>做一个中文页面应该不会这么麻烦吧,软件方面写一个语言包,例如一个xml文件就能解决(除非最初设计时没有考虑多语言问题)。翻译方面我不懂,好像也不至于多难,毕竟是国内的高科技公司英文界面都能写了。</p> littleshrimp 发表于 2022-4-13 21:16
做一个中文页面应该不会这么麻烦吧,软件方面写一个语言包,例如一个xml文件就能解决(除非最初设计时没 ...
<p>语言包,你这是做网页的思路啊<img height="52" src="https://bbs.eeworld.com.cn/static/editor/plugins/hkemoji/sticker/facebook/pleased.gif" width="48" /></p>
<p>编软件,几乎都是英文界面好做呀。不同语言,一个意思不一定有正好相同的词汇对应,此外字符串显示的长度不一样,这些细节都需要花很多工夫的。我觉得现在windows的中文版某些地方语言太别扭了。</p>
<p>FPGA软件原本就是别人家已经有了,学来的。用语都是人家先有了,并不是写英文界面困难。</p>
cruelfox 发表于 2022-4-14 11:58
语言包,你这是做网页的思路啊
编软件,几乎都是英文界面好做呀。不同语言,一个意思不一定有正好相同 ...
<p>语言包这点你不用怀疑,我熟悉的不管是android还是csharp都支持这种方式,界面开发发展到今天这已经是一个很普遍的技术了。比如一个“提交”按钮你可以把“提交”字串写到控件里,也可以是有关联到资源文件的某个ID,索引对应的字串。这样不管是多语言还是后期修改都比较方便。</p>
<p>倒是你说的排版这种问题确实存在,不过好像也算不是什么解决不了的技术问题。只能说FPGA在很多人看来是一个门槛比较高的东西,厂商假设学FPGA的人都应该有很好的英语基础吧。</p>
页:
[1]