FMCW3 代码分析(未完工)

目前采用的分析方法是原版VHDL+转换后的verilog HDL同时阅读的方法。由于不熟悉VHDL,因此对阅读代码造成了很多困难。
整个工程环环相扣,逻辑数据结构极其复杂,再加上作者不写注释无文档说明,使得分析代码变得十分繁琐,目前仍在进行中。
在这里插入图片描述

adc.vhd:

需要了解的是,这里使用的ADC为LTC2292,由于配置为单数据总线的模式,因此数据总线的输出格式为DDR(double data rate),在时钟的上升、下降沿分别读取两个通道的数据。
在这里插入图片描述

模块的正常框图如下图所示
综合后的结果
这里要注意在代码中有一个开关用于切换是否bypass FIR模块

CONSTANT generate_fir : BOOLEAN := true;

如果关闭的话数据会直通后级。在true时,会将data_a与data_b的数据合成为一个24bit的变量,而如果false,则会简单的将输入信号复制两份分别到高12与低12位
在这里插入图片描述

还有一段看似比较奇怪的代码:

    g_not_fir : IF NOT generate_fir GENERATE

        fir_data_out <= fir_data_in;

        PROCESS (clk)
            VARIABLE count : unsigned(7 DOWNTO 0) := (OTHERS => '0');
        BEGIN

            IF rising_edge(clk) THEN
                IF count = to_unsigned(40, 8) THEN
                    count := (OTHERS => '0');
                    valid <= '1';
                ELSE
                    count := count + 1;
                    valid <= '0';
                END IF;
            END IF;
        END PROCESS;

推测其实这里主要是为了产生valid信号。因为FIR处理数据有一定的延迟,因此当我们bypass掉FIR时,将valid信号延迟40拍以免造成后级系统的混乱,保持一致性。
在这里插入图片描述
要注意这里数据送进FIR的方式

fir_data_in <= "0000" & data_a_buffer & "0000" & data_b_buffer;//VHDL
assign fir_data_in = {4'b0000, data_a_buffer, 4'b0000, data_b_buffer};//Verilog HDL

是高低位同时输入,因此这里实际上用到的是一个双通道的FIR。FIR的输入可以有很多通道,拿ALTERA的IP核举例,它最多支持192个通道,为了简便,直接将数据并为同一个数据总线。同时因为FIR的数据位宽为16位,因此要为高位添0。
理论上来说,这样会造成data_a和data_b的数据错开一个时钟,我不知道这会不会造成什么影响,但是似乎可以通过软件修正。

downsampler.vhd

框图如下图:
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ava实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),可运行高分资源 Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值