那些年在FPGA踩过的坑(一)

那些年在FPGA踩过的的坑(一)

    • 1、Error(10028):Can't resolve multiple constant drivers for net “ ” at **.v
    • 2、modesim找不到某某文件
    • 3、网上FFT实例使用方法
    • 4、跨时钟域处理单元
    • 5、高共模抑制比放大电路
    • 6、FFT使用
    • 6.1 Github上面DE2-115傅里叶变换例子
    • 6.1 fft函数的用法及关键问题详解
    • 7、低通滤波器
      • 7.1、低通滤波器
    • 8、仿真时出现高阻态?????
    • 9、仿真时出现vsim-3033
    • 10、Difference between“ >>” and“ >>> ”in verilog?

1、Error(10028):Can’t resolve multiple constant drivers for net “ ” at **.v

两个进程里都有同一个条件判断的话,会产生并行信号冲突的问题。

同一个信号不允许在多个进程中赋值,否则则为多驱动。

进程的并行性决定了多进程不同能对同一个对象进行赋值。

时序逻辑和组合逻辑的计算

2、modesim找不到某某文件

1、例如lpm相关
解决方法:right click on the libraries window
goto new -> library
select map to existing library
name : LPM
find the 220model folder

3、网上FFT实例使用方法

1、解压到相应文件夹

2、cd {D:/cv_fft_iff_natural_cosine_170/fft0/simulation/mentor}

3、运行tcl脚本:source msim_setup.tcl

局部修改内容的含义
注意
1、修改topname
2、添加自己的文件.v
3、添加需要的IP核相关文件

4、LD

重新加载文件设置

5、do wave.do

在波形窗口添加监视及

6、run -all

运行程序

4、跨时钟域处理单元

暂无

5、高共模抑制比放大电路

https://www.eefocus.com/test-measurement/338394/p4

通过低通滤波器所得到的信号可能很微弱,所以加一级前置放大器对所获取的信号进行放大,以期能够得到更易于处理的信号。将放大器前置的目的有两个:①使小输入信号不被后期电路的噪声所淹没;②要防止滤波器电路的噪声被放大。

对于测量放大电路的基本要求是:①测量放大电路的输入电阻应与传感器输出阻抗相匹配;②稳定的放大倍数;③低噪声;④低的输入失调电压和输入失调电流,以及低的漂移;⑤足够的带宽和转换速率;⑥高共模输入范围和高共模抑制比;⑦可调的闭环增益;⑧线性好、精度高;⑨成本低等;

目前广泛应用的是高共模抑制比放大电路,如下图所示:

该共模抑制比电路由三个集成运算放大器组成,其中为两个性能一致(主要是指输入阻抗、共模抑制比和增益)的同相输入通用集成运算放大器,构成平衡对称(或称同相并联型)差动放大输入级,构成双端输入单端输出的输出级,用来进一步抑制的共模信号,并适应接地负载的需要。

输入级的输出电压,即运算放大器输出之差为,其差模增益

由以上公式可知,当性能一致时,输入级的差动输出及其差模增益只与差模输入电压有关,而其共模输出、失调与漂移均在两端相互抵消,因此电路具有良好的共模抑制能力,为消除偏置电流等得影响,通常取。

关于放大器采用的是LM386,LM386是一个用于在低电压消费类应用设计的功率放大器。内部增益为20,输入以地面为参考,而输出被自动偏置到电源电压的一半。静态功耗只有24毫瓦,LM386是电池操作的理想选择。

6、FFT使用

1、已知数据
采样频率 Fs=
采样点数 N=

2、待求数据
频率 Fn = (n-1)Fs/N;
幅值 复数的平方根 Y = 根号(real²+imag²);sqrt(real(X).^2 + imag(X).^2)
(对称,2倍关系)

相位 theta = arctan();弧度或者直接计算

3、负数求平方,位扩展问题,在位未扩展之前,取反后再计算。

6.1 Github上面DE2-115傅里叶变换例子

1、声音频谱转换
https://github.com/Goshik92/FFTVisualizer

2、

6.1 fft函数的用法及关键问题详解

fft函数的用法及关键问题详解

(一)fft函数计算得到的Y是输入信号x的频谱吗?如果不是还要经过怎样的变换?为什么要除以N。

(二)如何计算Y对应的频率f,并绘制(f,Y)频谱图?

(三)如何根据离散信号的长度确定n的数值?

7、低通滤波器

7.1、低通滤波器

Altera FIR 低通滤波器参数分割可以是,或空格

根据工作原理,频谱分析仪大致可分为模拟式和数字式两大类,本设计是数字式频谱分析仪,该分析仪先将所采集的信号通过一个低通滤波器进行滤波,然后将经滤波处理的模拟信号进行采样量化,再通过放大

那些年在FPGA踩过的坑(一)_第1张图片

8、仿真时出现高阻态?????

通过modelsim进行模拟后,结果始终显示为高Z.
检查数据初始化状态

9、仿真时出现vsim-3033

该文件有错误,或软件版本问题

10、Difference between“ >>” and“ >>> ”in verilog?

It is not similar to ==/===, if the left hand operand is signed then >>> performs sign extension.

reg signed [9:0] b = 10'sb11_0101_0101;
reg signed [9:0] a_signed;
reg        [9:0] a_unsigned; 

always_comb begin
  a_signed   = b >>> 2;
  a_unsigned = b >>  2;
  end
Result:

#a_signed   1111010101
#a_unsigned 0011010101

for example

a = 5'b10100;
b = a <<< 2; //b == 5'b10000
c = a >>> 2; //c == 5'b11101, 'cause sign bit was `1`
d = a <<  2; //d == 5'b10000
e = a >>  2; //e == 5'b00101

你可能感兴趣的:(个人随记,FPGA,FPGA)