8月总结和后续学习计划
本文分三个部分
第一部分:小结
第二部分:疑问点
第三部分:后续学习计划
第一部分:
目前主要学习了
1,quartus开发工具的使用 signal tap ii的初步使用
2,modelsim的初步使用
3,verilog 的基本语法
4,结合开发板将板上的资源测试了下 包括逻辑组合,时序组合和驱动程序
结合驱动程序代码分析了设计思路
5,学习了quartus 下的常用参数化宏模块的建立
学到的知识点:
>> JTAG AS接口最好掉电后插拔
>> 工程实体名要和顶层模块名一致
>> 不用的IO设为三态输入
>> 有些特殊引脚比如片选信号可修改为普通IO使用
>> 引脚配置方式有图形法和脚本法两种 后者更快捷
>> 组合逻辑电路一般用阻塞赋值 时序电路一般用非阻塞赋值
>> 数值最好用计数法表示 确定位宽 否则默认为32位 容易忽视出错
>> 两个always语句块中不能同时操作同一个变量 否则编译器报错
第二部分:
疑问1:
两个always语句块中不能同时操作同一个变量 否则编译器报错
为什么呢怎么避免?
特权在他的书中讲的解决方法是 给always块命名
然后两个块中的变量就相互不影响了 为什么呢?
疑问2:
在c语言中我们可以多次调用同一个函数比如uart发送 发送不同的变量
那么在verilog中怎么做呢
我的思路是
让这个你想调用的公共块随时准备执行 每个时钟到来时都检查使能标志
当某处需要调用它时 使能一个标志位并给变量赋值
则下一个时钟到来时那个公共块发现自己被使能了 开始处理那个变量
完成后将使能标志清零
疑问3:
函数和任务只是在testbench中使用吗?
在普通的代码文件中是否也能用上函数和任务?
如何使用
第三部分:
下一步的学习计划是
1,modelsim的深入学习以及testbench的编写 调试 技巧
2,verilog的进一步学习 包括状态机 模块化 UDP等
3,quartus的静态时序分析软件学习 设计思想学习
4,飓风II fpga最小系统和硬件学习
5,学习VGA和SDRAM的驱动编写和使用
6,通过实例进一步加强以上学习包括
结合手头上现有的资源打算做以下几个小项目
A,多功能时钟设计 uart通信+数码管+按键+蜂鸣器
B,电子相册设计 SD卡+(SDRAM)+VGA
C,LED点阵设计 UART+SDRAM+点阵驱动
D,摄像头+VGA显示系统设计 摄像头驱动+信号处理+VGA驱动
第三阶段的学习
初识nios ii 点亮led即可
初识dsp核(待定)
第四阶段学习:
待定....
文章评论(0条评论)
登录后参与讨论