让FPGA开发变得更简单

  还在运用FPGA开发环境自带的代码编辑器?还在逐个假名敲击冗长重复的代码?明德扬至简设计法让你急速增加代码编写功用!利用GVIM这一很快的编撰工具并添加自定义模板,通过简单的台本命令即可自动生成所有常用的逻辑块。

  先来说说WIN系统下VIVADO和quartusII绑定GVIM作为默认代码编辑器的主意:

1 VIVADO:IDE上方主菜单栏Tools
->Options ,接纳General项,点击Text
Editor右边“…”按钮。在弹出的Custom Editor Definition
下方的Editor空白内填写xxx /gvim.exe [file name] :[line number]
按下OK退出即可。其中xxx为GVIM软件安装路径。

新能源车 1新能源车 2

新能源车 3

2 quartusII:同样选拔菜单栏中Tools
->Options  

新能源车 4

   选拔左边的Preferred Text
Editor,1处选中下拉菜单中Vim,并点击2处右边“…”按钮找到GVIM的装置目录。最后点击OK退回。

  在FPGA设计中一个个复杂的模块均由接口定义、信号定义、时序逻辑和重组了逻辑块等部分构成,因而将代码划分成二种档次的模块,以联合的代码风格通过简单的脚本语言调用可以很大程度提升设计效用,完结“填空式”设计!以下是本子自动生成代码示例,括号中为根据规定格式的参数输入。

1 计数器

  计数器是FPGA完毕时序的主导单元,比如数据帧处理,串并转移等均要用到。命令情势下输入<:Mdyjsq >
(注意<>不用输入,加尖括号只是为了与文字区分开) 按下回车自动生成如下计数器模块,连相关的信号定义也可自动生成。

新能源车 5

   再一次输入同样的授命,会发生另一个计数器模块,同时cnt后编号顺序递增,对于急需八个计数器嵌套使用的场合越发实用。

  但万一想自定义定义计数器名称怎么办?难道要手动修改么?例如须求对din_vld这一信号举行计数,计10个一循环往复。命令情势下输入

<:call
MDYJSQ(“cnt_din”,”din_vld”,10)>,按下回车生成如下代码。

新能源车 6

  格式为call
MDYJSQ(“计数器名称”,”加1条件”,计数个数)。该模板加1条件和计数个数是可选参数,但提出输入脚本时增加,那样有助于在编制代码往日,思考好计数器最重大的多个因素:加1条件和计数个数。

2 状态机

  较为复杂的时序逻辑中,平日索要状态机与计数器协作使用。如有如下状态转移图:

新能源车 7

在指令形式下输入<:call
MDYZTJ(3,”IDLE”,”S1″,”S2″,12,23,31)>,按下回车生成明德扬四段式状态机。

新能源车 8

  在变化的框架中添加状态转移条件和相应情状输出。命令格式为call
MDYZTJ(状态个数,”状态1称谓”,”状态2名称”,…,跳转条件1,跳转条件2,…)

3 always逻辑块

  在逻辑设计中,最常用的就是always时序逻辑块,其内部通过多少个if
else语句区分差别的意况。当要暴发信号dout逻辑且在三种情景下须求予以分裂的值时,命令方式下输入<:call
MDYSHIXU(“dout”,2)>,按下回车生成如下代码。格式为call
MDYSHIXU(“信号名称”,景况个数)

新能源车 9

  当然也不可或缺组合逻辑块,可以很方便地做到再而三立即更新信号数值。插入方式下输入<Zuhe>
按下回车:

新能源车 10

4 接口与信号定义

  除了主导代码外的信号定义和接口定义同样可以很快生成。如数据包处理模块要输入位宽为8bit的数据包。按照至简设计法命名规范,在指令格局下输入

<:call MDYINPUT(“din_sop”,1,
“din_eop”,1, “din”,8, “din_vld”,1) > 回车

新能源车 11

  格式为call
MDYINPUT(“输入接口信号1名号”,信号1位宽,”输入接口信号2名称”,信号2位宽) 同理,output,reg类型信号,wire类型信号生成形式和格式与input一致。

   有了上述变化代码的脚本命令,对统筹人员的佑助不但是喻。接下来通过GVIM工具常用疾速键操作演示,进一步体会什么叫成效!

1.补全命令

新能源车 12

  在插入方式,输入din_然后按下<ctrl+p>补全命令,可以火速按照当前文件中已有标志举行补全。有七个标志匹配时可自动选取。

新能源车,2.跳转命令

  命令方式下,按下<gg>会跳转到当前文件头,按下<G>跳转到文件尾(再也不用不停地滚动鼠标滚轮了)。

3.招来命令

  命令方式下,在想要找出同样符号地点的号子上按下*键,所有该符号出现岗位自动高亮。调试起来很方便。

新能源车 13

  当要摸索一个已盛名称符号时,命令情势下输入</xxx>
直接找到所有xxx符号地方。上述三种检索命令均可应用<n>跳转到下一个高亮地方,<N>跳转到上一岗位。

4.去除复制命令

  复制N整行:命令格局下,光标在一行头地点输入yy,将光标移到欲粘贴地点上一行任意处,按下p即可在下一行粘贴所复制内容。可在yy前加数字代表要从当前行起始向下复制行数。

5.保留退出

  命令格局下,输入<:w xxx.y>
回车为以一定文件名和文件格式保存文件。输入<:wq>
回车保存当前文件退出。

6.替换命令

  全文件替换:命令格局下,输入<:%s/xx/yy/gc>
回车把当前文件所有xx可拔取替换成yy,逐个按下y确认替换,按下n否定替换。

  范围替换:命令格局下,输入<:n,ms/xx/yy/gc>回车把n到m行所有xx可挑选替换成yy,以同等格局确认。

  如将5到22行clk替换成clk_tx:命令情势下,输入<:5,22s/clk/clk_tx/gc>
回车

新能源车 14

  粉红色为当前待替换地方,按下<y>或<n>逐一确认。

新能源车 15

7.列操作形式

  在编辑testbench时,要例化待测试模块。那是复制待测试模块中以下部分。

新能源车 16

   a.鼠标选中待删除区域,按下<ctrl+q>进入列选情势。b.按下delete直接删除,之后用tab键在每行前流出空白。c.命令情势下,输入<ctrl+q>进入列操作情势,通过<j><k><h><l>(下
上 左
右)键选择欲编辑区域。d.输入大写字母“I”,再输入想要列插入符号“.”,最后按下Esc键退出落成列插入。以相同方法插入每行后()

新能源车 17新能源车 18

 

 新能源车 19新能源车 20新能源车 21 

  合理规范的代码是统筹成功至关紧要,通过上述一个个大致便于回忆的剧本命令,可以让规划人员从低级重复性的干活中脱身出来,将时间花在“刀刃”上。从代码搬运工变成专注于效用算法的设计师,让解答题改成填空题,从此先导!

 

网站地图xml地图