用个人的信息备案网站二级网站怎么做
- 作者: 五速梦信息网
- 时间: 2026年04月20日 06:57
当前位置: 首页 > news >正文
用个人的信息备案网站,二级网站怎么做,咸阳网站建设推广,磁力天堂硬件平台#xff1a;征战Pro开发板 软件平台#xff1a;Vivado2018.3 仿真软件#xff1a;Modelsim10.6d 文本编译器#xff1a;Notepad
征战Pro开发板资料 链接:https://pan.baidu.com/s/1AIcnaGBpNLgFT8GG1yC-cA?pwdx3u8 提取码:x3u8
1 知识背景
LED#xff0c;又名…硬件平台征战Pro开发板 软件平台Vivado2018.3 仿真软件Modelsim10.6d 文本编译器Notepad
征战Pro开发板资料 链接:https://pan.baidu.com/s/1AIcnaGBpNLgFT8GG1yC-cA?pwdx3u8 提取码:x3u8
1 知识背景
LED又名发光二极管。 LED 灯工作电流很小有的仅零点几毫安即可发光抗冲击和抗震性能好可靠性高寿命长。由于这些优点 LED 灯被广泛用在仪器仪表中作指示灯、 液晶屏背光源等诸多领域。 不同材料的发光二极管可以发出红、 橙、 黄、 绿、 青、蓝、 紫、白这八种颜色的光。 图 6-1-1 左边是可以发出黄、红、蓝三种颜色的直插型二极管实物图这种二极管长的一端是阳极短的一端是阴极。 图 6-1-1 右边是开发板上用的贴片二极管实物图。 贴片二极管的正面一般都有颜色标记有标记的那端就是阴极。 图6-1- 1发光二极管实物图 发光二极管与普通二极管一样具有单向导电性。给它加上阳极正向电压后通过 5mA 左右的电流就可以使二极管发光。通过二极管的电流越大发出的光亮度越强。不过我们一般将电流限定在 3~20mA 之间否则电流过大就会烧坏二极管。
2 实验任务
本节实验任务是征战 Pro 开发版上的 LED3以固定的频率闪烁。
3 硬件设计
扩展知识点 位号就是元器件的“身份证”我们可以通过 PCB 板上的丝印找到对应的器件。 网络名是一种连线相同的网络名就表示连接在一起。当原理图比较简单的时候我们可以通过画线将管脚与管脚连接起来那如果我们的原理图非常复杂时用画线这种方式就不现实了满屏的连线根本无法保证设计的准确性所以用网络名来表示就非常方便了这个知识大家在学习原理图和 PCB 设计时会涉及到此处我们一笔带过。
3.1 原理图分析
板载了 8 个用户 LED 灯LED 灯的正极接的 FPGA 管脚负极接地。当 FPGA 管脚输出高电平时发光二极管的正负极有电压差便会产生电流流过发光二极管从而点亮 LED 灯当 FPGA 管脚输出低电平时发光二极管正负极没有电压差也不会产生电流LED 灯熄灭。我们选用位号为 LED3 的 LED 来做为本实验的外设 LED 灯。通过图 6-1-2图 6-1-3 我们可以看到灯 LED3 的管脚与 FPGA 的管脚 M22 连接在一起。 复位按键我们用开发板上的 SW1通过图 6-1-4 可知当按键按下时 SW1 的管脚 1 和管脚 2 导通信号KEY0就为低电平当松开按键时KEY0 被上拉到 VCCIO VCCIO 默认等于3.3V即为高电平。至于 KEY0 与 FPGA 哪个管脚连接在一起读者可以尝试自已在原理图上去找会看原理图是 FPGA 工程师最基本的技能噢 图6-1- 2 LED灯原理图 图6-1- 3 FPGA管脚图 图6-1- 4 按键原理图
3.2 管脚映射表
本实验中系统时钟、按键复位以及 LED 端口的管脚分配如下表所示 表6-1- 1管脚映射表
同学们可能会好奇为什么原理图中的网络名不和程序中的信号名一致呢这是因为一般有两个原因 1. 在公司里面设计硬件的工程师和设计软件的工程师并不是同一个人每个人的命名习惯不同所以就会命名不一样的情况 2. 硬件上的器件功能和软件上的功能并不一样。比如我们的按键 SW1在硬件上它就是一个按键但是在软件设计中我们可以认为它是复位管脚也可以认为它是控制管脚所以原理图中的网络名和程序中的信号名没办法统一。 这种情况是很常见的只要同学们掌握了原理这个命名随便怎么变我们都知道如何去约束 FPGA 管脚。
3.3 编写XDC 约束文件 下面我们以 clk 时钟引脚为例 简要介绍 xdc 文件的语法。第一行以“#”号开头表示这是一条注释语句。第二行是有效的约束命令。每一个约束命令单独占用一行命令的结尾没有如 verilog 中的分号“;”一样的语句结束符号。每一条注释也单独占用一行。命令的第一个关键字代表该命令的名称其后的所有字段都是该命令的参数列表。例如在第二行的时钟周期约束命令中“create_clock”是该命令的名称它会创建一个时钟其后的“-name clk”、“ -period 20”、“[get_ports clk ]”都是该命令的各个参数分别表示所创见的时钟的的名称是“clk”、时钟周期是 20ns、时钟源是 clk 引脚。 第 4 行至第 6 行是对 IO 管脚的引脚位置约束和电平标准约束。例如在第 4 行中“set_property”是命令的名称“PACKAGE_PIN Y18”是引脚位置参数代表引脚位置是 Y18 “IOSTANDARD LVCMOS33”代表该引脚所使用的电平标准是LVCMOS33。 其他 IO 引脚的约束命令的语法与 clk 引脚是相同的这里就不再重复了。但是要注意 create_clock 约束命令只能在 clk 时钟引脚上使用其他普通 IO 上不能使用 create_clock 约束命令。 在 Notpepad 中编辑好之后一定要记得保存
扩展知识点 时序约束Timing Constraints 用来描述设计人员对时序的要求比如时钟频率输入输出的延时等以满足设计的时序要求。那么为什么工程中需要添加时序约束呢 对于这个原因首先给大家说明下如果有些设计工程不加时序约束可能会出现功能错误这个地方加了“可能” 两个字也就是说不一定会出错有可能某一次编译功能没有问题下一次编译就出现功能问题。 对时钟的约束最简单的理解就是设计者需要告诉 EDA 工具设计中所使用的时钟的频率是多少然后工具才能按照所要求的时钟频率去优化布局布线使设计能够在要求的时钟频率下正常工作。 本次实验 clk 的时钟频率为 50MHz周期为 20ns在做约束时可以等于这个值或者略低于这个值不建议周期设置的太小否则软件在布局布线时很难满足这个要求。 其实对于比较简单的设计即使不对工程做时序约束可能也不影响最终的功能。但是当设计变得复杂起来或者输入的时钟频率比较高的时候如果不添加时序约束那么就有可能在验证设计结果的时候出现一些意料之外的情况。所以这里推荐大家无论简单或者复杂的实验都对工程做时序约束。时序约束的内容非常多这里不再展开介绍这里只对输入时钟做周期约束约束的方法是在 XDC 文件中添加如下语句 create_clock -period 20.000 -name clk [get_ports clk] “create_clock”是该命令的名称它会创建一个时钟其后的“-name sys_clk” 、 “ -period 20”、“ [get_ports clk ]”都是该命令的各个参数分别表示所创建时钟的名称是“clk”、时钟周期是20ns、时钟源是 clk 端口一般只对输入的时钟做周期约束。
4 程序设计
由于发光二极管的阳极与 FPGA 的管脚相连只需要改变与 LED 灯相连的 FPGA 管脚的电平 LED 灯的亮灭状态就会发生变化。当 FPGA 管脚为高电平时 LED 灯点亮 为低电平时 LED 灯熄灭。 其中计数器对 50MHz 时钟进行计数从而达到计时的目的。计数器在每次计时到 0.5秒之后清零然后重新开始计数计数的值用于控制 LED 的显示状态。当计数器的值等于 0 时就把 LED 信号取反。代码如下所示 本程序中输入时钟为 50MHz所以一个时钟周期为 20ns1 / 50MHz。因此计数器 cnt 通过对 50MHz 系统时钟计数 计时到 0.5S 需要累加 0.5s / 20ns2500_0000 次。 在代码第 27行每当计时到 0.5s 计数器清零一次。同时在代码的第 37 行根据计数器的计数值来赋值 LED 的状态。当计数值等于 0 时led 进行取反操作这样就实现了每 0.5sled 信号翻转一次以此实现 LED 灯闪烁功能。 疑问 代码第 16 行 cnt 寄存器位宽为什么要设置成[24:0]呢这是因为 cnt 最大计数值是 24999999我们用计算器将其转成十六进制如下图 图6-1- 5 windows计算器界面
从上图右边我们可以看到总共是 25 位。 注 代码 8 行我们可以看到都在寄存器后面赋了初值这不是必须的但是建议同学们加上因为一些央企研究所等单位的代码需要做评测测评单位会要求给寄存器赋初值笔者曾经经历过。
5 仿真验证
对 RTL 代码进行仿真之前我们首先需要编写实验对应的仿真文件TestBench。 TestBench 是用于验证功能模块的设计是否符合预期其内容主要分为以下三个步骤 1、 向被测功能模块的输入接口添加激励 2、 对被测功能模块的顶层接口进行信号例化 3、 判断被测功能模块的输出是否满足设计预期
5.1 led灯闪烁模块led_shark仿真
5.1.1 仿真激励代码编写
接下来在Sim 中新建一个 tb_led_shark.v仿真测试文件接下来右击“tb_led_shark.v”文件使用“ Notepad”工具打开“tb_led_shark.v”文件就可以开始编写仿真代码了。 为了节约仿真时间更快地看到仿真现象我们在仿真激励文件的第 23 行将 led_shark模块中的 TIME_0S5 进行重新定义赋值。 TB 模块编写完成后就可以使用仿真软件对我们编写的 RTL 代码进行仿真了本次实验我们用Modelsim 软件来进行仿真。
5.1.2 批处理仿真
Modelsim仿真一般有两种方法第一种是图形化界面仿真即所有的操作都是在 Modelsim软件界面上来完成其它友商都是用的这种方式。做为一个工作了十多年的工程师来说实在不想使用图形化界面一步一步的去操作软件不仅步骤繁琐而且没有任何技术含量。那有没有一种一键仿真的方式呢读者朋友别急我们即将为大家安排批处理仿真全网首家使用该方式更快捷更贴近实际工程。相信读者学会了这种仿真方式其它的仿真都不香了接下来我将手把手的教大家使用批处理仿真。 先来看看我们仿真文件夹的构成如下图 图6-1- 6 仿真文件夹Sim构成 tb_led_shark.v 就是我们的仿真测试代码 do 文件夹里面存放的就是我们的批处理文件如下图 图6-1- 7 do文件夹构成
我们打开 modelsim.bat 文件选中 modelsim.bat鼠标右键用 notepad 打开打开后如下图 图6-1- 8 modelsim.bat文件 第 2 行中指定了 modelsim 的 vsim.exe 文件路径读者只用将路径改为自己电脑存放vsim.exe 的位置vsim.exe 文件在 modelsim 的安装路径下改好以后保存即可。 接着我们打开 sim.do 文件同样用 notepad 打开如下图所示 图6-1- 9 sim.do文件
第二行用于指定源码的位置只要大家的工程结构和我们的一致此处就不用更改 第三行用于指定仿真代码的位置只要大家的工程结构和我们的一致此处就不用更改 第五行仿真 tb_led_shark 这个仿真代码就是我们前面编写的仿真代码 第八行调用波形文件当我们还未开始仿真时文件夹里面没有这个wave.do文件仿真开始后我们在波形窗口中加入要观察的信号后按下 ctrls 就会生成一个 wave.do 文件再下一次运行时会自动加载上次观察的信号。 第九行仿真运行时间 第十行停止仿真 modelsim.bat 和 sim.do 文件修改好以后就可以开始仿真了。 步骤1直接鼠标双击 modelsim.bat 文件如下图所示 图6-1- 10 批处理仿真步骤1
步骤2添加波形文件选中被仿真的模块led_shark鼠标右键然后选择 Add Wave如下图所示 图6-1- 11批处理仿真步骤2-1
这时我们可以看到波形窗口出现了我们添加的信号如下图所示 图6-1- 12批处理仿真步骤2-2 步骤3保存添加的信号按 CTRLS 出现如下对话框 图6-1- 13批处理仿真步骤3
默认会将 wave.do 文件保存在 do 文件夹下直接点击 OK 步骤4此时回到图 6-1-10 界面在命令窗口输入 do sim.do 如下图所示 图6-1- 14批处理仿真步骤4-1 然后按下键盘上的 ENTER 键modelsim 就开始编译仿真了这时我们可以看到波形窗口出现了波形如下图所示 图6-1- 15批处理仿真步骤4-2 此时我们可以按上面的图标将波形缩小至全屏。波形的放大和缩小可通过按住 CTRL 键滚动鼠标滚轮实现。 如果我们修改了代码只用在图 6-1- 14 的命令窗口重新再输入 do sim.do 即可。
5.1.3 仿真波形分析
我们将仿真波形放大如下图所示 图6-1- 16仿真波形图
从上图可以看到 计数器 cnt 的值在 0 到 9之间循环计数。当 cnt 0 时 led 信号翻转实现 LED 闪烁的效果。
6 综合编译
6.1 新建Vivado工程
毕竟笔者工作了十多年再像前面《4-4 Vivado 使用初体验》章节那样使用Vivado软件太繁琐了我就以真正做项目的步骤生成bit文件。在前面我们已经将Source里面的源码led_shark.v和约束文件pin.xdc通过notepad 软件编辑好了并且通过Modelsim进行了功能仿真接下来我们新建Vivado工程。 步骤1File – Project – New然后点击Next 图6-1- 17 新建工程步骤1 步骤2更改工程名及工程保存路径注意路径不能有中文字符修改好以后点击Next 图6-1- 18新建工程步骤2 步骤3默认选择RTL Project即可点击Next 图6-1- 19新建工程步骤3 步骤4添加源文件.v点击Add Files然后找到源文件存放的路径将 .v 文件全部选中点击OK 图6-1- 20 新建工程步骤4-1 图6-1- 21新建工程步骤4-2 步骤5可以看到我们加入到工程的 .v 文件点击Next 图6-1- 22新建工程步骤5 步骤6添加约束文件.xdc点击Add Files 图6-1- 23新建工程步骤6 步骤7 找到我们的管脚约束文件pin.xdc点击Next 图6-1- 24新建工程步骤7 步骤8 选择器件xc7a35tfgg484-2点击Next 图6-1- 25新建工程步骤8 步骤9可以看到我们新建工程的总结点击Finish即可 图6-1- 26新建工程步骤9 步骤10可以看到新建工程的结构包括了1个源码1个约束文件器件型号如下图所示 图6-1-27新建工程步骤10
6.2生成下载文件bit
我们直接生成bit文件点击Generate Bitstream 图6-1- 28 生成bit文件 如果编译有错我们就根据错误信息对我们的代码或约束文件进行修改如果编译成功如下图所示 图6-1- 29 编译成功
7 下载验证
7.1 硬件连接
此时将 Xilinx 下载器一端连接电脑 另一端与开发板上的 JTAG 下载口连接开发板连接电源线如下图所示 图6-1- 30征战 Pro 开发板连接实物图
注意一定要先把下载器的一端连接到了电脑、另一端连接了 JTAG 接口之后再给开发板上电否则对开发板的 JTAG 接口进行带电热插拔有一定概率会损坏 JTAG 接口
7.2 下载bit文件
步骤1点击“Flow Navigator”窗口中的“Open Hardware Manager”按钮如下图所示
图6-1- 31下载bit文件步骤1-1 图6-1- 32下载bit文件步骤1-2
步骤2鼠标右击“xc7a35t_0”在弹出的菜单中选择“Program Device”如下图所示 图6-1- 33下载bit文件步骤2
步骤3在弹出的对话框中直接点击“Program”即可如下图所示 图6-1- 34下载bit文件步骤3
下载完成之后我们可以看到位于开发板上的 LED 灯在不断地闪烁如下图所示
图6-1-34 实验现象
到此我们第一实验已经完成大家多练习延伸 大家发现数码管显示了乱码这是正常现象因为数码管的驱动芯片我们没有控制它在数码管接口上就会有一个不定状态的电平反应到数码管就是显示乱码这个我们不用管只用关心 Led 灯是否正常控制。
- 上一篇: 用钢铁侠做网站公众号运营外包
- 下一篇: 用狐狸做logo的网站wordpress 简历
相关文章
-
用钢铁侠做网站公众号运营外包
用钢铁侠做网站公众号运营外包
- 技术栈
- 2026年04月20日
-
用粉色做网站主题色做网站的公司 设计好
用粉色做网站主题色做网站的公司 设计好
- 技术栈
- 2026年04月20日
-
用仿网站做优化有效果吗留言 wordpress
用仿网站做优化有效果吗留言 wordpress
- 技术栈
- 2026年04月20日
-
用狐狸做logo的网站wordpress 简历
用狐狸做logo的网站wordpress 简历
- 技术栈
- 2026年04月20日
-
用户体验比较好的网站在线单页网站制作
用户体验比较好的网站在线单页网站制作
- 技术栈
- 2026年04月20日
-
用家里的路由器做网站安徽网站设计定制
用家里的路由器做网站安徽网站设计定制
- 技术栈
- 2026年04月20日
