-
原来师兄也在这里哈哈,支持支持
-
夏老师:
您好!
我现在正在用一款模拟光纤陀螺仪VG951,但是在硬件上是直接用的 MCU内部12位ADC处理,总感觉精度不是很好,软件上卡尔曼滤波不是太懂,没做出来,只能是简单的不停采样(DMA方式)然后平均,静态时候模拟光纤理论上输出的2路差分信号,对地偏置都是1v,但是仿真处理后一路是1.048v,一路是1.054,数字还是会跳动,2路大小不确定,不知道是哪一路大哪一路小。
所有这样对我后续处理上带来很大的麻烦,无法控制姿态。。
希望夏老师能给指点
-
夏老师:
我想问一个专业以外的问题,我现在还没拿毕业证(4月份拿),不过1月就开始工作了,工作地点在天津,感觉还可以,可是,我女朋友是石家庄的,独生子女在石家庄工作,工作的单位是事业单位,比我要好。
我现在很迷茫,我是为了爱情,选择去石家庄工作(可石家庄工资低,也没什么好企业,好的事业单位,我女朋友的那单位我进不去)?还是继续在天津工作?
我还不知道她的父母是否同意我跟她在一起,我很纠结,两地工作也不是一个事。。。
-
谢谢夏老师,我确实需要好好改改,年轻气盛,看问题和处理问题还欠缺很多,有次面试,我还差点跟面试考官吵起来,那次面试先做了笔试,然后技术面试,技术面试考官面试我快1个半小时,哎,搞的很烦躁。
小公司我又不是特别想去,哎
我要好好自我反省,期待2013年找到一份自己喜欢的工作。
-
谢谢您的建议,为我指明了方向。
-
夏老师:您好!
我研究生期间一直学FPGA(一年半了),也玩过开发板(CYCLONE II 系列的),硕士论文也是基于SOPC技术做的,自己认为对FPGA也有点小成就,可是到现在就没找到相关做FPGA的工作,苦恼啊,迷茫啊。。。
现在开始打算放弃FPGA了,转投学ARM呢,学C学JAVA呢,这可怎么办。今年计算机那个火爆。
能给点建议,我怎么继续努力。
谢谢 夏老师
-
请问夏老师,FPGA芯片(Cyclone ii)的工作电压是3.3v和1.2V,如果外接LCD12864(工作电压是5v),这个会不会问题。
还是必须找一个工作电压是3.3v的LCD与FPGA芯片连接
-
感谢感谢,我也是第一次接触这个东西,现在和计算机一个学生一块做这个项目中的一部分,他做上位机,我做下位机,到最后可能要预留一个网络通信部分。现在基本是各做各的。开始做这个不到5天
-
夏老师:
最近有一个问题,不是特别明白,想请教您一下。
关于射频卡的问题,在下位机(MCU)中通过一个非接触读卡机芯片(FM1702SL)来对射频卡进行操作,上位机(PC)那一块,也可以对射频卡操作。
现在有一点不是特别明白,我的下位机跟上位机之间没有直接的联系,如果用户有一张卡丢了,现在注销了,那下位机怎么知道这个卡注销了呢?
我网上找了一些资料,但是很少有关于注销卡这一块的。。
-
问题解决了。现在感觉,学习真是一种享受,很多东西都是想通的,知道怎么学了,发现自己一步一步在进步。
很高兴
-
谢谢,夏老师
NiosII的中断处理过程是这样的:
1.拷贝一份程序状态字到ctl1;
2.清除全局中断允许位PIE,禁止中断;
3.将下一条将执行的指令的地址存入R29,以便中断返回之用;
4.跳转到中断入口地址,进入系统ISR;
5.系统ISR保护现场;
6.系统ISR检测ctl1的PIE位,如为0则进入软中断处理程序从11继续,否则由7继续;
7.系统ISR检测Ctl4,如果有中断申请,则转到硬中断处理程序,否则进入软中断处理程序;
8.硬中断处理程序将检测中断申请号,并检索中断向量表,跳转到用户中断处理程序;
9.用户中断处理程序做出具体的处理,最后返回系统ISR;
10系统ISR恢复现场,并返回;
11.软中断处理程序进行陷井指令、模拟指令判断,并做相应处理,然后返回系统ISR;
12.系统ISR恢复现场并返回;
具体我也只能找到这些资料。
-
夏老师:
我问一个关于NIOS ii 中断的问题:
我们在写程序的时候,经常用到 alt_irq_register();对中断函数进行注册,然后主程序运行中,中断程序和其他的代码是并行运行吧?
感觉和单片机中的中断不一样。。
-
哎,科学技术为第一生产力,中国何时能翻身,期待
-
夏老师:
问几个很不专业的问题,
1.Quartus ii 软件是怎么设计出来的?
2.为什么我们用硬件描述语言编写个程序,这个软件就知道我写的程序是啥,而且效率如此之高?
3.这个玩意,咋中国人怎么设计不出来?
哎,我没文化,真可怕。
-
我个人的理解是:在这2个always语句中都是上升沿促发,我们仿真的时候,没有考虑时钟在底层电路中存在的时钟skew,或者时钟信号频率很大,这种情况可以忽视。我觉得这种简单的电路,有些时候看不到效果。在复杂的电路中要考虑时序的问题,加一些时序约束,竞争现象可以观察到。
还是建议按照在边沿触发电路中用非阻塞赋值,非阻塞赋值语言是把右边的都计算好了,等到下一个时钟沿到来以前赋值给左边的,您在仿真的时候,精度在ns可以看到有差不多一个周期延时,在ms看不出来
说的不对的,望夏老师指点
[ 本帖最后由 sd6863959 于 2012-3-20 13:27 编辑 ]
-
太感谢了,让我一身轻松~!我要好好学习,为中国的芯片事业奉献自己一点力量。
-
夏老师:我实在是太笨了,想了好久,测试了好久,还是觉得有点问题。。。您说的“先有连接,后有变化”在边沿触发的always块中,好像是不成立的。写个简单的程序测试一下:reg[2:0] out ;always @(posedge in)out <= out + 2'b1 ;首先:我们让in为下面 一个激励信号在testbench写的initial begin in= 0 ; end always #5 in =~in ; 在ms精度下这个out 从0开始,到遇到第一个上升沿为止是0,;遇到上升沿后开始加1;这个可以验证您说的“先有连接后又变化”。可是在initial begin in= 1 ; end always #5 in =~in ; 中,如何是“先有连接后又变化”的话,从0时候开始到遇到上升沿为止的这段时间应该是1,可是结果在ms精度下还是0,在ns精度下输出有一小段X状态。
[ 本帖最后由 sd6863959 于 2012-3-19 12:41 编辑 ]
-
太好了 ,谢谢
-
夏老师,
我想问的意思是这样的:
系统0时刻之前是什么状态,是X状态还是三态?
如果算X状态的话,从0时刻之前的X状态变成1或者0,是不是变化?如果是变化的话,组合逻辑电路才好理解。
要不算变化,那么在0时候开始到过一段时间才跳变的时间段,敏感信号算是没有变化的,always语句是不执行的。
但是,在边沿触发敏感信号中,这样理解又不正确,在触发沿的时候才执行变化,当触发沿之前的那一段时间是什么状态,不好理解。
头大了,我都设计了一些历程实例了,突然,有一天想到这个,就死在这里了。设计一些系统的时候也没有考虑这些细节啊。
[ 本帖最后由 sd6863959 于 2012-3-18 18:20 编辑 ]
-
随便写小程序通过仿真 module example( in, out );
input in ;
output [1:0]out ;
reg [1:0]out ;
always @( in )
begin out = 2'b01;
end
endmodule 这个从0ps开始,in信号一直为1,然后输出out一直为01;
module example( in, out );
input in ;
output [1:0]out ;
reg [1:0]out ;
always @( posedge in )
begin out <= 2'b10;
end
endmodule
从0ps,in信号也一直为1,输出out为10; 这些敏感信号一直没变化,可输出变化了,说明执行了always语句。。我不知道是我的理解有问题还是,语法说always在敏感信号发生变化才执行
[ 本帖最后由 sd6863959 于 2012-3-17 08:43 编辑 ]