谁能帮我把这个程序改为verilog语言必有重谢

谁能帮我把这个程序改为verilog语言必有重谢,第1张

module epm240(input clk, output oe, output clk1, input [7:0] din, output [7:0] dout, input KEY, output clkout)

reg [26:0] m

always @(posedge clk) m<=m+27'b1

assign clkout = T ? m[26] : m[24]

// assign clkout1 = T ? m[24] : m[26]

assign clktmp = m[19]

reg D0, D1

always @(posedge CLKTMP) begin

D1 <= D0

D0 <= ~KEY

end

assign kin = D0 &~ D1

reg T, q

always @(negedge kin) T <= ~T

always @(posedge clk) q <= ~q

assign clk1 = q

assign oe = 0

assign dout = din

endmodule

建议你不要大小写混用,代码里面全部用小写,只有宏或者parameter采用大写。

以下是TLC5615的C控制程序。

有了这程序,直接调用就行了。

后面的很容易了,交给你自己完成吧……

///////////////////////////////////////////////////////////

// Name : TLC5615控制

// In :

// Out :

// Function :

// Explain :

// TLC5615 是10位的精度,送数时要送12位

// 高10位为真正的数据位,最低两位无用,

// 可送1或者0。

// 并且将TLC549的8位数据放在TLC5615的10位

// 数据的低8位,让高2位为0。

// 向TLC5615送数时,要连续发12个时钟周期

/**************************************/

void TLC5615_ctl(uchar x)

{

uchar j

uint i=0

i=(uint)x

i=i<<6// 向左移6位,满足12位要求

TLC5615_CS=0 // 拉低片选,准备送数

for(j=0j<12j++) // 送12次,先送高位,再到低位

{

TLC5615_SCLK=0// 由于 TLC5615 是在上升沿将数据打入移位寄存器,因此在 sclk 低电平时将数

// 据放在 TLC5615 数据线上,以便其在时钟上升沿来时正确取数

if((i&0x8000)!=0x0000)

TLC5615_DIN=1// 当高位为1时,输出1,否则输出0

else

TLC5615_DIN=0

TLC5615_SCLK=1 // 拉高时钟线,以便TLC5615读入数据

i=i<<1 // 将数据往左移一位,以便在下一个时钟输出给TLC5615

}

TLC5615_SCLK=0 // 空闲时拉低SCLK

TLC5615_CS=1 // 空闲时拉搞CS

}

没用过,但是可以给你提一些意见,TLC5510是用于超高速ADC来使用的,速度可达10M,但是我们绝大多数情况下是用不着这么高的速度的,所以你首先看下自己的需求,如果一定要用,你看看这个网页,或许会有所帮助!


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

原文地址: http://outofmemory.cn/yw/11063306.html

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

发表评论

登录后才能评论

评论列表(0条)

保存