打印

FPGA学习开发笔记(转)

[复制链接]
2280|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xlhtracy|  楼主 | 2012-3-6 11:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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模块;

相关帖子

沙发
xlhtracy|  楼主 | 2012-3-6 11:22 | 只看该作者
15 input信号是不是不需要用reg来声明啊?


16 三段式状态机中,第二段也就是状态转移段的写法;后记,状态转移要使用阻塞性赋值"=",凡是要判断状态的变量,都要写进 always语句,例如 or drdypedge or flag or sqrt_rdy) begin


17 为什么使用DCM,怎么使用DCM;后记Digital Clock Managers (DCMs)


18 ISE13.1成功Generate Programming File,但是没有BIT文件,原来是有bit文件而win7的搜索没有找到,手动找到了


19 DA的时序很奇怪


20 AD的输入数字也很奇怪


21 遇到一个奇怪的问题,例化的程序里面,本来应该在复位信号里面给状态机赋初值,总共3个例化程序,有两个可以赋初值,一个不行,一直是xxxxxxxxxxxxxxx ,找到问题了,原来是低级错误,时钟写错了,应该是clk_100M,写成了clk100M。


22 写程序进FPGA外部存储器(本例中为xcf02s)的教程,网络上没有ISE13.1的;后记,自己蒙着找到了;


23 2011/10/17实验证明,开方是好用的


24 verilog语言写完了,也好用,我想知道里面具体是什么电路实现的,有师弟说是用查找表实现的,把所有可能的结果都算出来,存起来,有啥输入就给相应的输出


25 使用Xilinx IP核做39位数字开方需要20个延时,这是在pipelining在maximum的情况下,如果改成no pipelining,那么只需要2个周期的延时


26 使用Xilinx IP核心做32位除法需要36个周期延时,20位除法需要24个周期延时,25位除法需要29个延时


27 FPGA里面浮点数的定义、运算是啥样子呢,貌似很麻烦,算了,不做除法或者浮点数乘法了


28 ISE13.1中,CORDIC IP核做开放时,如果输入为40位无符号整数,那么输出为21位,应该是20位才对啊,仿真验证了一下,输入为40个1,或者说10个F即FFFFFFFFFF时,输出为20个1,也就是20位,那么为啥要做成多一位呢?奇怪
  29 verilog里面,按位取反符号为"~",逻辑取反符号为"!"
30 verilog里面是可以定义有符号数和无符号数的,所以不要纠结于补码和原码的问题了

使用特权

评论回复
板凳
EandE| | 2012-3-6 11:29 | 只看该作者
很基础的知识 感谢分享

使用特权

评论回复
地板
liugp25| | 2012-3-6 11:37 | 只看该作者
我也学习下

使用特权

评论回复
5
娃娃啊哇| | 2012-3-6 13:56 | 只看该作者
leaning,leaning,well done

使用特权

评论回复
6
opple| | 2012-3-6 17:43 | 只看该作者
好基础啊 写的很不错

使用特权

评论回复
7
大江东去| | 2012-3-7 11:08 | 只看该作者
good good study,day day up!:lol

使用特权

评论回复
8
liugp25| | 2012-3-7 11:34 | 只看该作者
感谢分享

使用特权

评论回复
9
xlhtracy|  楼主 | 2012-3-12 10:40 | 只看该作者
:lol 6# opple

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:菜地里的西兰花

52

主题

1448

帖子

25

粉丝