UE403-A0930
发布时间:2019-03-05 09:44:49点击率:
在这个例子中,我将介绍使用 个寄存器作为控制寄存器。这个寄存器当中的特定位定义是否将寄存器2和3的目录进行相加、相减或相乘运算。运算结果将存储在第四个寄存器中。我们将设置与微处理器相关的第四个寄存器为只读状态,以确保微处理器不会影响运算结果。此外,如果激活控制寄存器,外围将生成一个中断。
定义中的 步是声明四个寄存器,第3个寄存器为输出寄存器, 1个寄存器为输入寄存器。(在这个步骤时我们可实现这一功能,但目前我正在顶层操作演示实现更复杂功能所需要的步骤) 。
同时,我也编辑这个文件为只读文件,以防止处理器写入第四个寄存器。
在顶层文件我在该架构创建一个中断输出并添加简单功能代码以执行我们所要的操作。
在所有必要的用户VHDL语言完成添加后,我处理该项目以确保在Vivado内打包IP并返回至项目前不会出现错误。但在打包器打包IP前,我增加IP版本号以表示代码变更。点击“re-package”将运行打包器,并关闭项目,返回至初始Vivado项目。
返回使用该外设的项目中,可以运行IP状态报告(Tools - >Reports - >Report IP sta),显示在设计中所使用的更新版本。
UE403-A0930
在将项目导出至SDK前,需要重新构建项目。在SDK内,可使用之前使用的同一功能对这个外设进行写入和读取。但测试过程中 一个寄存器不能写入时,自检程序将失败。
个测试是使用寄存器0中的命令1相加寄存器2和3内的目录:
在第二次测试中,我们使用寄存器0中的命令2将寄存器2和3内的目录相乘:
在 的测试中,我们使用寄存器0中的命令3将寄存器2内的目录减去寄存器3的目录:
所有这些测试都使用轮询的方法。由于这些运算属于简单的加、减、乘函数,可在一个时钟周期内完成。但更复杂的多周期函数运算需要使用中断,我们将在另外的文章中说明。
UE403-A0930
· 成就客户—我们致力于每位客户的满意和成功。· 创业创新—我们追求对客户和公司都至关重要的创新,同时快速而高效地推动其实现。
· 诚信正直—我们秉持信任、诚实和富有责任感,无论是对内部还是外部。
· 多元共赢—我们倡导互相理解,珍视多元性,以全球视野看待我们的文化。
--------------------
联系人:欧工
手机:18030229050
电话:0592-5709821
QQ 3151326358
邮箱 3151326358@qq



