这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
icore3l_fpga_6 [2020/11/18 18:30] zgf |
icore3l_fpga_6 [2022/03/19 15:26] (当前版本) sean |
||
---|---|---|---|
行 2: | 行 2: | ||
|技术支持电话|**0379-69926675-801**||| | |技术支持电话|**0379-69926675-801**||| | ||
|技术支持邮件|Gingko@vip.163.com||| | |技术支持邮件|Gingko@vip.163.com||| | ||
- | |技术论坛|http://www.eeschool.org||| | ||
^ 版本 ^ 日期 ^ 作者 ^ 修改内容 ^ | ^ 版本 ^ 日期 ^ 作者 ^ 修改内容 ^ | ||
| V1.0 | 2020-11-18 | zgf | 初次建立 | | | V1.0 | 2020-11-18 | zgf | 初次建立 | | ||
行 26: | 行 25: | ||
* 打开HqFpga开发软件,点击左侧栏的“新建工程”按钮,目标器件选择SL2S-25E-8U213C,设计输入类型选择RTL。 | * 打开HqFpga开发软件,点击左侧栏的“新建工程”按钮,目标器件选择SL2S-25E-8U213C,设计输入类型选择RTL。 | ||
- | {{ :icore3l:icore3l_fpga_6_1.png?direct&750 |图 6-1 新建工程}} | + | {{ :icore3l:icore3l_fpga_6_1.png?direct |图 6-1 新建工程}} |
* RTL输入界面点击绿色“+”,将例程下的源文件添加到工程中,或者直接点击“完成”,在“设计管理”界面建立源文件。 | * RTL输入界面点击绿色“+”,将例程下的源文件添加到工程中,或者直接点击“完成”,在“设计管理”界面建立源文件。 | ||
- | {{ :icore3l:icore3l_fpga_6_2.png?direct&750 |图 6-2 添加源文件或者点击完成按钮直接跳过}} | + | {{ :icore3l:icore3l_fpga_6_2.png?direct |图 6-2 添加源文件或者点击完成按钮直接跳过}} |
行 35: | 行 34: | ||
* 1. 点击左侧边栏的“IP管理”按钮,添加IP核。 | * 1. 点击左侧边栏的“IP管理”按钮,添加IP核。 | ||
- | {{ :icore3l:icore3l_fpga_6_3.png?direct&750 |图 6-3 点击IP管理按钮}} | + | {{ :icore3l:icore3l_fpga_6_3.png?direct |图 6-3 点击IP管理按钮}} |
* 2. 弹出IP Creator界面,在基本单元栏,双击选中“DSP模块实现的乘法器”,或者选中“DSP模块实现的乘法器”后点击右上角的“创建”按钮,进入IP核配置界面。 | * 2. 弹出IP Creator界面,在基本单元栏,双击选中“DSP模块实现的乘法器”,或者选中“DSP模块实现的乘法器”后点击右上角的“创建”按钮,进入IP核配置界面。 | ||
- | {{ :icore3l:icore3l_fpga_6_4.png?direct&750 |图 6-4 创建IP核}} | + | {{ :icore3l:icore3l_fpga_6_4.png?direct |图 6-4 创建IP核}} |
* 3. 弹出的乘法器IP核配置界面,左边显示了乘法器IP核的信号端口,右边则可以对乘法器IP核做相关的参数设置。本实验以输入数据AB位宽为8、输出位宽为16为例进行设置。设置好参数之后,点击右下角的“生成IP…”按钮。 | * 3. 弹出的乘法器IP核配置界面,左边显示了乘法器IP核的信号端口,右边则可以对乘法器IP核做相关的参数设置。本实验以输入数据AB位宽为8、输出位宽为16为例进行设置。设置好参数之后,点击右下角的“生成IP…”按钮。 | ||
- | {{ :icore3l:icore3l_fpga_6_5.png?direct&750 |图 6-5 设置参数}} | + | {{ :icore3l:icore3l_fpga_6_5.png?direct |图 6-5 设置参数}} |
* 4. 弹出保存界面,设置好模块名称、文件名称、输出目录等项之后,点击“开始”按钮,生成IP核文件。 | * 4. 弹出保存界面,设置好模块名称、文件名称、输出目录等项之后,点击“开始”按钮,生成IP核文件。 | ||
- | {{ :icore3l:icore3l_fpga_6_6.png?direct&750 |图 6-6 生成IP核文件}} | + | {{ :icore3l:icore3l_fpga_6_6.png?direct |图 6-6 生成IP核文件}} |
* 5. IP核生成之后,在乘法器配置界面下方的信息输出栏,可以看到“完成IP生成”的信息提示,如下图所示: | * 5. IP核生成之后,在乘法器配置界面下方的信息输出栏,可以看到“完成IP生成”的信息提示,如下图所示: | ||
- | {{ :icore3l:icore3l_fpga_6_7.png?direct&750 |图 6-7 IP核创建完成}} | + | {{ :icore3l:icore3l_fpga_6_7.png?direct |图 6-7 IP核创建完成}} |
* 6. 然后点击乘法器配置界面的“退出”按钮,可以看到,IP Creator界面下方的信息输出窗口,已经有了乘法器IP核。通过双击或者单击“修改”按钮,可以对IP核参数进行修改。 | * 6. 然后点击乘法器配置界面的“退出”按钮,可以看到,IP Creator界面下方的信息输出窗口,已经有了乘法器IP核。通过双击或者单击“修改”按钮,可以对IP核参数进行修改。 | ||
- | {{ :icore3l:icore3l_fpga_6_8.png?direct&750 |图 6-8 可双击IP核选项进行参数修改}} | + | {{ :icore3l:icore3l_fpga_6_8.png?direct |图 6-8 可双击IP核选项进行参数修改}} |
=== 3、添加IP核文件 === | === 3、添加IP核文件 === | ||
行 57: | 行 56: | ||
* 点击“语法检查”按钮,查看源代码输入是否有语法错误,如无报错,点击“保存”按钮;弹出窗口中将文件命名为mult.v,完成顶层模块的建立。 | * 点击“语法检查”按钮,查看源代码输入是否有语法错误,如无报错,点击“保存”按钮;弹出窗口中将文件命名为mult.v,完成顶层模块的建立。 | ||
* 点击主界面左侧栏的“工程属性”按钮,弹出“工程属性”界面,在界面下方的“源文件”一栏,点击“+”号,将建立的顶层模块文件(mult.v)及乘法器IP核文件(xsIP_DSP_MULT.v)添加到工程里。 | * 点击主界面左侧栏的“工程属性”按钮,弹出“工程属性”界面,在界面下方的“源文件”一栏,点击“+”号,将建立的顶层模块文件(mult.v)及乘法器IP核文件(xsIP_DSP_MULT.v)添加到工程里。 | ||
- | {{ :icore3l:icore3l_fpga_6_9.png?direct&850 |图 6-9 将IP核文件添加到工程中}} | + | {{ :icore3l:icore3l_fpga_6_9.png?direct |图 6-9 将IP核文件添加到工程中}} |
=== 4、例化乘法器IP核及代码讲解 === | === 4、例化乘法器IP核及代码讲解 === | ||
行 81: | 行 80: | ||
* IP核模块名可以在IP核文件中找到,打开IP核文件,可以看到下图中黄色背景行代码。在关键字module后面的就是IP核的模块名,括号中是IP核模块的信号列表。 | * IP核模块名可以在IP核文件中找到,打开IP核文件,可以看到下图中黄色背景行代码。在关键字module后面的就是IP核的模块名,括号中是IP核模块的信号列表。 | ||
- | {{ :icore3l:icore3l_fpga_6_10.png?direct&550 |图 6-10 IP核信号列表}} | + | {{ :icore3l:icore3l_fpga_6_10.png?direct |图 6-10 IP核信号列表}} |
* 再来看一下变量a、b,作为乘法器的输入变量,a和b的值一直在循环变化。a和b采用累加的方式,每个时钟上升沿触发一次,计满255归零。之后使用assign 语句,将输出变量q的最高位和最低位分别用于控制三色LED的红色和绿色显示。 | * 再来看一下变量a、b,作为乘法器的输入变量,a和b的值一直在循环变化。a和b采用累加的方式,每个时钟上升沿触发一次,计满255归零。之后使用assign 语句,将输出变量q的最高位和最低位分别用于控制三色LED的红色和绿色显示。 | ||
行 109: | 行 108: | ||
* iCore3L双核心板上电后,FPGA_LED显示为绿色,表示此时乘法器还未开始运行。约三秒后三色LED变色,表示有复位操作,乘法器开始运行,乘法器输出变量的最高位和最低位的值开始循环变化。由于变化速度较快,人眼分别不出来其颜色渐变的过程,但是能明显观察到三色LED显示的颜色发生了变化。 | * iCore3L双核心板上电后,FPGA_LED显示为绿色,表示此时乘法器还未开始运行。约三秒后三色LED变色,表示有复位操作,乘法器开始运行,乘法器输出变量的最高位和最低位的值开始循环变化。由于变化速度较快,人眼分别不出来其颜色渐变的过程,但是能明显观察到三色LED显示的颜色发生了变化。 | ||
* 可以通过HqInsight 查看输入变量a和b以及输出变量q的波形变化;对ab及q的值进行分析,可以确认乘法器成功运行,且运行结果正确。控制LED的led[1:0]也根据输出变量Q的最高位和最低位发生变化。 | * 可以通过HqInsight 查看输入变量a和b以及输出变量q的波形变化;对ab及q的值进行分析,可以确认乘法器成功运行,且运行结果正确。控制LED的led[1:0]也根据输出变量Q的最高位和最低位发生变化。 | ||
- | {{ :icore3l:icore3l_fpga_6_11.png?direct&850 |图 6-11 运行结果波形图}} | + | {{ :icore3l:icore3l_fpga_6_11.png?direct |图 6-11 运行结果波形图}} |
- | {{ :icore3l:icore3l_fpga_6_12.png?direct&850 |图 6-12 运行结果波形图}} | + | {{ :icore3l:icore3l_fpga_6_12.png?direct |图 6-12 运行结果波形图}} |