FPGA学习记录
1 always语句里面是边沿触发,那么使用非阻塞性赋值<=;
如果是状态触发,那么使用阻塞性赋值=;
2 ISE9在win7上可以运行、仿真,但是没有下载线的驱动,百度google也没找到办法,后来咨询了卖FPGA下载线的,说ISE10以上支持win7,于是下载了ISE13,这次安装驱动成功了。
3 ISE13里面做仿真的时候,初值怎么设定?ise9中,是可以用鼠标拖来拖去设定初值的,ise13里面,拖不动了,官方解释,从ise11.1开始,ise不再支持test bench waveform,也就是不能在拖来拖去了,Xilinx建议使用对于新项目使用hdl test bench;后记,费了好几天劲,终于写成了一个VHDL test bench,可以用来仿真了。
4 真正的FPGA的复位信号啥样子?
高低高
5 ISE13里面,vhdl test bench 中,rst信号的写法
process
begin
rst<='0';
wait for 100 ns;
rst<='1';
wait for 5000 ms;
end process;
6 红色飓风 RCII - SP3S400的时钟信号很恶心,不像方波,像是正弦波
7 为什么总是(posedge clk or negedge rst),其实(posedge clk)也可以?
8 ise9.1里面, 声明变量的时候不能直接赋值,好像也不对,怎么改都不行,也不知出啥语法错误了,还是换回13.1吧,昨晚13.1总也不好用,可能是因为没有给clk和rst信号分配管脚的问题,刚才试了一下, 果然好使了,就是因为没有分配管脚,哇哈哈,困扰了好久了,总算搞定
9 输出变量改名后,记得在ucf(用户约束文件)文件中把以前的变量和对应管脚删掉;后记,现在习惯于直接写UCF文件了,呵呵,更方便。
10 always语句中,只能检测输入信号的上升沿或下降沿
11 不要使用clk作为非系统时钟变量名称,否则在ise13中仿真时会自动给定周期
12 20110709今天实现了DA,本工程可以在自制FPGA+主板上,驱动DA输出一个锯齿波,用示波器测得周期为100ms,DA输入时钟为80ns,输出数据大概1.5us一个,可以再提高;后记,做了一个DA模块,支持的输入时钟为0~200M,很好用;
13 ISE里面,顶层原理图包含下面几个verilog文件的方式,还有verilog文件下面包含几个verilog文件的方式,有啥区别,哪种更好;后记,习惯于后者了。
14 输入时钟是50Mhz时,可以实现超过50M的主频吗,貌似可以,xilinx ->accocessory ->Core generator -> ;后记,可以的,使用DCM模块;
|