verilog 有关拼接语句的问题。。。在AD转换中的问题

verilog 有关拼接语句的问题。。。在AD转换中的问题,第1张

dataout[7:0]<={dataout[6:0],data}这个地方我看不到你对data的声明,不知道data是有多少为,但是根据代码来看,data应该只有一位,属于拼接,比如data是0,dataout的低7位是1,那拼接后dataout的低8位就是11111110。

至于tenvalue<=(tendata((dataout>>4)&8'b0000_1111)*16+ tendata(dataout&8'b0000_1111))*129,dataout>>4表示dataout右移4位,再与上8'b0000_1111,其实是把dataout的高四位移位到低四位,比如dataout=1101_0101,得到的结果是0000_1101

4个建议:

1、第二行“nest_states”命名错误。

2、状态机的迁移最好加上复位,如下:

always @ (posedge clk or negedge rst)

if (!rst)

state <= IDLE

else

state <= next_state

3、状态机的第二段可以采用组合逻辑写,always(*)是可以的,但是严禁在同一个组合逻辑always模块里同时出现<= 和=,改成都用=。

4、硬件描述语言,最好用1'b1,1'b0把位宽也描述上而不要用直接用1,0。

verilog语言是硬件电路描述语言,而这里的电路是特指数字电路的,对于模拟信号,任何FPGA或者CPLD都没办法直接处理,我以前做的数据采集板中,最前端做AD采集都是有专门的芯片来实现AD采集,这些专用芯片都是有模拟电路设计的部分。而FPGA芯片基本都是数字电路。只能处理AD芯片转换后的数字信号。。在业内专门做AD的芯片例如 Analog公司它有很多型号的专用AD数据采集芯片,比如我曾经用来和FPGA通讯的LT2208等等。你可以搜索相应的器件了解相关信息


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12044795.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存