还在采取FPGA开发条件自带的代码编辑器,  还在运用FPGA开发条件自带的代码编辑器

  还在应用FPGA开发环境自带的代码编辑器?还在各个假名敲击冗长重复的代码?明Deyang至简设计法让你赶快提升代码编写功能!利用GVIM这一高速的编辑工具并添加自定义模板,通过简单的本子命令即可自动生成全体常用的逻辑块。

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

  先来说说WIN系统下VIVADO和quartusII绑定GVIM作为默许代码编辑器的情势:

  先来说说WIN系统下VIVADO和quartusII绑定GVIM作为默许代码编辑器的点子:

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

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

图片 1图片 2

图片 3图片 4

图片 5

图片 6

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

2 quartusII:同样接纳菜单栏中Tools
->Options  

图片 7

图片 8

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

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

  在FPGA设计中贰个个犬牙相制的模块均由接口定义、信号定义、时序逻辑和组合了逻辑块等部分构成,由此将代码划分成二种档次的模块,以统一的代码风格通过不难的脚本语言调用可以很大程度升高规划作用,完毕“填空式”设计!以下是本子自动生成代码示例,括号中为基于规定格式的参数输入。

  在FPGA设计中一个个良莠不齐的模块均由接口定义、信号定义、时序逻辑和组成了逻辑块等片段组成,因而将代码划分成几种类型的模块,以联合的代码风格通过不难的脚本语言调用可以很大程度升高规划功用,完结“填空式”设计!以下是本子自动生成代码示例,括号中为基于规定格式的参数输入。

1 计数器

1 计数器

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

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

图片 9

图片 10

   再度输入同样的一声令下,会暴发另1个计数器模块,同时cnt后编号挨个递增,对于急需五个计数器嵌套使用的场子特别实用。

   再一次输入同样的一声令下,会时有暴发另二个计数器模块,同时cnt后编号顺序递增,对于必要三个计数器嵌套使用的场合特别实用。

  但倘诺想自定义定义计数器名称如何做?难道要手动修改么?例如须要对din_vld这一信号举行计数,计十三个一循环往复。命令方式下输入

  但假设想自定义定义计数器名称如何做?难道要手动修改么?例如要求对din_vld这一信号举办计数,计11个一循环往复。命令形式下输入

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

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

图片 11

图片 12

  格式为call
MDYJSQ(“计数器名称”,”加1条件”,计数个数)。该模板加1条件和计数个数是可选参数,但指出输入脚本时抬高,那样有助于在编制代码以前,思考好计数器最着重的多个成分:加1条件和计数个数。

  格式为call
MDYJSQ(“计数器名称”,”加1条件”,计数个数)。该模板加1条件和计数个数是可选参数,但指出输入脚本时添加,那样有助于在编写代码此前,思考好计数器最要害的多个要素:加1条件和计数个数。

2 状态机

2 状态机

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

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

图片 13

图片 14

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

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

图片 15

图片 16

  在转移的框架中充裕状态转移条件和呼应意况输出。命令格式为call
MDYZTJ(状态个数,”状态1名称”,”状态2名称”,…,跳转条件1,跳转条件2,…)

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

3 always逻辑块

3 always逻辑块

  在逻辑设计中,最常用的就是always时序逻辑块,其中间通过多个if
else语句区分不一致的动静。当要发出信号dout逻辑且在三种景况下需求给予不相同的值时,命令方式下输入<:call
MDYSHIXU(“dout”,2)>,按下回车生成如下代码。格式为call
MDYSHIXU(“信号名称”,景况个数)

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

图片 17

图片 18

  当然也必不可少组合逻辑块,可以很便宜地完毕延续立即更新信号数值。插入方式下输入<Zuhe>
按下回车:

  当然也必不可少组合逻辑块,可以很便宜地做到一连马上更新信号数值。插入形式下输入<Zuhe>
按下回车:

图片 19

图片 20

4 接口与信号定义

4 接口与信号定义

  除了主导代码外的信号定义和接口定义同样可以火速变动。如数据包处理模块要输入位宽为8bit的数据包。依据至简设计法命名规范,在指令情势下输入

  除了宗旨代码外的信号定义和接口定义同样可以火速变化。如数据包处理模块要输入位宽为8bit的数据包。根据至简设计法命名规范,在指令形式下输入

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

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

图片 21

图片 22

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

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

   有了上述变化代码的台本命令,对规划人士的帮带不但是喻。接下来通过GVIM工具常用火速键操作示范,进一步体会什么叫功用!

   有了上述变动代码的台本命令,对统筹人士的接济不可是喻。接下来通过GVIM工具常用飞速键操作演示,进一步体会什么叫效能!

1.补全命令

1.补全命令

图片 23

图片 24

  在插入格局,输入din_事后按下<ctrl+p>补全命令,可以便捷根据如今文件中已有记号进行补全。有五个标志匹配时可机关拔取。

  在插入方式,输入din_日后按下<ctrl+p>补全命令,可以很快根据当下文件中已有记号进行补全。有七个标志匹配时可活动采纳。

2.跳转命令

2.跳转命令

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

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

3.找寻命令

3.寻觅命令

  命令形式下,在想要找出一致符号地点的符号上按下*键,全数该符号出现岗位自动高亮。调试起来很有益。

  命令格局下,在想要找出同样符号地方的标记上按下*键,全数该符号现身岗位自动高亮。调试起来很方便。

图片 25

图片 26

  当要摸索一个已闻名称符号时,命令形式下输入</xxx>
直接找到全部xxx符号地点。上述两种检索命令均可采纳<n>跳转到下二个高亮地方,<N>跳转到上一个人置。

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

4.去除复制命令

4.刨除复制命令

  复制N整行:命令情势下,光标在一行头职分输入yy,将光标移到欲粘贴地方上一行任意处,按下p即可在下一行粘贴所复制内容。可在yy前加数字代表要从当前行初阶向下复制行数。

  复制N整行:命令情势下,光标在一行头职位输入yy,将光标移到欲粘贴地点上一行任意处,按下p即可在下一行粘贴所复制内容。可在yy前加数字代表要从此时此刻行初阶向下复制行数。

5.保存退出

5.封存退出

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

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

6.替换命令

6.替换命令

  全文件替换:命令情势下,输入<:%s/xx/yy/gc>
回车把当前文件全体xx可挑选替换到yy,各个按下y确认替换,按下n否定替换。

  全文件替换:命令形式下,输入<:%s/xx/yy/gc>
回车把当下文件全数xx可选拔替换到yy,各种按下y确认替换,按下n否定替换。

  范围替换:命令形式下,输入<:n,ms/xx/yy/gc>回车把n到m行全部xx可挑选替换来yy,以同样方法确认。

  范围替换:命令方式下,输入<:n,ms/xx/yy/gc>回车把n到m行全数xx可挑选替换来yy,以同一方法确认。

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

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

图片 27

图片 28

  天青为当下待替换地点,按下<y>或<n>逐一确认。

  浅米灰为当下待替换地方,按下<y>或<n>逐一确认。

图片 29

图片 30

7.列操作格局

7.列操作形式

  在编排testbench时,要例化待测试模块。那是复制待测试模块中以下一些。

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

图片 31

图片 32

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

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

图片 33图片 34

图片 35图片 36

 

 

 图片 37图片 38图片 39 

 图片 40图片 41图片 42 

  合理规范的代码是安顿性成功非常紧要,通过上述二个个不难便于纪念的脚本命令,可以让规划人士从低级重复性的劳作中脱身出来,将时刻花在“刀刃”上。从代码搬运工变成专注于效率算法的设计师,让解答题改成填空题,从此开端!

  合理规范的代码是陈设性成功非常主要,通过上述3个个简便便于回想的台本命令,可以让规划人员从低级重复性的劳作中脱身出来,将时刻花在“刀刃”上。从代码搬运工变成专注于作用算法的设计师,让解答题改成填空题,从此伊始!

 

 

相关文章