在用户IP中添加自己的功能代码实现PWM功能
Step1在项目的根目录下,寻找用户IP文件夹内的.vhd源文件,如下图5.3.1所示。

图5.3.1 源文件目录
Step2打开相应的.vhd源文件,并编辑修改。本例程做出如下修改:
(1)先打开pwm.vhd文件,搜索-user,找到下图5.3.2所示的--USER ports added here 的插入处。书写pwm_port: out std_logic; 语句如图5.3.2中所示。

图5.3.2 修改pwm.vhd的端口
(2)再次搜索-user,找到下图5.3.3所示的--USER ports mapped here插入处。插入语句pwm_port=>pwm_port, 如下图5.3.3中所示。

图 5.3.3 修改pwm.vhd
(3)保存后关闭此文件,打开user_logic.vhd文件。先按照前述的方法搜索-user,在下图5.3.4所示出插入语句pwm_port : out std_logic; 如图5.3.4中所示。然后搜索slv_reg2,找到下图5.3.5所示的slv_reg2信号赋值处,使用符号--将该语句屏蔽,具体如下图5.3.5所示。

图5.3.4 修改user_logic.vhd

图5.3.5 屏蔽语句
(4)搜索“0010”,找到下图所示的when“0010”=>分支,使用符号--将分支的所有语句全部屏蔽,并添加null; 语句,具体如下图所示。

图5.3.6 屏蔽0010分支,添加null
(5)跳至文件结尾处,先后添加如下图5.3.7和图5.3.8所示的语句内容。

图5.3.7 添加如图的语句内容

图5.3.8 添加如图的语句内容
(6)保存后关闭该文件。
Step3重新加载文件如工程
(1)再次使用Hardware → Create or Import Peripheral, 并单击NEXT,打开如下图5.3.9所示的窗口
选择Import existing peripheral项,单击NEXT

图5.3.9
(2)再次输入名称pwm,并且在版本选择(Major Revision)处设置为1,单击NEXT。此时会跳出下图5.3.10所示对话框,选择YES

图5.3.10

图5.3.11
(3)出现下图5.3.12所示的窗口时,选中第一项HDL source files,单击NEXT

图5.3.12
(4)出现下图5.3.13所示的窗口时,选中第二项Use existing Peripheral Analysis Order files(*pao), Browse到相应的目录下,选中.pao文件,单击打开,然后单击NEXT

图5.3.13
(5)出现下图5.3.14所示的窗口时,单击NEXT

图5.3.14
(6)出现下图5.3.15所示的窗口时,选中左侧第二项PLBV46 Slave(SPLB)选项,然后单击NEXT

图5.3.15
(7)一路单击NEXT,直到出现下图5.3.16所示的窗口时,将已经选择的Select and configure interrupts取消选择,单击NEXT。

图5.3.16
(8) 当看到出现下图5.3.17所示的成功提示窗口时,单击FINISH。

图5.3.17
Step4加载用户IP
(1)如下图5.3.18所示,在IP Catalog 选项中展开Project Local pcores, 双击PWM添加用户IP,然后在右侧的窗口中选择Bus Interfaces选项,展开pwm_0,并将其连接到PLB总线。

图5.3.18
(2)在Ports选项内连接用户IP到外部端口,具体方法详见上一章用户IP使用方法。
(3)在Address选项中单击Generate address选项,产生地址。
5.产生网表和Bit文件
(1)执行Hardware →Generate Netlist产生了电路网表;
(2)执行Hardware → Generate Bitstream生成bit文件。
6.编辑.ucf文件,完成设计管脚分配。
在右侧Project Files的展开项中双击UCF File,可以打开如下图所示的窗口,并编辑管脚位置等信息。

图5.3.19