i178cslavecontroller(编辑修改稿)内容摘要:
synchronous reset,active low //INPUTS input rst_n。 input i2c_sclk。 input clk_ slave。 input[7:0] reg_dat_from_ slave。 input i2c_sdin。 //OUTPUTS output i2c_sdin_out_zero。 output ack。 output start_t。 output stop_t。 24 output[7:0]reg_addr。 output reg_dat_wr。 output reg_dat_rd。 output[7:0]reg_dat_to_ slave。 //INOUTS //SIGNAL DECLARATIONS reg [7:0] reg_addr。 reg [7:0] reg_dat_to_slave。 reg reg_dat_wr。 reg reg_dat_rd。 reg [3:0] bit_t。 //Counter the posedge jump of i2c_sclk reg rw。 //Read/write direction 1: read。 0: write reg [7:0] sr。 //8bit parallel data reg reg_dat_rd_dly。 reg [7:0] shift_rd_dat。 reg i2c_sclk_dly0。 reg i2c_sclk_dly1。 reg i2c_sclk_dly2。 reg i2c_sdin_dly0。 reg i2c_sdin_dly1。 reg i2c_sdin_dly2。 reg sta_condition。 //Start conditon reg sto_condition。 //Stop condition reg [3:0] cur_state。 reg [3:0] nxt_state。 wire pos_jp_sclk, wire neg_jp_sclk。 wire pos_jp_sdin。 wire neg_jp_sdin。 wire ld。 //Load downcounter wire my_addr。 //My address is called? 25 wire acc_done。 // 8bits transfered wire start_t。 wire stop_t。 wire i2c_sdin_out_zero。 wire i2c_sdin_out_en。 wire i2c_sdin_out。 //PARAMETERS // I2C slave address parameter I2C_SLAVE_ADDR= 739。 h40。 //statemachine Declaration parameter ST_IDLE = 439。 b0000。 parameter SLAVE_ADDR = 439。 b0001。 parameter SLAVE_ADDR_ACK= 439。 b0010。 parameter REG_ADDR = 439。 b0011。 parameter REG_ADDR_ACK = 439。 b0100。 parameter REG_DAT = 439。 b0101。 parameter REG_DAT_ACK = 439。 b0110。 parameter RD_REG_DAT = 439。 b0111。 parameter RD_REG_DAT_ACK= 439。 b1000。 //ASSIGN STATEMENTS //generate start and stop signal assign start_t = sta_condition。 assign stop_t = sto_condition。 //generate sequential signal assign pos_jp_sclk = i2c_sclk_dly1 amp。 amp。 !i2c_sclk_dly2。 assign neg_jp_sclk = i2c_sclk_dly2 amp。 amp。 !i2c_sclk_dly1。 assign pos_jp_sdin = i2c_sdin_dly1 amp。 amp。 !i2c_sdin_dly2。 assign neg_jp_sdin = i2c_sdin_dly2 amp。 amp。 !i2c_sdin_dly1。 //generate access done signal 26 assign acc_done= !(|bit_t)。 //generate shift register assign my_addr = (sr[7:1] == I2C_SLAVE_ADDR) amp。 amp。 (acc_done) amp。 amp。 (cur_state == SLAVE_ADDR)。 //generate load downcounter signal assign ld = (cur_state == ST_IDLE) || (cur_state == SLAVE_ADDR_ACK) || (cur_state == REG_ADDR_ACK) || (cur_state == REG_DAT_ACK) || sta_condition || sto_condition|| (cur_state == RD_REG_DAT_ACK)。 // generate acknowledge signal assign ack = (cur_state == SLAVE_ADDR_ACK) || (cur_state == REG_ADDR_ACK) || (cur_state == REG_DAT_ACK)。 assign i2c_sdin_out = shift_rd_dat[7]。 assign i2c_sdin_out_en = (cur_state == RD_REG_DAT) amp。 amp。 rw。 assign i2c_sdin_out_zero = ack ? 139。 b0 : (i2c_sdin_out_en ? i2c_sdin_out : 139。 b1)。 //MAIN CODE //sync i2c_sdin and i2c_sclk always @(posedge clk_ slave or negedge rst_n) if (!rst_n) begin i2c_sclk_dly0 = `DEL 139。 b1。 i2c_sclk_dly1 = `DEL 139。 b1。 i2c_sclk_dly2 = `DEL 139。 b1。 i2c_sdin_dly0 = `DEL 139。 b1。 i2c_sdin_dly1 = `DEL 139。 b1。 i2c_sdin_dly2 = `DEL 139。 b1。 end else begin i2c_sclk_dly0 = `DEL i2c_sclk。 27 i2c_sclk_dly1 = `DEL i2c_sclk_dly0。 i2c_sclk_dly2 = `DEL i2c_sclk_dly1。 i2c_sdin_dly0 = `DEL i2c_sdin。 i2c_sdin_dly1 = `DEL i2c_sdin_dly0。 i2c_sdin_dly2 = `DEL i2c_sdin_dly1。 end always @(posedge clk_ slave or negedge rst_n) if (!rst_n) sr = `DEL 839。 b0。 else if (pos_jp_sclk) sr = `DEL {sr[6:0], i2c_sdin_dly1}。 always @(posedge clk_ slave or negedge rst_n) if (!rst_n) cur_state = `DEL ST_IDLE。 else cur_state = `DEL nxt_state。 //find out the START condition always @(posedge clk_slave or negedge rst_n) if (!rst_n) sta_condition = `DEL 139。 b0。 else if (i2c_sclk_dly1 amp。 amp。 neg_jp_sdin) sta_condition = `DEL 139。 b1。 else sta_condition = `DEL 139。 b0。 //find out the STOP condition always @(posedge clk_slave or negedge rst_n) if (!rst_n) sto_condition = `DEL 139。 b0。 else if (pos_jp_sdin amp。 amp。 i2c_sclk_dly1) sto_condition = `DEL 139。 b1。 28 else sto_condition = `DEL 139。 b0。 always @(cur_state or sta_condition or sto_condition or acc_done or my_addr or neg_jp_sclk or rw ) if (sto_condition) nxt_state = ST_IDLE。 else if (sta_condition) nxt_state = SLAVE_ADDR。 else begin case (cur_state) SLAVE_ADDR: nxt_state = (acc_done amp。 amp。 neg_jp_sclk) ? (my_addr ? SLAVE_ADDR_ACK : ST_IDLE) :(SLAVE_ADDR)。 SLAVE_ADDR_ACK: nxt_state = neg_jp_sclk ? (rw ? RD_REG_DAT: REG_ADDR) : SLAVE_ADDR_ACK。 REG_ADDR: nxt_state = (acc_done amp。 amp。 neg_jp_sclk) ? REG_ADDR_ACK : REG_ADDR。 REG_ADDR_ACK: nxt_state = neg_jp_sclk ? REG_DAT : REG_ADDR_ACK。 REG_DAT: nxt_state = (acc_done amp。 amp。 neg_jp_sclk) ? REG_DAT_ACK : REG_DAT。 REG_DAT_ACK: nxt_state = neg_jp_sclk ? REG_ADDR : REG_DAT_ACK。 RD_REG_DAT: nxt_state = (acc_done amp。 amp。 neg_jp_sclk) ? RD_REG_DAT_ACK : RD_REG_DAT。 RD_REG_DAT_ACK: nxt_state = neg_jp_sclk ? ST_IDLE : RD_REG_DAT_ACK。 default: nxt_state = ST_IDLE。 endcase end always @(posedge clk_slave or negedge rst_n) if (!rst_n) 29 reg_addr = `DEL 839。 b0。 else if ( (cur_state == REG_ADDR) amp。 amp。 (acc_done amp。 amp。 neg_jp_sclk) ) reg_addr = `DEL sr。 always @(posedge clk_slave or negedge rst_n) if (!rst_n) reg_dat_to_slave = `DEL 839。 h0。 else if( (cur_state == REG_DAT) amp。 amp。 (acc_done amp。 amp。 neg_jp_sclk) ) reg_dat_to_slave = `DEL sr。 always @(posedge clk_slave or negedge rst_n) if (!rst_n) rw = `DEL 139。 b0。 else if ( (cur_state ==。i178cslavecontroller(编辑修改稿)
相关推荐
产品的发布,推广启大很大的作用。 5 第 2 章 相关技术简介 Flash 技术简介 Flash 是一种用于互联网的动画编程语言。 它采用了网络流式媒体技术,突破了网络带宽的限制,可以在网络上更快速地播放动画;实现动画交互,发挥个人的创造性和想象力;提供更为精美的网页界面。 以前,虽然也有很多种多媒体格式,但是,按照这些所制作出来的媒体文件都是很庞大的,动辄以十兆、百兆计
的形象设计的,因为本人觉得猫比较可爱。 很适合剧本所需的形象。 小红帽: 小红帽天真又可爱,不但漂亮而且善良 , 带着红色的帽子, 有 两个可爱的耳朵。 小红帽的妈妈:为了体现妈妈和小红帽的区别,特意在妈妈的额头加了一些皱纹 ,并在她前面加了围裙。 小红帽的外婆:外婆的形象跟妈妈和小红帽比,应该显得更加苍老,所以,外婆不仅脸上皱纹更多,而且在服饰上得颜色选择深棕色。 鳄鱼: 凶狠且奸诈, 鳄鱼
多种收费标准,能满足各种小区及公共停车场的收费情况; 进出车辆的图象和基本信息对比功能; 误操作及丢卡等特殊情况的处理和每一次交易的自动记录; 丢失卡的 挂失、 禁用功能; 能够独立控制道闸,可用遥控器控制道闸和手动开关栏杆; 车辆的防 砸 功能及车辆过杆的自动落闸功能; 可扩展一卡通功能 ; 系统包含临时卡及月卡均实行脱机自动运行 ,不受电脑损坏或线路损坏的影响 ; 第三章 系统的构成与设计
)电器集团品牌营销策略。 52. 浅谈企业形象营销。 53. 浅谈大学生网络购物行为的影响因素。 54. 西安市未来消费者的消费趋势与特征。 55. 浅谈西安涟漪饮用水公司的营销策略。 56. 浅谈产品寿命周期与营销策略的关系。 57. 浅谈高职院校的营销策略。 58. 浅析大学生网络消费心理。 59. ***品牌建设策略的 探 究。 60. **企业促销策略的 探 究。 7 金融与证券专业
设 导 渗 沟 (可 分 匙 、 分 段 设 置 ), 在导 渗 沟出 地址: 北 京市 北 四环 西路 65 号 海淀 新 技术 大厦 1635 室 邮编 : 100080 Tel: 0108288 6646, 8288 6647 Fax: 0108288 6649 Web: , Email: 8 Datataker China Ltd 北 京 数 泰 科 技 有 限 公 司 口戒 排 水 沟
有限公司信息化项目可行性研究报告 第 9 页 协同运作。 同时,使集团内的信息技术队伍的知识和经验、 积极性和创造性得到充分的共享和利用。 第五章、系统结构和功能 对于大多数企业信息化建设来讲,都是由下至上的,就是先对业务中心的部门或企业实施信息化建设,在其内部形成关键业务信息自动 处理和集成处理,然后利用现有的信息技术(分布式数据库技术