对特权FPGA控制ADC TLC549逻辑代码疑问
时间:10-02
整理:3721RD
点击:
在学习《SF-CY3 FPGA套件开发指南Ver7.20 (by特权同学).pdf》,第6.6 逻辑(Verilog)实例7——基于In-System Sources and Probes Editor的AD采集一节时,对其中的一段代码不是很理解,希望大家帮帮忙,在下不胜感激。
module tlc549(
clk,rst_n,
adc_data,adc_cs_n,adc_clk
);
input clk; //25MHz
input rst_n;
input adc_data;
output adc_cs_n;
output adc_clk;
/************************* 50分频计数 *********************************/
reg[5:0] cntus; //2us
always@(posedge clk or negedge rst_n)
if(!rst_n)
cntus 17us
reg[7:0] adc_dinr; //模数转换数据寄存器
reg[7:0] adc_dinlock; //模数转换数据寄存器,用于实时串行数据的锁存
reg[2:0] cstate,nstate;
//状态迁移
always@(posedge clk or negedge rst_n)
if(!rst_n)
cstate 5'd12))
adc_clkr 5'd12)) 这句如何理解,这个 5'd12这个数值是哪来的?
module tlc549(
clk,rst_n,
adc_data,adc_cs_n,adc_clk
);
input clk; //25MHz
input rst_n;
input adc_data;
output adc_cs_n;
output adc_clk;
/************************* 50分频计数 *********************************/
reg[5:0] cntus; //2us
always@(posedge clk or negedge rst_n)
if(!rst_n)
cntus 17us
reg[7:0] adc_dinr; //模数转换数据寄存器
reg[7:0] adc_dinlock; //模数转换数据寄存器,用于实时串行数据的锁存
reg[2:0] cstate,nstate;
//状态迁移
always@(posedge clk or negedge rst_n)
if(!rst_n)
cstate 5'd12))
adc_clkr 5'd12)) 这句如何理解,这个 5'd12这个数值是哪来的?
就是上面2us计数那里来的,产生8个SPI 的时钟来传输数据,但是cntus >5'd24 更加合理